我在Mapbox Studio中设置了一个地图样式。此样式包含一个带有标记的图层。我希望能够在我的React项目中使用React map gl点击这一层。
在任何其他情况下,我都会做一些类似的事情
map.on('click', 'needed-layer', () => {this.dostuff()});
这在ReactMapGL中似乎不起作用。
我引用了这样的地图:
<ReactMapGL
ref={this.mapRef}
...
/>
this.mapRef = React.createRef();
this.map = this.mapRef.current.getMap();
如果我记录这个.map,我会得到一个map对象,这很好,但我认为下面的代码会检测到预定义层上的点击:
this.map.on('click', 'needed-layer', () => {this.dostuff()});
但事实并非如此。关于如何点击Mapbox Studio中预定义的标记层,有什么想法吗?
默认Map
(以前的ReactMapGL
/MapGL
(组件下有一个onClick事件。
您需要指定interactiveLayerIds
属性,使其在特定图层上工作。
请参阅最新react-map-gl
文档中的onClick事件部分。