【发布时间】:2016-08-25 20:16:10
【问题描述】:
我已经在网站上搜索了这个错误,虽然有几个答案,但没有一个对我有用(或者不适用)。
我正在使用谷歌地图 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 实例化。
【问题讨论】:
-
请提供一个Minimal, Complete, Tested and Readable example 来证明这个问题。
-
当您看到您“使用 google maps API v3”时,发布的代码是 Google Maps JavaScript API v2 代码。该版本的 API 已弃用,不应用于新代码。这也可以解释您对蜘蛛程序的问题。
-
谢谢!你完全正确。
标签: javascript google-maps google-maps-api-3 markerspiderfier