传单标记并不总是适用
Leaflet markers not always applying
所以我正在使用 leaflet-react,我需要添加一些圆圈标记。
现在这段代码可以工作了……有时。在地图上单击应添加一个圆形标记,但有时不会。看似随机,它不会添加可见标记。有时,如果我更改缩放级别,标记会变得可见,但并非总是如此。所有代码每次都运行,所以不是没有调用 addMarker(),最后一个标记的删除(通过清除标记层)也总是运行。
谢谢,Ed。
您似乎没有使用 react-leaflet 包。我建议尝试一下。以下是有关如何在点击事件中向地图添加标记的一些示例代码:
const React = window.React;
const { Map, TileLayer, Marker, Popup } = window.ReactLeaflet;
class SimpleExample extends React.Component {
constructor() {
super();
this.state = {
markers: [[51.505, -0.09]]
};
}
addMarker = (e) => {
const {markers} = this.state
markers.push(e.latlng)
this.setState({markers})
}
render() {
return (
<Map
center={[51.505, -0.09]}
onClick={this.addMarker}
zoom={13}
>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
{this.state.markers.map((position, idx) =>
<Marker key={`marker-${idx}`} position={position}>
<Popup>
<span>A pretty CSS3 popup. <br/> Easily customizable.</span>
</Popup>
</Marker>
)}
</Map>
);
}
}
window.ReactDOM.render(<SimpleExample />,
document.getElementById('container'));
这是一个显示实现的 jsfiddle:https://jsfiddle.net/q2v7t59h/413/
所以我正在使用 leaflet-react,我需要添加一些圆圈标记。
现在这段代码可以工作了……有时。在地图上单击应添加一个圆形标记,但有时不会。看似随机,它不会添加可见标记。有时,如果我更改缩放级别,标记会变得可见,但并非总是如此。所有代码每次都运行,所以不是没有调用 addMarker(),最后一个标记的删除(通过清除标记层)也总是运行。
谢谢,Ed。
您似乎没有使用 react-leaflet 包。我建议尝试一下。以下是有关如何在点击事件中向地图添加标记的一些示例代码:
const React = window.React;
const { Map, TileLayer, Marker, Popup } = window.ReactLeaflet;
class SimpleExample extends React.Component {
constructor() {
super();
this.state = {
markers: [[51.505, -0.09]]
};
}
addMarker = (e) => {
const {markers} = this.state
markers.push(e.latlng)
this.setState({markers})
}
render() {
return (
<Map
center={[51.505, -0.09]}
onClick={this.addMarker}
zoom={13}
>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
{this.state.markers.map((position, idx) =>
<Marker key={`marker-${idx}`} position={position}>
<Popup>
<span>A pretty CSS3 popup. <br/> Easily customizable.</span>
</Popup>
</Marker>
)}
</Map>
);
}
}
window.ReactDOM.render(<SimpleExample />,
document.getElementById('container'));
这是一个显示实现的 jsfiddle:https://jsfiddle.net/q2v7t59h/413/