Карты Google + Google Local Search генерируют лат / лонг из почтового индекса Великобритании - PullRequest
0 голосов
/ 07 февраля 2011

Могу ли я в любом случае поместить в форму 2 скрытых поля и автоматически ввести лат / лонг в них от пользователя, вводящего почтовый индекс?

Я действительно не хочу полагаться на перетаскивание пользователеммаркер на карте Google для построения местоположения.

Заранее спасибо

Робби

Ответы [ 3 ]

3 голосов
/ 07 февраля 2011

Чтобы преобразовать почтовый индекс Великобритании в широту и долготу, используйте API геокодирования Google .

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

. Вы получите ответ JSON, который можно легко проанализировать с помощью JavaScript, чтобы заполнить свойскрытые поля.

1 голос
/ 15 февраля 2011

Получил сортировку, разбив эту страницу - http://gmaps -samples-v3.googlecode.com / svn / trunk / geocoder / getlatlng.html

Работает очень хорошо.

1 голос
/ 07 февраля 2011

Я бы использовал JavaScript для управления отправкой формы и в основном включал бы два скрытых поля в форме для широты / долготы.Таким образом, после того, как пользователь отправит адрес / почтовый индекс и т. Д., В основном используйте эту информацию и запросите API геокодирования Google и получите широту / долготу, которую вы ищете.После запроса вы можете вставить запрашиваемый Lat / Long в значения скрытых полей и затем отправить их с помощью JavaScript.

скрытое поле в форме и функцию присоединения к нажатию кнопки отправки в форме:1003 *

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

Это 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>
...