-1

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

Я использую API-интерфейс google maps 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, которая является проблемой.

+0

Просьба [Minimal, Complete, испытана и читаемый примера] (http://stackoverflow.com/help/mcve), что свидетельствует о проблема. – geocodezip

+0

Пока вы видели, что используете «Google Maps API v3», опубликованный код - это код Google Maps JavaScript API v2. Эта версия API устарела и не должна использоваться для нового кода. Это также может объяснить вашу проблему с помощью spiderifier. – geocodezip

+0

Спасибо! Вы совершенно правы. – dneimeier

ответ

1

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

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

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

var marker = new GMarker(new GLatLng(lat,lon), { 
Смежные вопросы