我正在将脚本移植到 V3 我有一个朋友几年前写的,但我在错误控制台中得到了这个......
错误:未定义 GGeoXml
这适用于 V2。这是否不再可以在 V3 中使用,如果不是,我的解决方案是什么。
这是相对的代码片段。
var map;
var geoXml;
var lcolor = 'white'; //This defines the line color for the target circle
function initialize() {
{
map = new google.maps.Map(document.getElementById("map_canvas"));
geoXml = new GGeoXml(URLToKML + "?rand="+(new Date()).valueOf() );
map.setCenter(llCenter, 5);
// map.addControl(new GLargeMapControl());
// map.addControl(new GSmallMapControl()); // smaller map control
// map.addControl(new GMapTypeControl());
// Comment these listeners out if you don't want "hiding" controls
map.hideControls();
GEvent.addListener(map, "mouseover", function(){
map.showControls(); //'mouseover' listener shows controls
});
GEvent.addListener(map, "mouseout", function(){
map.hideControls(); //'mouseout' listener hides controls
});
map.enableScrollWheelZoom();
map.setMapType(G_HYBRID_MAP); // Use one of these three as your initial map
// map.setMapType(G_SATELLITE_MAP);
// map.setMapType(G_NORMAL_MAP);
map.addOverlay(geoXml);
如果有人想查看完整代码,这是我用于地图的完整 js 代码的链接。在将它移植到 V3 时我可能遗漏了一些东西
编辑:好的,我显示了地图,但我不确定我是否正确设置了 KML。我正在尝试插入一个变量,因为 KML 文件是从其他脚本动态创建的,因为数据每 30 秒更改一次并且假设刷新页面。如果我直接调用它,我可以让它像这样读取 KML 文件....
var nyLayer = new google.maps.KmlLayer('http://www.mesquiteweather.net/NSGMap/GMStrikes.kml',
{
suppressInfoWindows: false,
map: map,
preserveViewport: true
});
}
但是,当我尝试使用代码上方定义的变量动态调用它时,它不会读取它。这在 V2 中运行良好。
var nyLayer = new google.maps.KmlLayer('URLToKML + "?rand="+(new Date()).valueOf()',
{
suppressInfoWindows: false,
map: map,
preserveViewport: true
});
}
这是我用于此地图的代码的链接。
这是一个如何使用 V2 工作的链接。
这是我在转换时遇到问题的 V3 版本的链接。
我忽略了什么导致它无法像在 V2 中那样在 V3 中正确读取?
-谢谢