我使用谷歌地图API在世界地图上绘制了几个标记。
我想点击一个国家/地区,然后删除所有其他标记,只能看到此国家/地区边界内的点数。例如,如果我点击巴西,我只想看看巴西境内的标记。
我还希望在点击该国家后获得国内点数的列表。
有谁知道我该怎么做?
提前致谢!
答案 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