【问题标题】:react-google-maps align MarkerWithLabel horizontallyreact-google-maps 水平对齐 MarkerWithLabel
【发布时间】:2019-05-01 17:34:00
【问题描述】:

我想在上面创建一个带有标签的标记,然后制作它,以便我可以单击该标记并打开信息框。我有:

<MarkerWithLabel labelAnchor={{x: 0, y: 25}} icon={marker_icons[post.type]} key={post.id} position={{lat: post.location.lat, lng: post.location.lon}}>
    <div style={{fontSize: 14}}>{post.prefix + " " + post.name}</div>
</MarkerWithLabel>

目前它看起来像左边,但我想将标签对齐到看起来像右边,我该怎么做?

【问题讨论】:

    标签: reactjs google-maps-api-3 google-maps-markers marker react-google-maps


    【解决方案1】:

    对齐标签可以考虑以下选项:

    • 指定标签容器 (div) width 并通过labelStyle 属性将text-align 设置为center
    • 根据标签容器宽度设置labelAnchor属性

    以下示例在标记顶部显示标签,并且标签内容垂直对齐到中心

    const Map = (props) => {
    
        const labelSize = { width: 220};
        const labelPadding = 8;
    
        return (
          <GoogleMap 
            defaultZoom={props.zoom}
            defaultCenter={props.center}
          >
            {props.places.map(place => {
              return (
                <MarkerWithLabel
                  labelStyle={{ textAlign: "center", width:labelSize.width + 'px', backgroundColor: "#7fffd4", fontSize: "14px", padding:  labelPadding + "px"}}
                  labelAnchor={{ x: (labelSize.width/2) + labelPadding , y: 80 }}
                  key={place.id}
                  position={{ lat: place.lat, lng: place.lng }}>
                  <span>{place.name}</span>
                </MarkerWithLabel>
              );
            })}
          </GoogleMap>
        );
    }
    

    Demo

    【讨论】:

    • 谢谢!我所要做的就是从 labelAnchor.x 中减去 18px-ish,因为我正在使用 svg 图标,否则它有点偏离。
    • 更新!我没有这样做,而是通过编辑它们来修复我的 SVG 图像,使中心位于左上角,因此它们正确居中。
    【解决方案2】:

    对于使用 @react-google-maps/api 而不是
    react-google-maps 模块的任何人

    是的,我认为它们是不同的 npm 包 o_O

    无论如何 组件 有这个道具
    我是这样做的

    <Marker
    label={"Label onTop? pls"}
    
    icon={{
    url: "some_img_link",
    labelOrigin: new maps.Point(25, -10),
    }}
    
    position={{
    lat: 26.259,
    lng: -80.27,
    }}
    />
    

    如果你像我这样的菜鸟;/并且你想知道我是如何知道 labelOrigin 的......这些花哨的库......我希望他们使用谷歌的 api

    这里有一个链接

    https://developers.google.com/maps/documentation/javascript/reference/marker#Icon.labelOrigin

    祝你好运

    【讨论】:

      猜你喜欢
      • 2019-11-25
      • 2021-05-08
      • 1970-01-01
      • 2015-08-05
      • 2013-02-09
      • 2013-04-16
      • 2013-02-02
      • 2017-11-05
      • 1970-01-01
      相关资源
      最近更新 更多