1

MarkerManagerと一緒にグーグルマップAPIを使用しています。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();

    }
}

firebugjavascriptデバッガーで発生するエラーは次のとおりです。

GBoundsが定義されていません[このエラーの中断]GBounds.prototype.containsPoint= function(point){\ nmarkerma ... 109501758(377行目)

me.getMapGridBounds_は関数ではありません[このエラーを中断してください]me.shownBounds_= me.getMapGridBounds_(); \ nmarkerma ... 109501758(行106)

このエラーは、JavaScriptライブラリを静的にロードした場合にも発生します。

ありがとう、

4

1 に答える 1

3

私が見るあなたのコードには2つの問題があります。

まず、MarkerManagerの最新バージョンを使用していません。ここで新しいものを使用してください:

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

次に、MarkerManagerライブラリでは、最初にGoogleMapsAPIをロードする必要があります。

順序を切り替えることから始めます(これはうまくいかないと思います):

$.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 に答える