2

我正在使用谷歌地图 Api V3 并使用反向地理编码来查找点击的国家/地区的名称。这似乎适用于除英国以外的大多数国家/地区。

英国由英格兰、苏格兰、威尔士和北爱尔兰组成,它们是 4 个独立的国家,但谷歌地图(以及大多数其他国家的事物)将它们都视为“英国”。

我需要知道点击了英国境内的哪个特定国家,而不仅仅是点击了英国!

我正在使用以下 javascript,我目前只是使用视觉工作室的“观看”功能来深入研究“结果 [1]”以查看包含的内容。

  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(51.8052184317649, -4.965819906250006);
    var myOptions = {
        zoom: 5,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    google.maps.event.addListener(map, 'click', function (event) {
        if (confirm('Is this the location you would like to you for your company?')) {

            geocoder.geocode({ 'latLng': event.latLng }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    if (results[1]) {

                    }
                }
            });
 }
        });
    }

如果我在地图被放大得很远时单击,国家名称(即威尔士)会返回“administrative_area_level_1”和“political”类型,但是当您放大时它不再存在,因为它只是给出了不包含“威尔士”。

有谁知道我如何解决这个问题?我敢肯定其他英国人也遇到过这种情况?

4

2 回答 2

0

无法弄清楚如何反向地理编码以获取英国国家,因为我认为这实际上是不可能的!

最终使用邮政编码并以此计算国家!不是最好的,但它对我有用!

于 2011-06-06T09:16:27.303 回答
0

英国国家被表示为administrative_area_level_1结果,看这个例子中的倒数第二个结果(不要依赖address_components这个):

https://maps.googleapis.com/maps/api/geocode/json?&latlng=51.641033,-0.647507

于 2016-07-14T13:17:01.297 回答