【问题标题】:jQuery getScript and Google Maps API Error messagejQuery getScript 和 Google Maps API 错误消息
【发布时间】:2010-06-03 12:32:40
【问题描述】:

我在加载 google maps api 时遇到问题。

我得到了我自己的对象,它带有一个初始化地图的函数,并且通过 jquery.getscript 加载了谷歌地图 api。但我总是在回调函数中收到错误消息:

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

    });
});

怎么了?为什么这没有运行?

【问题讨论】:

  • 您收到的错误信息是什么?

标签: jquery google-maps


【解决方案1】:

您在脚本 URL 行中有 async=2,这意味着也异步加载映射核心 - 您需要等待它完成,然后才能调用 InitializeMaps。您可以尝试从 URL 中删除 async=2,或者使用 Google Map 的异步和回调而不是 getScript 回调函数,例如

$.getScript(MyGMap.GMapScriptURL + CurrentKey + "&callback=MyGMap.InitializeMaps");

【讨论】:

  • 只是补充一下,Dion Almaer mentions the use of the callback on his blog(当这个答案第一次出现时,我正在输入我的答案,所以我放弃了我的答案。)
  • 奇怪...现在我得到一个错误:_mF is not defined 这是从哪里来的?
  • 哦,对不起,我打错了Initiazlize - 我没发现你中间有一个z。也许就是这样? :-/
  • 是的,谢谢,现在我至少看到了 Google 徽标......但没有地图......你知道为什么吗?
  • 不,抱歉 - 我现在看起来一切正常。我已经猜到了缩放级别,但 13 在maps.google.co.uk/maps?q=37.4419,+-122.1419&z=13 处工作正常@
【解决方案2】:

也可以使用异步模式,但需要提供回调函数。

在这里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});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2020-09-06
    • 2012-10-12
    相关资源
    最近更新 更多