Геокодер Google Map API V3 не показывает правильное место

Я обновляю свои коды с Google Map API V2 до V3. В V2 я использовал GlocalSearch, чтобы получить широту и долготу для данного адреса.

В V3 я увидел google.maps.Geocoder() и попытался получить аналогичную информацию. Однако широта и долгота, заданные функцией V3, не точны.

Пожалуйста, посмотрите следующий снимок экрана здесь: Правильно

Мои коды для V3 следующие:

var geocoder = new google.maps.Geocoder();
function codeAddress(address) {
    if (geocoder) 
    {
        address = address + ", UK";

        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var latlng = results[0].geometry.location;              
                addMarker(latlng); //Adding Marker here             
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });
    }
}

Есть ли лучший способ получить точный результат в API V3? Спасибо.


person TTCG    schedule 29.05.2010    source источник
comment
Я заметил, что в V3, когда я ищу компанию, она просто приводит меня в ПРИБЛИЗИТЕЛЬНОЕ место (по крайней мере, оттуда, где я нахожусь, Филиппины). И поскольку я не мог заставить V3 и Localsearch работать вместе, я решил вместо этого использовать V2 и Localsearch. Я использовал геокодирование V2, а затем Localsearch для отображения маркеров.   -  person wenbert    schedule 10.08.2010


Ответы (2)


Запишите значение свойства местоположения и проверьте правильность координат.

Опубликуйте код метода addMarker.

person Adilson de Almeida Jr    schedule 06.01.2011

Другой вариант — вызвать веб-службу, которая выдаст результаты в формате JSON или XML, а затем вы можете сформулировать эти результаты, чтобы получить желаемое местоположение. В документации Google Maps v3 есть множество примеров.

person Naveed Ahmad    schedule 18.02.2011