-1

このエラーについてサイトを検索しましたが、いくつかの回答がありましたが、どれもうまくいきませんでした (または適用できませんでした)。

Google マップ API v3 を使用しており、重複マーカーの問題を解決するために OverlappingMarkerSpiderfier を実装しようとしています。私の問題は、OMS のインスタンスを作成できないことです。

    function getStateInfo(){
        //do stuff
        var lat = 42.5724;
        var lon = -74.948052;
        var map = new google.maps.Map(document.getElementById("map"),{draggableCursor:'pointer'});
        var oms = new OverlappingMarkerSpiderfier(map,{markersWontMove: true, markersWontHide: true});
        // do more stuff
        var whiteicon = new GIcon();
        whiteicon.image = "images/whiteCircle.png";
        whiteicon.iconSize = new GSize(11, 11);
        whiteicon.iconAnchor = new GPoint(6, 6);
        whiteicon.infoWindowAnchor = new GPoint(6,6);

        var marker = new GMarker(new GLatLng(lat,lon), {
            draggable: false, 
            title: ($(this).find('COMPANY_NAME').text()), 
            icon: whiteicon,
            map: map
        });
        oms.addMarker(marker);
    }

次のエラーが表示されます。

InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama

マーカーの作成/配置時ではなく、インスタンス化時にエラーが発生することを確認しました。完全を期すために、マーカーを配置するために使用しようとしているコードを次に示します。

var marker = new GMarker(new GLatLng(lat,long), {
draggable: false, 
title: ($(this).find('COMPANY_NAME').text()), 
icon: whiteicon,
map: map});

...

oms.addMarker(marker);

オリジナル (github からダウンロード) に問題があった場合に備えて、OMS の別のコピーも取得しました。

さらにコードを表示する必要がある場合は、探しているものをお知らせください。問題のある行を投稿しました。私のマップは OMS なしで適切に生成されます。問題は oms のインスタンス化だけです。

4

1 に答える 1

1

非推奨のGoogle Maps JavaScript API v2マップを Google Maps JavaScript API v3 Spiderifier で使用しています。

これは v2 コードです ( GSizeGPointGLatLng):

whiteicon.iconSize = new GSize(11, 11);
whiteicon.iconAnchor = new GPoint(6, 6);

var marker = new GMarker(new GLatLng(lat,lon), {
于 2016-05-02T12:49:18.813 に答える