我正在尝试构建一个显示城市的谷歌地球视图,但我坚持使用 kml 解析器 geoxml3。我有一个 javascript 构建一个谷歌地图,首先显示我想要的位置。这很好用。我从 php 脚本中调用该函数,为它提供来自数据库的地址和 kml 文件引用。该函数构建地图,在一切正常时设置一个标志“map_finished”作为控制标志,并调用构建谷歌地球视图函数。
// Get maps and earth from google
google.load( 'maps', '2.s', {'other_params': 'sensor=true'} );
google.load( 'earth', '1' );
//Google Earth Initializer
function initObjectEarth() {
// Check if Google Earth plugin is installed
if( gm_loaded ) {
this.ge_plugin_installed = google.earth.isInstalled();
if( this.ge_plugin_installed ) {
google.earth.createInstance( 'inmap', geSuccessCallback, geFailureCallback );
ge_loaded = true;
} else {
alert( 'Your Browser has not yet installed the Google Earth plugin.
We recommend installing it to use all features!' );
return false;
}
}
}
// Success handler
function geSuccessCallback( object ) {
this.ge = object;
this.ge.getWindow().setVisibility( true );
this.kmlParser = new geoXML3.parser();
}
// Error handler
function geFailureCallback( object ) {
alert( 'Error: ' + object );
}
geoxml 解析器使用 ProjectedOverlay 类。两个库都加载到文档头中。当解析器启动时,它会请求一个 ProjectedOverlay 实例。这个类抛出一个
Error: **google.maps is undefined**
以下语句的萤火虫错误
ProjectedOverlay.prototype = new google.maps.OverlayView();
在我的脚本文件中,我声明了 vars,包括
var gm //for google map
var ge //for google earth
gm 在构建谷歌地图的函数中设置。
我想知道如何解决这个问题。我尝试了我在网络中找到的 getProjection() 以及
ProjectedOverlay.prototype = new google.maps.OverlayView().prototype;
没有成功。这个话题对我来说绝对是新的,我无法从 OverlayView 的文档或谷歌搜索中弄清楚如何解决它。
我忘记了什么或做错了什么?