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

时间:2014-08-18 21:11:47

标签: javascript google-maps geolocation google-maps-markers

女士和男士,

长版

我有一个充满地址的数据库,我需要在Google地图上绘制,并嵌入我的网页。地址以文本方式显示,而不是LatLong,因此:

“芝麻街22号,小镇,小镇,AB1 9YZ”

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

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

我看到很多网站都在这样做,看似很容易,例如:

但是,我不知道Yell是使用LatLongs还是使用完整地址。无论如何,我只有地址可供使用。

短版

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

声明

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

也许我很乐观......

任何你能给予的任何帮助都绝对是金色的,非常感谢!

非常感谢!

丹!

1 个答案:

答案 0 :(得分:0)

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

如果您已经在使用Google,那么显而易见的选择就是使用Google的地理编码器。

您可以使用服务器端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等。用它将它放在地图上。

或者(这通常是更好的解决方案),您可以使用client side javascript geocoder built into the javascript api,方式类似于以下方式:

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);
  }
});

This article提供了您可能希望采用的客户端战略的一个很好的例子。