Преобразование адреса в геокод, просто возвращает «неопределенное», почему? - PullRequest
1 голос
/ 24 октября 2011

Вот что у меня есть:

http://jsfiddle.net/JhCKW/1/

Я использую Google maps v3, Geocode.

Я сделал функцию showAddress (param).Это принимает параметр, проверяет, является ли его адрес, если он есть, то возвращает шнуры, а если нет, то возвращает 0.

Если вы проверите ссылку, вы увидите, что я написал код для этого, но япросто получите предупреждение "неопределено".

Что здесь не так?

1 Ответ

2 голосов
/ 26 октября 2011

О, я наконец понял дело. Проблема не в Google Maps. Вы возвращаете результат не из showAddress, а из обратного вызова. Так что на самом деле это никуда не денется. Вы должны также отобразить свой результат, используя обратный вызов. Просто так:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>
<script type="text/javascript">
  var geocoder;
  function showAddress(address, callback)
  {
    if (typeof(geocoder) == 'undefined') geocoder = new google.maps.Geocoder();

    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        callback(results[0].geometry.location);
      } else {
        callback(0);
      }
    });
  }

  $(document).ready(function(){
    $('#address').blur(function(){
      showAddress( $('#address').val(), function(result)
      {
        if (result === 0)
          alert('Adressen not found');
        else{
          alert(result);
          $('#cords').val( result );
        }
      });
    });
  });
</script>

<input type="text" name="address" id="address">

Вы можете проверить это здесь: http://jsfiddle.net/BgDQc/2/

...