首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5 -是什么让这段代码获得了国家而不是城市?

问HTML5 -是什么让这段代码获得了国家而不是城市?
EN

Stack Overflow用户
提问于 2012-02-19 07:23:15
回答 1查看 398关注 0票数 0

是什么让下面的代码获取国家而不是城市,我如何才能将其更改为获取城市而不是国家?

代码语言:javascript
复制
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,如果这可能会影响它的话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-19 08:52:55

你的脚本目前没有得到任何特别的东西(比如一个城市或一个国家),它从结果中得到了一些东西。

要在带有类型的条目的结果中获取城市搜索,请将类型设置为["locality", "political"]

当你找到它,你就得到了这座城市。

创建标记为addressTypes的对象以便于访问:

代码语言:javascript
复制
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');

请参阅:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9345105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档