Google地图标记未在IE7中显示

时间:2009-12-09 13:18:09

标签: jquery xml google-maps

我设法加载地图跨浏览器但是当用标记填充它时,它在IE7中不起作用(标记不显示)。 Firefox中的一切都很好。

这些位置以XML格式存储,然后通过javascript进行解析并添加标记。

XML结构:

<?xml version='1.0' standalone='yes'?>    
<stores>
  <store>
    <lat>47.00565</lat> <!-- Note: fake values here -->
    <lng>26.25879</lng>
  </store>
</stores>

jQuery代码:

var loadMarkers = function(xml){
  var $allstores = $(xml).find("store");
  for($i=0; $i<$allstores.length; $i++){
    var $store = $allstores.eq($i);
    var marker= new GMarker(new GLatLng($store.find("lat").text(),$store.find("lng").text()));
    MaCarte.addOverlay(marker);
  }
}

知道XML文件中有300多个商店可能很有用。

你有这样的问题吗?

更新

问题似乎在于XML解析。 事实上,如果我提醒这样返回的商店数量:

alert($allmagasins.length);

我在IE上获得“0”,在Firefox上获得“252”。 jQuery是否在IE中无法正确解析XML?

2 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。

当使用jQuery处理IE和XML解析时,必须完成一些工作才能使其工作。

这是我更新的工作jQuery代码:

var loadMarkers = function(xml){

  if($.browser.msie){
    var data = xml;
    xml = new ActiveXObject( 'Microsoft.XMLDOM');
    xml.async = false;
    xml.loadXML(data);
  }

  var $allstores = $(xml).find("store");
  for($i=0; $i<$allstores.length; $i++){
    var $store = $allstores.eq($i);
    var marker= new GMarker(new GLatLng($store.find("lat").text(),$store.find("lng").text()));
    MaCarte.addOverlay(marker);
  }
}

答案 1 :(得分:0)

在我的评论中粘贴了错误的链接。 http://gmaps-utility-library-dev.googlecode.com/svn/trunk/markermanager/

这是一个例子(未经测试)

var markerManager = new MarkerManager(map)
markerManager.addMarker(marker)
markerManager.refresh();

..弗雷德里克