当使用时给出一个lat和lng,我应该给这个城市和美国。 尝试使用谷歌地图的地方api,但它没有place type
在谷歌搜索,得到一些答案:
1.创建城市数据数据库,并使用sql计算距离。但我没有得到任何准确的数据,有些数据不是免费的。
2.使用第三个数据库geoNames,获取数据,但我担心网站会限制请求的数量。 所以你有任何答案,帮助
答案 0 :(得分:0)
如果你有lat和lng,你最好调用Geocoder.geocode。 一旦你在共鸣中获得了好处,你可以检查类型为" administrative_area_level_n"
的address_componenetsvar 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];
}
}
}
}
}