1

我正在使用 google map API 和MarkerManager。我通过 JQuery 加载了 2 个 javascript 库。

这是我的Javascript:

function initialize() {
    $.getScript('http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/src/markermanager.js');
    $.getScript('http://maps.google.com/maps?file=api&v=2&async=2&callback=mapLoaded&sensor=true_or_false&key=ABC');
    
}
function mapLoaded() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(18, -77.4), 13);
        map.setUIToDefault();

        var mgr = new MarkerManager(map);
        mgr.addMarkers(getWeatherMarkers(), 5); //gets some marker from another function
        mgr.refresh();

    }
}

我在 firebug javascript 调试器中遇到的错误是:

GBounds 未定义 [Break on this error] GBounds.prototype.containsPoint = function(point) {\nmarkerma...109501758(第 377 行)

me.getMapGridBounds_ 不是函数 [打破此错误] me.shownBounds_ = me.getMapGridBounds_();\n markerma...109501758(第 106 行)

如果我静态加载 javascript 库,也会发生此错误。

谢谢,

4

1 回答 1

3

我看到你的代码有两个问题。

首先,您没有使用最新版本的 MarkerManager。在这里使用新的:

http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js

其次,MarkerManager 库需要首先加载 GoogleMaps API。

从切换顺序开始(我认为这行不通):

$.getScript('http://maps.google.com/maps?file=api&v=2&async=2&callback=mapLoaded&sensor=true_or_false&key=ABC');
$.getScript('http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js');

但更有可能的是,您将需要这样的东西:

function initialize() {
    $.getScript('http://maps.google.com/maps?file=api&v=2&async=2&callback=mapLoaded&sensor=true_or_false&key=ABC');
}
function mapLoaded() {
    $.getScript('http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js', function(){
      if (GBrowserIsCompatible()) {
          map = new GMap2(document.getElementById("map_canvas"));
          map.setCenter(new GLatLng(18, -77.4), 13);
          map.setUIToDefault();

          var mgr = new MarkerManager(map);
          mgr.addMarkers(getWeatherMarkers(), 5); //gets some marker from another function
          mgr.refresh();
      }          
    });
}
于 2010-01-10T05:03:52.883 回答