我正在尝试建立一个显示城市的谷歌地球视图,但我坚持使用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**
firebug中的错误以下声明
ProjectedOverlay.prototype = new google.maps.OverlayView();
在我的脚本文件中,我已声明包含
的变量var gm //for google map
var ge //for google earth
gm在构建谷歌地图的功能中设置。
我想知道如何解决这个问题。我尝试了在web和
中找到的getProjection()ProjectedOverlay.prototype = new google.maps.OverlayView().prototype;
没有成功。这个主题对我来说绝对是新的,我无法弄清楚如何从OverlayView的文档或谷歌搜索中解决它。
我忘了或做错了什么?
答案 0 :(得分:0)
对geoXML3构造函数的调用是错误的,您必须将google.maps对象作为参数传递(...因此“google.maps未定义”错误)。
this.kmlParser = new geoXML3.parser({map: gm}); // gm for google map