Можете ли вы загрузить Google Maps API v3 через загрузчик API Google AJAX?

Некоторое время назад я использовал обычный метод загрузки Google Maps API следующим образом:

<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=abcdefg&sensor=true">

Позже я переключился на API Google AJAX для загрузки API Карт Google. Это произошло потому, что паре «виджетов» на моем веб-сайте требовался загрузчик API Google Ajax, поэтому я решил быть последовательным и использовал API-интерфейсы AJAX для загрузки Карт Google:

<script type="text/javascript" src="http://www.google.com/jsapi?key=abcdef"></script>
<script type="text/javascript">
  google.load("maps", "2", {"other_params": "sensor=true"});
</script>

Теперь, когда я наконец решил использовать Google Maps API v3, эта страница не указывает API v3 в списке доступных версий. Ни в одном из примеров документации API v3 также не показано использование API AJAX. Возможна ли (и поддерживается) загрузка Google Maps API v3 через загрузчик API AJAX?


person Salman A    schedule 14.03.2011    source источник


Ответы (2)


Это недокументировано, но работает.

google.load("maps", "3", {other_params:'key=YOUR_API_KEY', callback: function(){
  var map; // initialize your map in here
}});

[EDIT] Документация теперь требует использования ключа API, который передается загрузчику в качестве «ключевого» параметра. Я удалил «sensor=false» в качестве параметра, потому что теперь он явно не требуется и выдает предупреждение при его предоставлении.

person Haochi    schedule 14.03.2011
comment
Означает ли недокументированное, что это может (не) работать, как ожидалось, или может (не) работать в будущем? - person Salman A; 15.03.2011
comment
@Salman Ну, оказывается, это задокументировано, просто спрятано глубоко внутри FAQ, а не документация. - person Haochi; 15.03.2011
comment
Верно... похоже, что v3 API еще предстоит пройти долгий путь. - person Salman A; 16.03.2011
comment
Это отличный ответ! Просто хотел, чтобы вы знали, что вам не хватает } в конце. Вам нужно закрыть функцию обратного вызова и функцию .load. }}); - person Sam Thornton; 15.04.2013
comment
Просто чтобы уточнить, как будет выглядеть вызов, если вы настроите свою карту в отдельной функции: google.load('maps', '3', {other_params:'sensor=true', callback: yourFunctionName}); - person MattC; 29.05.2013
comment
как вы добавляете свой ключ API? я продолжаю получать это предупреждение о firebug Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys util.js (line 210) - person user2636556; 15.09.2016
comment
@ user2636556 Я обновил ответ, чтобы решить эту проблему. - person Nilpo; 17.01.2018

этот пример работает отлично.

//Set google Api
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
//Initialize General
<script type="text/javascript">
    //Add Jquery, if you need
    google.load("jquery", "1.7.1");
    //Initialize Map, with option sensor=false
    google.load("maps", 3, {other_params:"key=YOUR_API_KEY"});
    //Initialize Map's
    google.setOnLoadCallback(function() {
            var options = {
                  zoom: 10,
                  center: new google.maps.LatLng(-34.616507,-58.409463),
                  mapTypeId: google.maps.MapTypeId.ROADMAP
            }
            map = new google.maps.Map(document.getElementById('map_canvas'), options);
    });


</script>
person SoftwareARM    schedule 21.05.2012
comment
Я обновил этот ответ текущим рабочим кодом. Люблю, когда Google меняет вещи без предупреждения. - person Nilpo; 17.01.2018