gpt4 book ai didi

javascript - IE8 的谷歌地图 .setMap 问题

转载 作者:行者123 更新时间:2023-11-30 13:10:18 25 4
gpt4 key购买 nike

所以我在这里遇到了一些问题。此脚本在除 IE8 之外的所有浏览器中都可以正常工作

route() 函数被调用 - 并被赋予 Google map 编码的多边形和折线。每次 IE8 尝试执行 setMap 时脚本都会中断

我认为这个问题与 map 超出其范围有关?还是尾随的逗号错误?我刚刚花了最后几个小时来解决这个问题,但我无法修复它。

有什么想法吗?非常感激。通常不喜欢粘贴整个代码,因为它有点让人不知所措,但在这种情况下需要它。

var markersArray = [];


function initMap(lat,lng) {
if(lat) {

var myLatLng = new google.maps.LatLng(lat, lng);
var zoomi=13;
}else{

var myLatLng = new google.maps.LatLng(54.162434, -2.285156);
var zoomi=5;
}

var myOptions = {
zoom: zoomi,
zoomControl: true,
panControl: false,
streetViewControl: false,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_CENTER
},
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
}


function route(journeyPolyy,journeyLine,startLat,startLng,endLat,endLng) {

reset();

var startLatLng=startLat + ',' + startLng;

var start = new google.maps.LatLng(startLat,startLng);
var end = new google.maps.LatLng(endLat,endLng);

var decodedPath = google.maps.geometry.encoding.decodePath(journeyLine);
var flightPath = new google.maps.Polyline({
path: decodedPath,
strokeColor: 'blue',
strokeOpacity: 0.5,
strokeWeight: 5
});
markersArray.push(flightPath);

flightPath.setMap(map);
var marker = new google.maps.Marker({
position: start
});

markersArray.push(marker);


marker.setMap(map);

var endPpoint = new google.maps.Marker({
position: end
});
markersArray.push(endPpoint);


endPpoint.setMap(map);

poly = journeyPolyy.replace(/\\\\/g,"\\");

var decodedPath = google.maps.geometry.encoding.decodePath(poly);

var decodedLevels = decodeLevels("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");

var setRegion = new google.maps.Polygon({
path: decodedPath,
levels: decodedLevels,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor : '#FF0000',
fillOpacity : 0.1,
map: map
});
setRegion.setMap(map);
markersArray.push(setRegion);
var obj= document.getElementById('map');
obj.style.visibility='visible';
HideContent('mainContent');
map.setCenter(start);
map.setZoom(13);
}


function decodeLevels(encodedLevelsString) {
var decodedLevels = [];

for (var i = 0; i < encodedLevelsString.length; ++i) {
var level = encodedLevelsString.charCodeAt(i) - 63;
decodedLevels.push(level);
}
return decodedLevels;
}

function reset() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}

最佳答案

存在命名冲突(map-objects 名称与元素的 id 相同)

您可以为 div 使用不同的 ID,为 map 变量使用不同的名称,或者在全局范围内声明 map 变量:

var map;

关于javascript - IE8 的谷歌地图 .setMap 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14114576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com