Обратное геокодирование - PullRequest
       7

Обратное геокодирование

0 голосов
/ 02 августа 2011
setTimeout("locationplace("+latt+",+"+lonn+")",2000); //line 1
document.write("<tr><td>"+(lc+1) + "</td><td>"+sstime+"</td><td>"+ct+"</td><td>"+minsec+"</td><td><a href='#'>"+loname+"</a></td></tr>"); //line 2

Функция геокода AndReverse ниже:

function locationplace(latt,lonn)
{
    var rna;
    var llng = new google.maps.LatLng(latt,lonn);
        ligeocoder.geocode({'latLng': llng}, function(results, status)
       {

            if (status == google.maps.GeocoderStatus.OK)
            { 

                if (results[0]) 
                {
                loname=results[0].formatted_address;
                }
                else
                {

                }
            }
            else
            {
                alert("Geocoder failed due to: " + status);
            }
        });


}

Моя проблема в том, что в строке 1 loname is "" (пусто).Я пытаюсь использовать setTimeout .. но он не работает .... я хочу отображать loname .. каждый раз, когда выполняется строка 1 и строка ....

Также я получил ошибку: ошибка геокодера из-за: OVER_QUERY_LIMIT

Пожалуйста, помогите мне ....

1 Ответ

1 голос
/ 02 августа 2011
  1. OVER_QUERY_LIMIT : Вы слишком часто вызываете функцию geocode().Это обрабатывается в других темах Stackoverflow (см. 1 и 2 , как указано в комментарии @OverZealous).

  2. loname пусто: вы устанавливаете loname в обратном вызове geocode().Этот обратный вызов вызывается асинхронно, поэтому вы не можете полагаться на то, что loname устанавливается после вызова locationplace():

    locationplace(...); // calls geocode(), which sets loname asynchronously
    document.write(...loname...) // CANNOT USE HERE
    

    Проблема даже усиливается, когда вы вызываете locationplace() во время ожидания.

    Вы должны использовать loname в обратном вызове:

    if (results[0]) {                     
        loname=results[0].formatted_address;
        // use loname here:
        document.write(...loname...)
    }  
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...