我们有一个KMZ文件可以很好地加载到Google地球桌面应用程序中。没有错误。
当我们尝试使用Google地球插件执行相同操作时,它甚至不会从fetchKml
函数返回。我们需要知道在本地文件上使用fetchKml
的任何特殊设置吗?
我正在尝试加载文件:
// Where 'ge' is the Google Earth Plugin
var href = 'C:/KMLDATA/TEST.KMZ';
google.earth.fetchKml(ge, href, function(kml) { /* do something with kml */ });
答案 0 :(得分:2)
这与Google地球插件无关,而是与JavaScript沙箱有关。
基本上JavaScript无法访问本地文件系统 - 因此您不能简单地使用本地文件的路径,例如您在代码中的路径......
var href = 'C:/KMLDATA/TEST.KMZ';
google.earth.fetchKml(ge, href, function(kmlObject) { ... }
要在浏览器中使用本地文件,您可以选择多种选项。
设置本地文件服务器并通过http为该文件提供服务。这是
在任何操作系统中都比较容易。所以C:/KMLDATA/TEST.KMZ
可能
成为http://localhost/KMLDATA/TEST.KMZ
使用一些可以访问文件系统的“插件”对象。一点点 更难以在所有浏览器中工作。有些事 像ActiveX,XPCOM,Signed Java applets等I made an example of loading local .kml files通过ActiveX进入插件 - 显然它只适用于IE。
在HTML5中使用文件api。很多代码,而不是我用kml实际尝试过的东西。 This tutorial非常详尽,涵盖了大多数方面。
我想说到目前为止,选项1是你最好的选择。设置本地文件服务器将允许您轻松加载和测试所有kml / kmz文件。
如果您不可能或不希望这样做,那么在公共服务器上托管文件(正如其他人所建议的那样)确实是唯一的选择。