【问题标题】:Google Maps Markermanager: Markers do not show up in IEGoogle Maps Markermanager:标记不显示在 IE 中
【发布时间】:2012-04-09 13:23:16
【问题描述】:

我正在使用 Google 地图在地图上显示标记。我使用 Google Maps 实用程序库 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 看起来像:

 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();
}

你可以在http://www.trendy-places.com/Amsterdam看到脚本直播

我无法找出导致错误的原因。

提前感谢您的帮助!

【问题讨论】:

    标签: javascript internet-explorer google-maps internet-explorer-8 markermanager


    【解决方案1】:

    检查您的位置数组中的尾随逗号。 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]);'
    • 因为我无法找出导致错误的原因。我已经根据here 找到的示例从头开始重建页面。现在它工作正常。感谢您的帮助!
    猜你喜欢
    • 2023-03-03
    • 2012-04-10
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多