2016-11-08 187 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