Я пытаюсь импортировать некоторый GeoJSON в обработчик событий FeatureGroup
in _onFeatureGroupReady
, но он не отображается на карте.Код в основном основан на примере из библиотеки react-leaflet-draw
здесь .Как ни странно, меню редактирования становится пригодным для использования, указывая на то, что данные, возможно, есть, но просто не отображаются.
Я не уверен, что происходит, так как я новичок в картах в целом.Соответствующий код находится в блоке else if(this.props.data) {
.Все операторы console.log()
показывают данные, находящиеся там и в правильном формате.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
37.79,
-122.45
],
[
37.79,
-122.42999999999999
],
[
37.77,
-122.42999999999999
],
[
37.77,
-122.45
],
[
37.79,
-122.45
]
]
]
}
}
]
}
Вот код, в который я пытаюсь импортировать эти данные в FeatureGroup
:
_onFeatureGroupReady = (ref) => {
console.log('_onFeatureGroupReady');
console.log(ref);
if(ref===null) {
return;//bug???
}
this._editableFG = ref;
// populate the leaflet FeatureGroup with the geoJson layers
if(this.state.data) {
console.log('importing service area from state');
let leafletGeoJSON = new L.GeoJSON(this.state.data);
let leafletFG = this._editableFG.leafletElement;
leafletGeoJSON.eachLayer( layer =>leafletFG.addLayer(layer));
}else if(this.props.data) {
console.log('importing service area from props');
this.setState({data:this.props.data},()=>{
console.log(this.state.data);
let leafletGeoJSON = new L.GeoJSON(this.state.data);
console.log(leafletGeoJSON);
let leafletFG = this._editableFG.leafletElement;
console.log(leafletFG);
leafletGeoJSON.eachLayer( layer =>leafletFG.addLayer(layer));
})
}
}
Что я могу делать не так (или даже лучше, каким-то образом я могу этого достичь)?