Проблемы с созданием Google Maps OverlappingMarkerSpiderfier

Я искал сайт для этой ошибки и, хотя было несколько ответов, ни один из них не работал для меня (или не подходил).

Я использую Google Maps 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);

Я также получил другую копию OMS на случай, если с оригиналом (скачанным с github) было что-то шаткое.

Если вам нужно увидеть больше кода, просто дайте мне знать, что вы ищете. Я только что опубликовал строки, которые являются проблемой. Моя карта генерируется правильно без OMS - проблема заключается только в инстанцировании oms.

1 ответ

Решение

Вы используете устаревшую карту Google Maps JavaScript API v2 с spiderifier Google Maps JavaScript API v3.

Это код v2 (GSize, GPoint, GLatLng):

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

var marker = new GMarker(new GLatLng(lat,lon), {
Другие вопросы по тегам