我无法弄清楚为什么我会尝试像我自己一样重现一些基本的例子https://google-developers.appspot.com/earth/documentation/samples/fetchkml_example,我无法让它工作。我正在使用我用于Google Maps API的密钥,因此我认为该部分应该没问题,但是当涉及到KML时,无论是获取还是解析,我都无法使其工作。我已将我的KML文件放在https://sites.google.com/site/shahinkmlexamples/experiment/kml_example.kml,我的代码在下面,我的密码不显示
<html>
<head>
<title>fetchkml_dom_example.html</title>
<script src="//www.google.com/jsapi?key=MYKEY#"></script>
<script type="text/javascript">
var ge;
google.load("earth", "1");
function init() {
google.earth.createInstance('map3d', initCB, failureCB);
}
function initCB(instance) {
ge = instance;
ge.getWindow().setVisibility(true);
var href = 'https://sites.google.com/' + 'site/shahinkmlexamples/experiment/kml_example.kml';
google.earth.fetchKml(ge, href, function(kmlObject) {
if (kmlObject)
ge.getFeatures().appendChild(kmlObject);
if (kmlObject.getAbstractView() !== null)
ge.getView().setAbstractView(kmlObject.getAbstractView());
});
}
function failureCB(errorCode) {
}
google.setOnLoadCallback(init);
</script>
</head>
<body>
<div id="map3d" style="border: 1px solid silver; height: 400px; width: 600px;"></div>
</body>
</html>
所以我知道解决方案必须简单,但我无法理解。 感谢
答案 0 :(得分:0)
我不确定你的问题是什么。我把你的代码放到在线编辑器中 - http://www.onlinehtmleditor.net/ 一个简单的复制和粘贴,它工作正常。
另外,关于API密钥。对于Google地球,您不再需要它。只需使用下面的通用JavaScript调用
答案 1 :(得分:0)
当您从本地文件加载它时(例如使用notepad ++并在Chrome中加载该文件),您需要在脚本标记中添加协议:
<script src="//www.google.com/jsapi?key=MYKEY#"></script>
变为:
<script src="https://www.google.com/jsapi?key=MYKEY#"></script>
如果没有这种更改,您的页面将在本地文件系统中查找该文件。
如果您的网页是HTTPS,您的浏览器将加载HTTPS版本,如果您的网页是HTTP,则会加载HTTP版本。这可以防止浏览器中的安全警告。