我在使用Google Earth API时遇到错误。错误消息是:ERR_CREATE_PLUGIN或在浏览器中google earth显示一条消息,指出插件出错。我在Chrome / Firefox / IE中尝试了它,并且具有相同的问题或完整的空白,谷歌地球界面应该是。
现在我的代码,我认为我的代码是典型的谷歌网站上的教程。主要区别在于我没有在页面加载时调用它。我有一个bootstrap tab divdier,作为回调加载到另一个动作。然后加载地图。通过调试以下代码,我知道调用google.earth.createInstance会导致对failureCB的调用,但错误信息根本不是很有用
function initCB(instance) {
var ge = instance;
var lookAt = ge.createLookAt('');
lookAt.setLatitude(lat);
lookAt.setLongitude(lng);
}
function failureCB(e, m) {
alert(e);
}
google.earth.createInstance('googleEarthTool', initCB, failureCB);
关于我应该去哪里的任何想法?网站位于:http://beta.snowgeek.org/tools/trip-planning
答案 0 :(得分:1)
ERR_CREATE_PLUGIN
问题几乎肯定与您加载插件的方式有关。你说......
“主要区别在于我不会在页面加载时调用它。”
...但是您需要等到Google Earth Api完成加载才能调用
google.earth.createInstance
通常,这可以通过setOnLoadCallback
或通过文档正文的onLoad
处理程序完成,例如。
function init() {
google.earth.createInstance('googleEarthTool', initCB, failureCB);
}
...然后
google.setOnLoadCallback(init);
或
<body onload="init()">
修改强>
从查看代码我看不到你打电话
ge.getWindow().setVisibility(true);
要实际显示插件 - 你需要做一些像
这样的事情this.displayGoogleEarth = function(lat, lng) {
function initCB(instance) {
var ge = instance;
ge.getWindow().setVisibility(true); //actually display the plugin
此外,加载api的方式有误。
google.load("earth", "1", { "other_params" : "sensor={true_or_false}" });
应该是
google.load("earth", "1", { "other_params" : "sensor=true" });
或
google.load("earth", "1", { "other_params" : "sensor=false" });