谷歌地图中的多个地址(不是LatLongs)

Multiple addresses (not LatLongs) in Google Maps

本文关键字:不是 LatLongs 地址 谷歌地图      更新时间:2023-09-26

女士们,先生们,

长版

我有一个数据库的地址,我需要在谷歌地图上绘制,并嵌入我的网页。地址以文本形式显示,而不是LatLong,所以:

《芝麻街22号,小村庄,小镇,AB1 9YZ》

就像我说的,我有很多这样的,它们都需要绘制在一张地图上。

我很高兴使用jQuery/Javascript, PHP, XML等来做它。

我看到很多网站这样做,看起来很容易,例如:

  • Yell.com

但是,我不知道Yell是使用了latlong还是使用了完整地址。不管怎样,我手头只有地址。

短版

需要在一个谷歌地图窗口中绘制多个文本地址,并将其嵌入我的网站。

免责声明

我在网上搜了一个多星期,找不到一个明确的答案。我确实发现可能被归类为答案(不,不可能),但我发现这很难相信在这个时代,我们现在可以相对容易地对一个网站做些什么。

也许我太乐观了…

你能给的任何帮助都是绝对宝贵的,非常感谢!

非常感谢!

丹!

您需要将地理编码您的地址,即将它们转换为lat/lng坐标,然后添加它们。

如果你已经在使用谷歌,显而易见的选择是使用谷歌的地理编码器。

您可以使用服务器端Google Maps Geocoding API,如果您创建一个帐户和一个API密钥,您可以像这样对地址进行地理编码:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=API_KEY

返回的JSON,除其他事项外,包括一个lat/lng。把它放在你的地图上。

或者(这通常是一个更好的解决方案),您可以使用内置于javascript api中的客户端javascript地理编码器,其方式类似于以下:

var geocoder = new google.maps.Geocoder();
var address = "Mountain View, CA"
geocoder.geocode( { 'address': address}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    // results contains multiple locations, ordered by estimated relevance
    var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
    });
  } else {
    alert("Geocode was not successful for the following reason: " + status);
  }
});

本文提供了一个很好的客户端策略示例。