openlayers и геокодер Google - PullRequest
       3

openlayers и геокодер Google

0 голосов
/ 08 февраля 2011

Я пытаюсь использовать сервис геокодирования Google с картой openlayer.это должно работать без проблем ... не так ли?код, который я использую, похож на пример с googles geocode api doc:

function geoCode(){
  var adresse = $("observation_location_text").getValue();
  var geoCoder = new google.maps.Geocoder();
  alert(adresse);
  geoCoder.geocode( { 'address': address}, function(results, status) {                                                                                                                                                                  
    if (status == google.maps.GeocoderStatus.OK) {
      map.setCenter(results[0].geometry.location);
      marker.moveTo(results[0].geometry.location);
      marker.display(true);
    } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
  });  }

, по какой-то причине я не получаю объект Geocoder.предупреждение с адресом никогда не выполняется.

с нетерпением жду некоторых подсказок jan

Ответы [ 3 ]

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

Попробуйте удалить любую зависимость от OpenLayers и посмотрите, работает ли она.Вы должны иметь возможность создавать объект геокодера с помощью простого API Карт Google.

Меньше всего я заметил, что вы читаете значение из ввода в переменную, называемую "адрес", но передаете переменную геокодера, называемую "адрес".Если это просто опечатка, а вторая переменная не объявлена, вы получаете сообщение об ошибке скрипта, и код перестает выполняться.Вероятно, поэтому ваш геокодер никогда не создается.

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

Чтение комментариев к первому ответу - вы уверены, что файлы Карт Google загрузились при запуске "new google.maps.Geocoder ()"?

Вы говорите, что код вызывается при загрузке, как вы это делаете? Поскольку вы используете jQuery, это должно быть сделано в $ (document) .ready ().

0 голосов
/ 25 мая 2013

Я пытаюсь сделать то же самое, что и вы.Вот моя проблема, она может помочь вам ссылка

Также, если вы попытаетесь передать точку геокодирования на слое открытых слоев, помните, что точки на векторных слоях открытых слоев похожи (lon, lat) НО точки, полученные из геокодирования Google, похожи (lat, lon).Я копирую со страницы Googles: «location содержит геокодированную широту, значение долготы. Обратите внимание, что мы возвращаем это местоположение как объект LatLng, а не как отформатированную строку» ( страница Googles )

Но я думаю, что проблема в том, что "к сожалению, геокодер Google диктует, что вы используете координаты для отображения на карту Google.", Как говорит Эль Дудерино ...

О, а также, если вы используете Drupal,проверьте это из ...

...