使用google maps api选择国家/地区内的积分

时间:2016-11-08 22:56:29

标签: google-maps-api-3 geolocation country

我使用谷歌地图API在世界地图上绘制了几个标记。

我想点击一个国家/地区,然后删除所有其他标记,只能看到此国家/地区边界内的点数。例如,如果我点击巴西,我只想看看巴西境内的标记。

我还希望在点击该国家后获得国内点数的列表。

有谁知道我该怎么做?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果可以的话,最有效的方法是在标记所属的国家/地区代码的属性中添加所有标记。

当用户点击地图时,将给定的纬度/经度传递给Geoname webservice(例如,您也可以使用Google地理编码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