0

Google지도를 사용하여지도에 마커를 표시하고 있습니다. Google지도의 유틸리티 라이브러리 버전 1.1 (http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js)에서 Markermanager를 사용합니다.Google지도 Markermanager : IE에 마커가 표시되지 않습니다.

스크립트는 Firefox, Chrome 및 Opera에서 완벽하게 작동하지만 IE7 및 IE8에서는 마커가없는지도가 표시됩니다.

'posn.0은'빈 이다 또는 전혀 객체 코드 googlemaps.js : 0 URI :

:

Googlemaps.js을 mydomain.com/googlemaps.js~~V의 모습 IE 나에게 오류를 제공합니다 당신은 스크립트를 볼 수 있습니다

var officeLayer = [ 
{ 
"zoom": [0, 1], 
"places": [ 
    { 
    "name": "USA", 
    "posn": [40.72, -73.9826] 
    }, 
    { 
    "name": "Europe", 
    "posn": [52.370, 4.8966] 
    } 
] 
}, 
{ 
"zoom": [2, 17], 
"places": [ 
    { 
    "name": "Amsterdam", 
    "posn": [52.370, 4.8966] 
    }, 
    { 
    "name": "Barcelona", 
    "posn": [41.388, 2.1833] 
    }, 
    { 
    "name": "Berlin", 
    "posn": [52.5166, 13.4000] 
    }, 
    { 
    "name": "New York City", 
    "posn": [40.72, -73.9826] 
    }, 
    { 
    "name": "Paris", 
    "posn": [48.860, 2.3333] 
    } 
] 
}, 
{ 
"zoom": [9, 17], 
"places": [ 
{ 
    "name": "&klevering Centraal", 
    "posn": [52.379446, 4.893913] 
}, 
{ 
    "name": "290 Square Meters", 
    "posn": [52.368906, 4.902288] 
} 
] 
} 
]; 

var map; 
var mgr; 
var icons = {}; 
var allmarkers = []; 

function getIcon(images) { 
var icon = null; 
if (images) { 
if (icons[images[0]]) { 
icon = icons[images[0]]; 
} else { 
icon = new GIcon(); 
icon.image = "img/" 
    + images[0] + ".png"; 
var size = iconData[images[0]]; 
icon.iconSize = new GSize(size.width, size.height); 
icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1); 
icon.shadow = "img/" 
    + images[1] + ".png"; 
size = iconData[images[1]]; 
icon.shadowSize = new GSize(size.width, size.height); 
icons[images[0]] = icon; 
} 
} 
return icon; 
} 

function setupOfficeMarkers() { 
allmarkers.length = 0; 
for (var i in officeLayer) { 
var layer = officeLayer[i]; 
var markers = []; 
for (var j in layer["places"]) { 
var place = layer["places"][j]; 
var icon = getIcon(place["icon"]); 
var title = place["name"]; 
var posn = new GLatLng(place["posn"][0], place["posn"][1]); 
var marker = createMarker(posn,title,icon); 
markers.push(marker); 
allmarkers.push(marker); 
} 
mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]); 
} 
mgr.refresh(); 
} 

function createMarker(posn, title, icon) { 
var marker = new GMarker(posn, {title: title, icon: icon, draggable:false }); 
return marker; 
} 

function reloadMarkers() { 
setupOfficeMarkers(); 
} 

내가 오류의 원인을 찾을 수 없습니다 http://www.trendy-places.com/Amsterdam

에 살고 있습니다.

미리 도움을 주셔서 감사합니다.

답변

1

장소 배열에서 후행 쉼표를 확인하십시오. IE가 다른 요소를 예상하여 오류를 일으킬 수 있습니다.

"places": [ 
    { 
    "name": "USA", 
    "posn": [40.72, -73.9826] 
    }, 
{ 
    "name": "Europe", 
    "posn": [52.370, 4.8966] 
    }**,** 
+0

도움 주셔서 감사합니다. Rick. 후행 쉼표를 제거했지만 불행히도 오류가 계속 발생합니다. 위의 글에서 실제 스크립트를 업데이트했습니다. 이 버그의 원인은 무엇입니까? – TrendyT

+0

스크립트 프로파일 러를 켜서 정확한 오류가 발생한 위치를 확인해 보셨습니까? 일반적인 "경고"대화 상자보다 약간 자세한 내용을 얻을 수 있습니다. – Rick

+0

계속 도움을 주셔서 감사합니다. 스크립트 프로파일 러를 사용하면 IE에서 F12 기능을 의미합니다. 맞습니까? 불행히도 프로파일 러는 오류와 관련된 정보를 더 이상 제공하지 않습니다. 'var posn = new GLatLng (place [ "posn"] [0], place [ "posn"] [1]);' – TrendyT

관련 문제