Javascript 谷歌地图Markermanager:标记不会出现在IE中
我使用谷歌地图在地图上显示标记。我使用谷歌地图实用程序库1.1版中的Markermanager(http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js) 该脚本在Firefox、Chrome和Opera中运行良好,但在IE7和IE8中,地图显示时没有标记。IE给了我一个错误: “posn.0”为空或没有对象 googlemaps.js 代码:0 URI:mydomain.com/googlemaps.js Googlemaps.js看起来像:Javascript 谷歌地图Markermanager:标记不会出现在IE中,javascript,internet-explorer,google-maps,internet-explorer-8,markermanager,Javascript,Internet Explorer,Google Maps,Internet Explorer 8,Markermanager,我使用谷歌地图在地图上显示标记。我使用谷歌地图实用程序库1.1版中的Markermanager(http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js) 该脚本在Firefox、Chrome和Opera中运行良好,但在IE7和IE8中,地图显示时没有标记。IE给了我一个错误: “posn.0”为空或没有对象 googlemaps.js 代码:0 URI:mydo
var officeLayer = [
{
"zoom": [0, 1],
"places": [
{
"name": "USA",
"posn": [40.72, -73.9826]
},
{
"name": "Europe",
"posn": [52.370, 4.8966]
}
]
},
{
"zoom": [2, 17],
"places": [
{
"name": "Amsterdam",
"posn": [52.370, 4.8966]
},
{
"name": "Barcelona",
"posn": [41.388, 2.1833]
},
{
"name": "Berlin",
"posn": [52.5166, 13.4000]
},
{
"name": "New York City",
"posn": [40.72, -73.9826]
},
{
"name": "Paris",
"posn": [48.860, 2.3333]
}
]
},
{
"zoom": [9, 17],
"places": [
{
"name": "&klevering Centraal",
"posn": [52.379446, 4.893913]
},
{
"name": "290 Square Meters",
"posn": [52.368906, 4.902288]
}
]
}
];
var map;
var mgr;
var icons = {};
var allmarkers = [];
function getIcon(images) {
var icon = null;
if (images) {
if (icons[images[0]]) {
icon = icons[images[0]];
} else {
icon = new GIcon();
icon.image = "img/"
+ images[0] + ".png";
var size = iconData[images[0]];
icon.iconSize = new GSize(size.width, size.height);
icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1);
icon.shadow = "img/"
+ images[1] + ".png";
size = iconData[images[1]];
icon.shadowSize = new GSize(size.width, size.height);
icons[images[0]] = icon;
}
}
return icon;
}
function setupOfficeMarkers() {
allmarkers.length = 0;
for (var i in officeLayer) {
var layer = officeLayer[i];
var markers = [];
for (var j in layer["places"]) {
var place = layer["places"][j];
var icon = getIcon(place["icon"]);
var title = place["name"];
var posn = new GLatLng(place["posn"][0], place["posn"][1]);
var marker = createMarker(posn,title,icon);
markers.push(marker);
allmarkers.push(marker);
}
mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
}
mgr.refresh();
}
function createMarker(posn, title, icon) {
var marker = new GMarker(posn, {title: title, icon: icon, draggable:false });
return marker;
}
function reloadMarkers() {
setupOfficeMarkers();
}
你可以在现场看到剧本
我无法找出错误的原因
"places": [
{
"name": "USA",
"posn": [40.72, -73.9826]
},
{
"name": "Europe",
"posn": [52.370, 4.8966]
}**,**
提前感谢您的帮助 检查places数组中的尾随逗号。IE可能需要另一个元素并导致错误
"places": [
{
"name": "USA",
"posn": [40.72, -73.9826]
},
{
"name": "Europe",
"posn": [52.370, 4.8966]
}**,**
谢谢你的帮助,瑞克。我已经删除了尾随的逗号,不幸的是错误仍然发生。我已经在上面的帖子中更新了实际脚本。还有什么可能导致此错误?您是否尝试打开脚本探查器以查看确切错误发生的位置?您可能会得到比典型的“警告”对话框更详细的信息。感谢您的持续帮助!使用脚本分析器,你指的是IE中的F12函数,对吗?不幸的是,探查器没有向我提供有关错误的更多信息。它仅引用列出以下数据的第91行:“var posn=new GLatLng(place[“posn”][0],place[“posn”][1]);”因为我无法找出错误的原因。我已根据找到的示例从头开始重建页面。现在它工作得很好。谢谢你的帮助!