【发布时间】:2009-07-06 16:00:55
【问题描述】:
我有一个 google-maps mashup 可以很好地处理“小”测试文件 - 我生成的每个文件,即使是 60 英里的行程,也不到 16k。
然后,昨天,一位用户向我发送了一个他们遇到问题的 KML 文件 - 它的大小超过 360k,虽然它可以上传,但当我调用 GGeoXML() 时,它似乎可以加载到 Google 地图中,但是没有地图出现,并且日志中出现错误“脚本错误。(main.js,0)”。这既发生在我自己的应用程序中,也发生在我尝试将 kml 文件提供给谷歌的“代码游乐场”时——但文件在谷歌地球中加载良好。如果我将 Google 地球中的文件重新保存为 kmz 格式,那也可以使用 - 但由于文件不再是 XML,我失去了 mashup 的一些“附加值”功能。
我已经扫描了 Google 文档,但找不到任何有关 kml 文件最大文件大小的参考。
有什么建议吗?
这是导致代码游乐场出现问题的代码片段:
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);
}
}
【问题讨论】: