Ich habe ein Google-Maps-Mashup, das ziemlich gut mit "kleinen" Testdateien funktionierte - jede Datei, die ich selbst für eine 60-Meilen-Reise erstellte, war weniger als 16k.KML-Datei lädt, aber nicht angezeigt - warum nicht?
Dann schickte mir gestern ein Benutzer eine KML-Datei, mit der sie Probleme hatten - es ist über 360k groß und, während es OK lädt, und wenn ich GGeoXML() anrufe, scheint es in Google Maps zu laden, aber keine Karte erscheint und der Fehler "Skriptfehler. (main.js, 0)" erscheint im Protokoll. Dies geschieht sowohl in meiner eigenen Anwendung als auch wenn ich versuche, die kml-Datei dem "Code Playground" von Google zuzuführen - aber die Datei wird in Google Earth geladen. Wenn ich die Datei erneut aus Google Earth in das kmz-Format speichere, funktioniert das auch - aber da die Datei nicht mehr XML ist, verliere ich einige der "Mehrwert" -Funktionen meines Mashups.
Ich habe die Google-Dokumentation eingescannt, konnte aber keinen Verweis auf eine maximale Dateigröße für kml-Dateien finden.
Irgendwelche Vorschläge?
Hier ist ein Code-Fragment, das das Problem im Code-Spielplatz Ursachen:
var map;
function zoomToGeoXML(geoXml) {
var center = geoXml.getDefaultCenter();
var span = geoXml.getDefaultSpan();
var sw = new GLatLng(center.lat() - span.lat()/2,
center.lng() - span.lng()/2);
var ne = new GLatLng(center.lat() + span.lat()/2,
center.lng() + span.lng()/2);
var bounds = new GLatLngBounds(sw, ne);
map.setCenter(center);
map.setZoom(map.getBoundsZoomLevel(bounds));
}
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
var geoXml = new GGeoXml("http://(my base url)/files/gps/expr.kml",
function() { zoomToGeoXML(geoXml); });
map.addOverlay(geoXml);
}
}
Dank - ich habe die Gruppe war die Überprüfung, und ich werde die gleiche Botschaft dort posten. Ich vermute, dass es ein Problem mit der Anzahl der Punkte im Tracklog des Benutzers gibt - die GPS-Geräte, die ich getestet habe und alle paar hundert Meter eine Position aufgezeichnet haben, scheint seine 8- bis 16-fache Auflösung aufzuzeichnen. –