HTML5 - 是啥让这段代码得到国家而不是城市?

Posted

技术标签:

【中文标题】HTML5 - 是啥让这段代码得到国家而不是城市?【英文标题】:HTML5 - What is making this code get the country instead of city?HTML5 - 是什么让这段代码得到国家而不是城市? 【发布时间】:2012-02-18 23:23:15 【问题描述】:

是什么让下面的代码得到国家而不是城市,我怎样才能改变它来得到城市而不是国家?

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,如果这可能会影响它的话。

【问题讨论】:

【参考方案1】:

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

types设置为["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');

见:Address Component Types

【讨论】:

以上是关于HTML5 - 是啥让这段代码得到国家而不是城市?的主要内容,如果未能解决你的问题,请参考以下文章

是啥让这两个功能分别为“公共”和“私有”,这是啥意思?

是啥让 Maven 想要使用 Zulu Java 11 的 openjfx 而不是 Zulu Java 8 用于 Spring Boot 项目?

是啥让 NP-hard 问题不是 NP-complete 问题?

是啥让 PostgreSQL 比 MySQL 更先进? [关闭]

如果数据大小超过可用内存,是啥让 Spark 快速?

是啥让 ES6 如此特别?