Google Maps V3 - >是否可以使用lat lng坐标或搜索框中的其他信息从Geojson获取属性?

时间:2017-12-26 00:45:49

标签: javascript google-maps typescript google-maps-api-3 geojson

我正在使用外部geojson-file向我的Google地图添加图层。此文件包含我希望在搜索时访问的每个区域的两个属性。如果用户单击某个区域或使用任何其他受支持的事件处理程序,我可以轻松获取属性。

https://developers.google.com/maps/documentation/javascript/datalayer#add_event_handlers

this.map.data.addListener('mouseover', (event) => {
    console.log(event.feature.getProperty('VD'));
});

但是,我希望在搜索时获得geojson区域,并从中访问这些属性。这可能吗?

searchBox.addListener('places_changed', () => {
    var places = this.searchBox.getPlaces();
    ...
    places.forEach((place) => {
    ...

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用containsLocation实用程序检查多边形是否包含LatLng位置。

因此,在for循环中获取Data layer(填充loadGeoJson()addGeoJson())中的所有要素,获取每个几何图形并创建一个与{一起使用的多边形{1}}功能。

例如,以下代码检查containsLocation()数组的某个功能中是否包含loc(LatLng):

feats

这是一个带有工作示例的jsfiddle:http://jsfiddle.net/beaver71/sgtpop4f/