0

Ich verwende Google Maps, um Markierungen auf einer Karte anzuzeigen. Ich benutze Markermanager aus der Google Maps Utility-Bibliothek Version 1.1 (http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js)Google Maps Markermanager: Markierungen werden nicht im IE angezeigt

Die Das Skript funktioniert perfekt in Firefox, Chrome und Opera, aber in IE7 und IE8 wird die Karte ohne Marker angezeigt. IE gibt mir eine Fehlermeldung:

'posn.0' leer ist oder kein Objekt googlemaps.js Code: 0 URI: mydomain.com/googlemaps.js

Googlemaps.js wie folgt aussieht:

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(); 
} 

Sie das Skript sehen, live bei http://www.trendy-places.com/Amsterdam

kann ich nicht herausfinden, was den Fehler verursacht.

Vielen Dank für Ihre Hilfe im Voraus!

Antwort

1

Suchen Sie nach dem abschließenden Komma in Ihren Platzarrays. IE erwartet möglicherweise ein anderes Element und verursacht den Fehler.

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

Vielen Dank für Ihre Hilfe Rick. Ich habe das nachfolgende Komma entfernt und leider tritt der Fehler immer noch auf. Ich habe das aktuelle Skript in meinem Beitrag oben aktualisiert. Was könnte diesen Fehler noch verursachen? – TrendyT

+0

Haben Sie versucht, den Skriptprofiler zu aktivieren, um zu sehen, wo der genaue Fehler auftritt? Sie können ein wenig mehr Details als typische "Warnung" -Dialogfeld erhalten. – Rick

+0

danke für Ihre fortwährende Hilfe! Mit Script Profiler meinst du die F12 Funktion im IE, oder? Leider gibt mir Profiler keine weiteren Informationen zum Fehler. Es bezieht sich nur auf Zeile 91, wo die folgenden Daten aufgeführt sind: 'var posn = new GLatLng (place ["posn"] [0], place ["posn"] [1]);' – TrendyT

Verwandte Themen