谷歌地图-从连接的结果[1].formated_address中获取结果[0].formated_address

Google Maps - Getting results[0].formatted_address from concatenated results[1].formatted_address

本文关键字:结果 address formated 获取 连接 谷歌地图      更新时间:2023-09-26

我的地址是从包含6个数字的数据库中检索到的级联results[1].formatted_address,例如530456。然后我对它进行了地理编码,并在谷歌地图上放置了一个标记。这部分是成功的。

我现在想在标记的信息窗口中显示完整地址results[0].formatted_address,所以我所做的是对标记的latLng进行反向地理编码以获得完整地址,但导致整个地图消失。我做这件事的方式是这样的:

var address;
var eventwindow;
function codeAddress(postal) {
    geocoder.geocode( {'address': postal + ", Singapore"}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        eventwindow = new google.maps.InfoWindow();
        var markerE = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location,
        });
        address = getMarkerAddress(results[0].geometry.location);
        google.maps.event.addListener(marker, 'click', function(){
            if(eventwindow)
                eventwindow.close();
            eventwindow = new google.maps.InfoWindow({
                content: address,
            });
            eventwindow.open(map,marker);
        });
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
  }
function getMarkerAddress(location) {
    geocoder.geocode({'latLng': location}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
          if(results[0])
          {
            address = results[1].formatted_address.substring(10);
          }
        }
       else {
        alert("Geocoder failed due to: " + status);
      }
    });

我不知道我做得对不对,也不确定我哪里错了。这个问题还有别的办法吗?如果是,怎么办?

我不知道我做得对不对,也不确定我哪里错了。这个问题还有别的办法吗?如果是,怎么办?

如果你知道"正确"的地址,就用它。你还没有提供足够的申请详细信息,无法就如何做到这一点提出建议。您可以通过将从地理编码器返回的坐标与地址一起存储在数据库中来避免地理编码器的不确定性,然后如果您发现错误,可以进行修复。

这篇关于地理编码策略的文章可能会有所帮助。