使用react-leaflet的GeoJSON

时间:2018-04-24 16:15:19

标签: reactjs react-leaflet

通过在渲染函数中返回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>

所以接下来我尝试用null初始化 this.state.geojson_data ,然后在 componentDidMount 上加载数据,然后我用GeoJSON修改了这一行,因为obvisouly,null不是有效的geojson对象。

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

数据被提取没有问题,但我的geojson根本没有显示,任何人都知道为什么?

我可以看到两种绕过它的方法:

  1. 使用地图引用将图层添加到香草传单的方式,但我想使用更多的反应方法。
  2. 使用父组件加载数据并将其作为prop,但我喜欢在加载数据时初始化和加载地图的想法,而不是在加载数据之后。
  3. EDIT1:我进一步调查并尝试向GeoJSON组件提供一些非geojson数据,并且它出错了,当数据良好时它仍然没有绘制图层。

1 个答案:

答案 0 :(得分:0)

这是一个参考问题,我很抱歉我无法进一步解释,与我交谈的gis人给了我另一个版本的geojson与另一个参考,它按预期工作。

错误在我身上,我首先尝试使用硬编码的geojson,我确信我的后端在我尝试加载时使用了相同的数据,而另一个则使用了错误的参考。

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