jQuery getScript и Google Maps API сообщение об ошибке - PullRequest
4 голосов
/ 03 июня 2010

У меня проблема с загрузкой API карт Google.

Я получил свой собственный объект с функцией, которая инициализирует карту, и API карт Google загружается через jquery.getscript. но я всегда получаю сообщение об ошибке в функции обратного вызова:

var MyGMap = {
    GMapScriptURL: "http://maps.google.com/maps?file=api&v=2&async=2&key=",
    Map: null,
    Geocoder: null,
    InitiazlizeMaps: function () {
        if (GBrowserIsCompatible()) {
            this.Map = new GMap2(document.getElementById("map_canvas"));
            this.Map.setCenter(new GLatLng(37.4419, -122.1419), 13);
            this.Geocoder = new GClientGeocoder();
        }
    }
}

$(function(){
    var CurrentKey = "MY_KEY";

    $.getScript(MyGMap.GMapScriptURL + CurrentKey, function () {
        MyGMap.InitiazlizeMaps();
        // throws GMap2 is undefined

    });
});

что не так? почему это не работает?

Ответы [ 2 ]

6 голосов
/ 03 июня 2010

В строке URL-адреса сценария есть async=2, что также означает асинхронную загрузку ядра отображения - вам нужно дождаться его завершения, прежде чем вы сможете вызвать InitializeMaps. Вы можете попытаться удалить async=2 из URL-адреса или использовать асинхронную и обратный вызов Google Map вместо функции обратного вызова getScript, например

$.getScript(MyGMap.GMapScriptURL + CurrentKey + "&callback=MyGMap.InitializeMaps");
1 голос
/ 24 января 2013

Вы также можете использовать асинхронный режим, но вам необходимо предоставить функцию обратного вызова.

Здесь http://lucamanzo -soluzione-software.it / wp /? P = 5 вы можете найти простой плагин jquery, показывающий все шаги для использования асинхронной загрузки и jquery, и построения карты с помощью всего несколько строк кода:

$.gmapstools.init();
$("#my_map_canvas").gmap({lat:37.4221913, lng:-122.08458530000001, draw_marker:true, zoom_level:13});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...