ここで少し問題が発生しました。このスクリプトは、IE8 以外のすべてのブラウザーで正常に動作します。
route() 関数が呼び出され、Google マップでエンコードされたポリゴンとポリラインが与えられます。スクリプトは、IE8 が setMap を実行しようとするたびに中断します
問題は、マップが範囲外にあることに関係していると思いますか? または、末尾のコンマ エラーですか? ここ数時間、これで遊んでいましたが、修正できませんでした。
何か案は??とても有難い。通常、コード全体を貼り付けるのは少し圧倒されるので好まないのですが、この場合は必要です。
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;
}
}