【问题标题】:Google Maps + Google Local Search generate lat/long from uk postcode谷歌地图+谷歌本地搜索从英国邮政编码生成纬度/经度
【发布时间】:2011-06-22 19:52:20
【问题描述】:

我是否可以在一个表单中放置 2 个隐藏字段,并从用户输入邮政编码时自动将 Lat/Long 放入其中?

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

提前致谢

罗比

【问题讨论】:

  • 不太确定我是否理解你。那么您如何提示用户获取您想要放入字段的纬度/经度?
  • 你可能想看看 OpenLayers
  • 基本上我想要一个用户输入地址的表单 - AddressL1、AddressL2、County、Postcode 等。然后我想在后台使用邮政编码字段并将纬度长粘贴到 2 个隐藏字段。问候

标签: javascript google-maps google-geocoder


【解决方案1】:

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

效果很好。

【讨论】:

    【解决方案2】:

    我会使用 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>
    

    【讨论】:

      【解决方案3】:

      要将英国邮政编码转换为纬度和经度,请使用Google's Geocoding API

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多