2016-11-08 259 views
-1

一個國家內選擇點我有幾個標誌物在使用谷歌地圖API的世界地圖繪製。使用谷歌地圖API

我想點擊一個國家,然後刪除所有其他標記,只看到這個國家邊界內的點。例如,如果我點擊巴西,我只想看看巴西的標記。

我也想獲得國家點擊國家內點的經緯度列表。

有誰知道我該怎麼辦呢?

在此先感謝!

+0

請發表你走到這一步的代碼。 – AndreFeijo

回答

1

也許最有效的方法是,如果可以,將所有標記添加到標記所屬的國家/地區代碼的屬性。

當用戶點擊地圖時,將給定的lat/long傳遞給Geoname webservice(例如,您也可以使用Google Geocoding API)來獲取國家代碼。然後遍歷您的標記數組並保留所有需要的標記。

要從點擊獲取經緯度長,並從Geoname國家代碼:如果你不能夠給國家代碼附加到標記的屬性,你將與多邊形工作

google.maps.event.addListener(map, 'click', function(event){ 
    getCountryCode(event.latLng.lat(),event.latLng.lng()); 
}); 

function getCountryCode(latitude, longitude) { 
    $.getJSON('http://ws.geonames.org/countryCode', { 
      lat: latitude, 
      lng: longitude, 
      type: 'JSON' 
     }, function(result) { 
      console.log(result.countryCode); 
     } 
} 

每個國家和搜索一個點在多邊形。 如果是這樣,也許這個擴展可以幫助你:https://github.com/tparkin/Google-Maps-Point-in-Polygon 和每個國家的多邊形,使用簡單的幾何形狀像這樣:https://github.com/johan/world.geo.json/tree/master/countries