【问题标题】:How to add default Options for markers如何为标记添加默认选项
【发布时间】:2019-08-28 20:55:35
【问题描述】:

我想为单击标记绘图控件时创建的标记添加不同的图标。(react-google-maps 包)

我尝试在 DrawingManager 组件中添加一个 markerOptions 道具,但它似乎不像 polygonOptions 那样工作。

<GoogleMap defaultZoom={13} defaultCenter={{ lat: 38.022871, lng: 23.790431 }}>
        <DrawingManager
          ref={props.onDrawingManagerMounted}
          defaultDrawingMode={this.state.currentDrawingMode}
          defaultOptions={{
            drawingControl: true,
            drawingControlOptions: {
              position: google.maps.ControlPosition.TOP_CENTER,
              drawingModes: [
                google.maps.drawing.OverlayType.POLYGON,
                google.maps.drawing.OverlayType.MARKER
              ]
            },
            polygonOptions: this.colorOptions(),
            markerOptions: {
              icon: {
                url: require("../../../assets/images/helipadIcon.png"),
                anchor: new google.maps.Point(5, 58)
              }
            }
          }}

【问题讨论】:

  • 经过一些测试,我发现 markerOptions 确实有效,问题是当我显示标记时,我没有拉他们的图标来使用。我在每个标记组件上使用 icon={this.markerArray[i].getIcon()} 道具解决了这个问题。

标签: reactjs react-google-maps


【解决方案1】:

快速提示:在提出问题之前命名您正在使用的包。我花了一段时间才在 npm 上找到 react-google-maps 包。

查看命名包的官方文档:https://tomchentw.github.io/react-google-maps/

您会发现DrawingManager 组件不提供名为markerOptionspolygonOptions 的道具。而是使用 Marker 组件 (https://tomchentw.github.io/react-google-maps/#marker),它提供了 icon 类型的 any 属性。

&lt;Marker icon={} .../&gt;

如果您想更改/编辑使用DrawingManager 绘制的标记,您可以使用将返回marker 对象的onMarkerComplete 回调函数。您可以使用标记对象来更改图标。见:https://developers.google.com/maps/documentation/javascript/reference/drawing#DrawingManager.markercomplete

const icon = {
   url: require("../../../assets/images/helipadIcon.png"),
   anchor: new google.maps.Point(5, 58)
};
const onMarkerComplete = (marker) => {
   marker.setIcon(icon);
}

return (
<DrawingManager onMarkerComplete={onMarkerComplete} ...>
...
</DrawingManager>
);

【讨论】:

  • 你说得对,我忘了在文本中添加它,只在下面的标签中。问题是文档也没有提到多边形选项,但它们可以工作。还有一个 circleOptions 等。
  • 该图标在我尝试过的标记组件中工作,但我想更改将通过按下按钮创建的标记的图标。因此,我按下一个按钮,然后将所选图标设置为状态,然后将其设置为绘图管理器中的默认图标标记。我的意思是,如果我在绘图管理器组件中添加一个标记组件,它只会显示该标记,对吗?我希望新创建的标记以不同的图标显示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 2019-02-09
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
相关资源
最近更新 更多