首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用google-maps react加载GeoJSON?

如何使用google-maps react加载GeoJSON?
EN

Stack Overflow用户
提问于 2019-09-05 23:25:16
回答 1查看 2.1K关注 0票数 0

我正在尝试将一个GeoJSON层加载到我的React Google Map上。我知道在普通的JS中可以使用map.data.loadGeoJson(),但google-maps react似乎不支持这一点。有没有办法让它工作,或者至少有一个变通的办法?

我尝试了这个解决方案,但它对我不起作用:https://medium.com/@dmw9400/using-geojson-with-google-maps-api-5127f7498a33

在componentDidMount中获取GeoJSON文件:

代码语言:javascript
复制
    const { feedInfo } = this.props;
    const geojson = await this.props.store.feeds.getGeojson(feedInfo.feed_code);
    const coordinates = geojson.geometry.coordinates;
    await this.setState({ coords: coordinates });
  }

正在尝试将GeoJSON更改为多边形格式:

代码语言:javascript
复制
   const { coords } = this.state;
    let coordArr = [];
    coords.map(coord => coordArr.push({ lat: coord[1], lng: coord[0] }));
      return (
        <Polygon
          paths={coordArr}
          strokeColor={POLYGON_STYLE.BORDER_COLOR}
          strokeOpacity={0.8}
          strokeWeight={2}
          fillColor={POLYGON_STYLE.BACKGROUND_COLOR}
          fillOpacity={0.35}
        />);
  }

渲染贴图:

代码语言:javascript
复制
    return (

      <Map
        google={this.props.google}
        onReady={this.autoCenterMap}
      >
      {this.loadPolygon()}
      </Map>
    );
  }
EN

回答 1

Stack Overflow用户

发布于 2019-09-12 02:34:39

我使用onReady中的map参数解决了这个问题,然后使用map.data.addGeoJson而不是loadGeoJson。

代码语言:javascript
复制
     <Map
        google={this.props.google}
        onReady={this.autoCenterMap}
      />

autoCenterMap = ({ google }, map) => {
    this.loadGeoJson(map);
*code continues*
  }

loadGeoJson = async (map) => {
    const geojsonRoutes = await this.getRoutes(feed_code);
    const geojsonEnvelope = await this.getEnvelope(feed_code)
    map.data.addGeoJson(geojsonEnvelope);
    map.data.addGeoJson(geojsonRoutes); // # load geojson layer
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57808649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档