0

외부 Google지도를 추가하려면 geojson-file을 사용하고 있습니다. 이 파일에는 검색 할 때 액세스하려는 영역마다 두 개의 속성이 있습니다. 사용자가 영역을 클릭하거나 다른 지원되는 이벤트 핸들러를 사용하면 쉽게 속성을 가져올 수 있습니다.Google지도 V3 -> Latong 좌표 또는 검색 창에 나오는 다른 정보를 사용하여 Geojson에서 속성을 가져올 수 있습니까?

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

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

그러나 나는 이러한 속성을 검색 할 때와 그 액세스로부터 해요 무엇 geojson 지역 좀하고 싶습니다. 가능한가요?

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

enter image description here

+0

사람에게 :

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 인 google-maps 태그로 질문에 투표합니다. 앞으로 질문을 더 잘 쓸 수 있도록 투표하는 이유를 말해주십시오. – Ogglas

답변

1

당신은 위도 경도 위치가 다각형에 포함되어 있는지 확인하는 containsLocation 유틸리티를 사용할 수 있습니다.

은 그래서 for 루프의 모든 기능을 얻을 귀하의 Data layer ( loadGeoJson() 또는 addGeoJson()로 채워), 각 형상을 얻고 containsLocation() 기능을 사용하는 다각형을 만들 수 있습니다.

예컨대, loc (LatLng에)이 feats 어레이의 기능 중 하나에 포함되어있는 경우, 다음 코드 검사 : http://jsfiddle.net/beaver71/sgtpop4f/

+0

맥주를 사고 싶지만 감사만으로도 충분합니다. 내 기능이'Polygon'이 아니라'MultiPolygon' 이었기 때문에 약간의 수정을해야했습니다. 간단한 변경 :'paths : area.getArray() [0] .getAt (0) .getArray()'https://developers.google.com/maps/documentation/javascript/3.exp/reference#Data.MultiPolygon – Ogglas

관련 문제