react-leaflet 动态添加图层
react-leaflet add layers dynamically
我开始使用 react-leaflet,我遇到了一个问题:在我的应用程序中,用户填写了一个表单,然后请求一个 returns GeoJSON 的休息服务,然后将其添加为我地图上的一个新图层。我的问题:如何在 react-leaflet 中实现动态添加层?
谢谢。
我有类似的问题。我想动态地清除和创建标记层。我认为你可以通过获取对实际地图视图的引用来做到这一点 react refs 例如
<Map ref={Map => this.map = Map}>
稍后您可以将 this.map
与正常的 Leaflet 功能一起使用。其他选项可能是您在 JSX 中创建图层的方式与我创建标记的方式相同:
{this.props.markers.map((i,index) => {
return (
<Marker key={i} position={i}>
<Popup>
<span>Great marker!</span>
</Popup>
</Marker>);
})}
最好的方法是为 react-leaflet 创建 GeoJSON 层包装器。在 react-leaflet 的 plugins section 中有一个类似的带有聚类的 GeoJSON 层实现。
然后你应该将这个图层添加到你的地图组件中,并在需要时更改它的数据。所以不需要动态添加图层而是动态更改数据。
查看传单的 GeoJSON 示例以了解想法 http://leafletjs.com/examples/geojson/.
如果您有一层数据不断变化,则该方法会奏效。但是,如果您有不同的数据集,则需要为每个数据集添加一个 GeoJSON 层。
<Map ...>
{this.props.datasets.map((ds, ix) => {
return (<GeoJSONOverlay data={ds} key={ix} />);
})}
</Map>
我开始使用 react-leaflet,我遇到了一个问题:在我的应用程序中,用户填写了一个表单,然后请求一个 returns GeoJSON 的休息服务,然后将其添加为我地图上的一个新图层。我的问题:如何在 react-leaflet 中实现动态添加层?
谢谢。
我有类似的问题。我想动态地清除和创建标记层。我认为你可以通过获取对实际地图视图的引用来做到这一点 react refs 例如
<Map ref={Map => this.map = Map}>
稍后您可以将 this.map
与正常的 Leaflet 功能一起使用。其他选项可能是您在 JSX 中创建图层的方式与我创建标记的方式相同:
{this.props.markers.map((i,index) => {
return (
<Marker key={i} position={i}>
<Popup>
<span>Great marker!</span>
</Popup>
</Marker>);
})}
最好的方法是为 react-leaflet 创建 GeoJSON 层包装器。在 react-leaflet 的 plugins section 中有一个类似的带有聚类的 GeoJSON 层实现。 然后你应该将这个图层添加到你的地图组件中,并在需要时更改它的数据。所以不需要动态添加图层而是动态更改数据。 查看传单的 GeoJSON 示例以了解想法 http://leafletjs.com/examples/geojson/.
如果您有一层数据不断变化,则该方法会奏效。但是,如果您有不同的数据集,则需要为每个数据集添加一个 GeoJSON 层。
<Map ...>
{this.props.datasets.map((ds, ix) => {
return (<GeoJSONOverlay data={ds} key={ix} />);
})}
</Map>