【问题标题】:google maps v3 convert address to latitude谷歌地图 v3 将地址转换为纬度
【发布时间】:2012-06-14 21:32:37
【问题描述】:

我只是想从街道地址 => lat/long 转换表单字段。 理想情况下,用户输入邮政编码或完整的街道地址,隐藏字段会填充相应的纬度/经度。 无需创建地图。 不需要方向。 只是一个简单的转换。 有什么想法吗?

【问题讨论】:

    标签: google-maps google-maps-api-3 geolocation


    【解决方案1】:

    您可以使用Google Maps Geocoding web service。但请注意,根据服务条款,您必须在 Google 地图上显示结果。

    如果你想使用 JavaScript,可以使用Google Maps API Geocoder

    【讨论】:

      【解决方案2】:

      SmartyStreets 有一个名为 LiveAddress 的 API,它非常容易挂钩,它不仅可以对地址进行地理编码,还可以验证它是否正确和完整。这是一个简单的带有 JSON 输出的 REST 端点,因此很容易与 JavascriptPHP 等一起使用。(它实际上每秒可以支持数千个地址,每个请求最多支持 100 个地址。)

      正如 Andres 所提到的,在使用他们的服务获取纬度/经度时,您需要出示 Google 地图。还有其他 API 没有这个限制,但它们中的大多数都不会验证地址是否实际存在(例如 Google,它只是近似值)并且它们通常具有较低的使用限制。

      像 LiveAddress 这样的 API 只会返回有效地址的结果,并且会返回匹配的结果如果它们是真实的,并且没有会阻止您在特定情况下使用它的许可限制。

      我是 SmartyStreets 的开发人员之一,因此我很乐意帮助您解决有关使用地址的任何其他问题。

      顺便说一句,这里有一个不为人知的秘密:您实际上可以将地址作为一行提交(这意味着您的表单中只需要一个字段而不是 4 或 5)和你仍然会得到有效的结果。这是jQueryPHP 的示例。

      【讨论】:

      • 嘿,马特,这是很棒的信息。我们将非常努力地使用任何 API,因此带宽也是一个问题。我确实想出了一个使用 Google API 的准解决方案,但我认为它会在生产中失败......
      • 这是我想出的:<script> function convertAddress() { var geocoder; var address = document.getElementById("address").value; geocoder = new google.maps.Geocoder(); geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { document.getElementById('latlong').value = (results[0].geometry.location); } else { alert("Geocode was not successful for the following reason: " + status); } }); } </script>
      • 哇!那是乱码!这是在 Pastie 上的:paste2.org/p/2051417@Matt...那么与使用 LiveAddress 的效果等价的是什么?
      • 当然。我今天整理了这个,只为你。在您的 HTML 页面中包含 this file,然后包含 use something like this。简单得多。请注意,我们只验证街道地址(不仅仅是城市/州)——但它在我们的路线图上支持这一点。
      猜你喜欢
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      相关资源
      最近更新 更多