簡體   English   中英

Google Maps V3 -> 是否可以使用經緯度坐標或來自搜索框的其他信息從 Geojson 獲取屬性?

[英]Google Maps V3 -> Is it possible to get properties from Geojson using lat lng coordinates or other information from search box?

我正在使用外部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) => {
    ...

在此處輸入圖片說明

您可以使用containsLocation實用程序來檢查 LatLng 位置是否包含在多邊形中。

因此,在for循環中獲取Data layer所有特征(使用loadGeoJson()addGeoJson()填充),獲取每個幾何圖形並創建一個 Polygon 以與containsLocation()函數一起使用。

例如,以下代碼檢查loc (LatLng) 是否包含在feats數組的特征feats

inWhichArea = function(map, loc) {
  for (var i in feats) {
    var area = feats[i].getGeometry();
    var poly = new google.maps.Polygon({
      paths: area.getAt(0).getArray(),
      map: map,
      clickable: false
    });
    if (google.maps.geometry.poly.containsLocation(loc, poly)) {
      return feats[i];
    }
  }
  return null;
}

這是一個帶有工作示例的 jsfiddle: http : //jsfiddle.net/beaver71/sgtpop4f/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM