0

无论如何,我可以在表单中放置 2 个隐藏字段,并从用户输入邮政编码自动将 Lat/Long 放入其中吗?

我真的不想依靠用户在谷歌地图上拖动标记来绘制位置。

提前致谢

罗比

4

3 回答 3

3

要将英国邮政编码转换为纬度和经度,请使用Google 的地理编码 API

http://maps.googleapis.com/maps/api/geocode/json?address=POSTCODE&sensor=false

您将收到一个 JSON 响应,您可以使用 JavaScript 轻松解析该响应以填充隐藏字段。

于 2011-02-07T15:55:50.033 回答
1

通过捣碎此页面对其进行排序 - http://gmaps-samples-v3.googlecode.com/svn/trunk/geocoder/getlatlng.html

效果很好。

于 2011-02-15T12:29:59.863 回答
1

我会使用 JavaScript 来控制表单提交,并且基本上在表单中包含两个隐藏字段,用于纬度/经度。因此,在用户提交地址/邮政编码等之后,基本上使用该信息并查询 Google 的地理编码 API 并检索您所追求的纬度/经度。查询完成后,您可以将查询到的经纬度插入隐藏字段的值中,然后使用 JavaScript 提交。

表单中的隐藏字段和表单提交按钮上的 onclick 附加功能:

<input type='hidden' name='lat' id='lat' value='' />
<input type='hidden' name='lng' id='lng' value='' />
<input type="button" value="Send" onClick="javascript:querieBeforeSubmit();">

这是查询 geoapi 并将值插入隐藏字段的 JavaScript

  <script type='text/javascript'>
    function querieBeforeSubmit(){
         //queries Google Geoapi w/ address etc
         var lat = //retrived lat
         var lng = //retrived lng
         document.getElementById('lat').value = lat;
         document.getElementById('lng').value = lng;
         form.submit();
    }
    </script>
于 2011-02-07T16:05:19.673 回答