使用反应传单的GeoJSON异步显示数据



我在渲染函数中返回geojson数据毫不费力:

<Map ref={(ref) => { this.map = ref; }} center={position} zoom={13}>
    <TileLayer
        attribution="&amp;copy <a href=&quot;http://osm.org/copyright&quot;>OpenStreetMap</a> contributors"
        url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
        />
    <GeoJSON data={this.state.geojson_data} /> }
</Map>

所以我尝试的接下来是初始化 this.state.geojson_data 用null初始化,然后在 componentdidmount上加载数据,然后我将与geojson的行修改为此,因为expisouly,null不是有效的geojson对象。

 { this.state.geojson_data !== null && <GeoJSON data={this.state.geojson_data} /> }

数据没有任何问题,但是我的Geojson根本不显示,任何人都知道为什么?

我可以看到两种规避的方法:

  1. 使用地图参考将层添加为香草传单方式,但我想使用更反应的方法。
  2. 用父组件加载数据并将其作为道具,但是我喜欢在数据加载时,地图是初始化和加载的想法,而不是在数据加载后。

edit1:我对Geojson组件进行了一些非Geojson数据的效果进行了进一步研究,并且它造成了错误,当数据良好时,它仍然没有绘制图层。

这是一个参考问题,对不起,我无法进一步解释,我与之交谈的GIS人给了我另一个Geojson的版本,并带有另一种参考,它按预期工作。

错误出现在我身上,我首先尝试了一个硬编码的geojson,我确定我的后端尝试加载它时使用了相同的数据,而另一个是错误的。

编辑:处理我们的GIS的人给了我们一个Geojson,没有使用正确的参考

最新更新