给出lat和lng,得到半径x英里的城市

时间:2016-02-24 07:39:30

标签: google-maps google-maps-api-3 radius geonames city

当使用时给出一个lat和lng,我应该给这个城市和美国。  尝试使用谷歌地图的地方api,但它没有place type

在谷歌搜索,得到一些答案:

1.创建城市数据数据库,并使用sql计算距离。但我没有得到任何准确的数据,有些数据不是免费的。

2.使用第三个数据库geoNames,获取数据,但我担心网站会限制请求的数量。 所以你有任何答案,帮助

1 个答案:

答案 0 :(得分:0)

如果你有lat和lng,你最好调用Geocoder.geocode。 一旦你在共鸣中获得了好处,你可以检查类型为" administrative_area_level_n"

的address_componenets
var latlng = new google.maps.LatLng(lat, lng);
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({ 'latLng': latlng }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                    for (var i = 0; i < results[0].address_components.length; i++) {
                        for (var b = 0; b < results[0].address_components[i].types.length; b++) {
                            if (results[0].address_components[i].types[b] == "administrative_area_level_2") {
                                var city = results[0].address_components[i];
                            }
                        }
                    }
                }
            }