我设法加载地图跨浏览器但是当用标记填充它时,它在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?
答案 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();
..弗雷德里克