是什么让以下代码获得国家而不是城市,我如何更改它以获得城市而不是国家?
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,如果这可能会影响它。
答案 0 :(得分:1)
你的脚本目前没有任何特殊的东西(如城市或国家),它会从结果中获得一些东西。
要在类型设置为["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');