[英]Google Maps API v3 - Place Google Maps Circle as Lat/Lng from Search Box
[英]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.