是什么让下面的代码获取国家而不是城市,我如何才能将其更改为获取城市而不是国家?
function get_visitor_country() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position){
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var latlng = new google.maps.LatLng(lat, lon);
geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
var country = results[results.length-1].formatted_address;
$("#location-detection .location-name").html(country);
$("#geolocation-worked").css("display", "block");
$("#no-geolocation").css("display", "none");
$geolocation_fix.hide().css({ height : 0 });
init_geolocation_switch();
}
}
});
});
}
}该脚本还会在文件末尾加载http://maps.google.com/maps/api/js?sensor=false,如果这可能会影响它的话。
发布于 2012-02-19 08:52:55
你的脚本目前没有得到任何特别的东西(比如一个城市或一个国家),它从结果中得到了一些东西。
要在带有类型的条目的结果中获取城市搜索,请将类型设置为["locality", "political"]
当你找到它,你就得到了这座城市。
创建标记为addressTypes的对象以便于访问:
var components={};
jQuery.each(results,function(i,v){
components[jQuery.camelCase(v.types.join('-'))]=v;
})
//test it
alert((components.localityPolitical)
? components.localityPolitical.formatted_address
: 'n/a');请参阅:
https://stackoverflow.com/questions/9345105
复制相似问题