我正在使用webservice从sql server加载标记。和一个群集来分组这些标记,然后我重新调整地图大小以适应边界使用map.fitBounds(边界)..它适用于chrome和firefox,但不适用于IE,它给了我一个其中一个谷歌地图api 3文件(main.js)中的堆栈空间错误
您可以针对此问题查看此演示:http://aprilit.com/gmap/default.aspx 这是我的代码的一部分。
函数LoadMap(arrMarkers){
var mapOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: false } var map = new google.maps.Map(document.getElementById('map'), mapOptions); var markers = []; var tempCount = 0; var bounds = new google.maps.LatLngBounds(); for (var XMLCount = 0; XMLCount < arrMarkers.length; XMLCount++) { var Points = $.parseXML(arrMarkers[XMLCount]); $Markers = $(Points).find("Marker"); for (var i = 0; i < $Markers.length; i++) { var tempID = $Markers.find('mid')[i].innerHTML; var tempCID = $Markers.find('cid')[i].innerHTML; var myLatLng =
new google.maps.LatLng($ Markers.find('lt')[i] .innerHTML,
$ Markers.find( 'LG')[I] .innerHTML);
markers.push(new google.maps.Marker({
position: myLatLng, map: map, animation: google.maps.Animation.DROP, markerid: $Markers.find('mid')[i].innerHTML, catid: $Markers.find('cid')[i].innerHTML, icon: LoadIcon($Markers.find('cimg')[i].innerHTML) })); infowindow = new google.maps.InfoWindow({ content: "loading..." }); google.maps.event.addListener(markers[tempCount], 'click', function () { infowindow.setContent('<div ><img src="img/assets/loader.gif"/> Loading../div>'); infowindow.open(map, this); $.ajax( { type: "POST", contentType: "application/json; charset=utf-8", url: "Markers.asmx/GetMarker", data: JSON.stringify({ MarkerID: this['markerid'], CategoryID: this['catid'] }), dataType: "json", success: function (msg) { infowindow.setContent(formatInfoDivHTML(msg.d)); } }); map.panTo(this.getPosition()); infowindow.open(map, this); }); bounds.extend(myLatLng); tempCount++; } } //////////////////////////Here is the problem map.fitBounds(bounds); var mcOptions = { gridSize: 50, maxZoom: 12 }; var markerCluster = new MarkerClusterer(map, markers, mcOptions); google.maps.event.trigger(map, 'resize'); }
感谢并感谢您的帮助
还要注意我在其他地方使用fitbounds并且它工作得很好。
仅供参考,当我使用较旧版本的谷歌浏览器(版本31.0.1650.57米)检查时,它给了我同样的错误..但是当我更新chrome时问题已经消失
答案 0 :(得分:0)
您的SplitXML函数正在向标记数组附加一个额外的null元素。 IE的大多数版本都不喜欢这样。
答案 1 :(得分:0)
我解决了这个问题,
IE似乎不支持我在这里使用的innerHTML属性:
$ Markers.find( 'MID')[I] .innerHTML
或我从xml字段中检索数据的任何其他地方。
因此必须将textContent属性替换为:
$ Markers.find( 'MID')[I] .textContent;
这解决了整个问题。!!
感谢您的帮助