我已经为这个错误搜索了网站,虽然有几个答案,但没有一个对我有效(或不适用)。
我正在使用谷歌地图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实例化。
您使用的是不推荐使用的Google Maps JavaScript API v2地图和Google Maps JavaScript API v3 spiderier。
这是v2代码(GSize
、GPoint
、GLatLng
):
whiteicon.iconSize = new GSize(11, 11);
whiteicon.iconAnchor = new GPoint(6, 6);
var marker = new GMarker(new GLatLng(lat,lon), {