Google Maps OverlappingMarkerSpiderfier实例化问题

Google Maps OverlappingMarkerSpiderfier instantiation problems

我在网站上搜索了这个错误,虽然有几个答案,但 none 其中对我有用(或不适用)。

我正在使用 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

我已经确认错误发生在实例化时,而不是标记 creation/placement。为了完整起见,这里是我试图用来放置标记的代码:

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 实例化的问题。

您正在使用已弃用的 Google Maps JavaScript API v2 地图和 Google 地图 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), {