Получить адресные координаты API Карт Google по запросу ajax () - PullRequest
8 голосов
/ 11 апреля 2011

Я пытаюсь получить координаты lng и lat API Google Maps в следующем примере http://jsbin.com/inepo3/7/edit. Я ожидаю всплывающее окно «Успех», но оно продолжает показывать всплывающее окно «Ошибка».Запрос Google Maps дает правильный отзыв json (проверено firebug).

<script type="text/javascript">
    $().ready(function() {

        $.fn.getCoordinates=function(address){

            $.ajax(
            {
                type : "GET",
                url: "http://maps.google.com/maps/api/geocode/json",
                dataType: "jsonp",
                data: {
                    address: address,
                    sensor: "true"
                },
                success: function(data) {
                    set = data;
                    alert(set);
                },
                error : function() {
                    alert("Error.");
                }
            });
        };

        $().getCoordinates("Amsterdam, Netherlands");
    });
</script>

Кто-нибудь знает, как решить эту проблему?

С уважением, Гвидо Лемменс

РЕДАКТИРОВАТЬ

Я нашел другое решение с использованием API Javascript Карт Google, объединенного в jQuery:

<script type="text/javascript">
    $().ready(function() {
        var user1Location = "Amsterdam, Netherlands";
        var geocoder = new google.maps.Geocoder();
        //convert location into longitude and latitude
        geocoder.geocode({
            address: user1Location
        }, function(locResult) {
            console.log(locResult);
            var lat1 = locResult[0].geometry.location.lat();
            var lng1 = locResult[0].geometry.location.lng();
            $("#testDiv").html("latitude:" + lat1 + "<p>longitude:" + lng1 + "</p>");
        });
    });
</script>

1 Ответ

9 голосов
/ 11 апреля 2011

Google Map API V3 усложняет работу внешних библиотек с JSONP.Вот сообщение в блоге об этом.

JSONP и Google Maps API Geocoder Plus A Исправление с jQuery


Альтернативный способ получения геокодирования - использовать Служба геокодера API Google Map V3 .Вот пример того, как я помог человеку, у которого возникла похожая проблема, когда вы заменили его JSONP на использование службы геокодера Google Map V3.Взгляните на это JSFiddle Demo:

Это в основном ядро.В основном мы используем твиттер для получения адреса твита (например, в Лондоне, Мадриде или Грузии и т. Д.) И конвертируем фактический адрес в LatLng с помощью службы геокодирования Google Map:

$.getJSON(
    url1, function(results) { // get the tweets
        var res1 = results.results[0].text;
        var user1name = results.results[0].from_user;
        var user1Location = results.results[0].location;

        // get the first tweet in the response and place it inside the div
        $("#last-tweet1").html(res1 + "<p>from: " + user1name + " (" + user1Location + ")</p><p>");
        //convert location into longitude and latitude
        geocoder.geocode({
            address: user1Location
        }, function(locResult) {
            console.log(locResult);
            var lat1 = locResult[0].geometry.location.lat();
            var lng1 = locResult[0].geometry.location.lng();
            $("#testDiv").html("latitude:" + lat1 + "<p>longitude:" + lng1 + "</p>");
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...