Геокод Google Maps: неопределенная широта - PullRequest
0 голосов
/ 07 июля 2011

При попадании на страницу с помощью следующего сценария отображается:

  • широта: undefined
  • lon: 51.5001524

Почему лат не определенразве нет?Рабочий пример можно найти здесь .

Поднимите веб-консоль и убедитесь сами!

$(document).ready(function(){

var geocoder;
function codeAddress() 
{
    geocoder = new google.maps.Geocoder();
    var address = 'London, England';
    geocoder.geocode({'address': address}, function(results, status) 
    {   
      if (status == google.maps.GeocoderStatus.OK) 
      {
        lat = results[0].geometry.location.Ia;
        lon = results[0].geometry.location.Ja;

        console.log("lat: " + lat);
        console.log("lon: " + lon);
      }
    });
}
    codeAddress();
});
</script>
</head>
<body>
</body>
</html>

Пока мы находимся вэто - каково историческое значение Ia и Ja?Я предполагаю, что это относится к декартовым единичным векторам i и j (преимущественно используемым в технике), хотя я не уверен.

В Интернете я нашел другие примеры, которые используют .lat для .Ia и .lng для.Ja

Они, однако, возвращаются в консоли:

function () {
    return this[a];
}

Просто нужен удар в правильном направлении.Спасибо.

Ответы [ 3 ]

5 голосов
/ 07 июля 2011

Я бы использовал lat() и lng():

var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
1 голос
/ 28 марта 2012

Скорее всего, Google использует javascript minifier (например, http://jscompress.com/), который переименовывает все переменные, поэтому они могут изменяться при каждой сборке.

1 голос
/ 24 июля 2011

Это спроектированное поведение геокодера: Google сдвигает идентификаторы в

geometry.location.Ia;
geometry.location.Ja;

еженедельно, то есть сверху до

geometry.location.Ja;
geometry.location.Ka;

и так далее, поэтомупо идентификатору невозможно ссылаться на объект результата геокодера.

...