KML 图层未加载

问题描述

我正在尝试在 Google 地图上加载一个简单的 KML 图层。我无法让它适用于特定图层,同时,其他类似的 KML 图层加载正常。这是代码的最小版本:https://jsfiddle.net/eundas/0fhqmocv/4/ 为什么这不起作用?是我的代码还是 KML 的结构?我希望对此有所了解。

var map;
var options = {
  zoom: 5,center: new google.maps.LatLng(-33.5,-70),mapTypeId: google.maps.MapTypeId.ROADMAP,scaleControl: true
};
map = new google.maps.Map(document.getElementById("mapcanvas"),options);

var Coquimbo4204Layer = new google.maps.KmlLayer({
    url: 'https://drive.google.com/uc?export=download&id=1bCBH784phTY_wK0WZiAbbDRlXb1dJsv7'
});
google.maps.event.addListener(Coquimbo4204Layer,'status_changed',function() {
console.log(Coquimbo4204Layer.getStatus());
})
Coquimbo4204Layer.setMap(map);

解决方法

通过发布的代码,我得到 FETCH_ERROR,根据文档,这意味着:The document could not be fetched

如果 url 是 http: 而不是 https:(这似乎是 Google Drive 的问题),它会起作用。

相关问题:

proof of concept fiddle

screenshot of working map

代码片段:

var map;
var options = {
  zoom: 5,center: new google.maps.LatLng(-33.5,-70),mapTypeId: google.maps.MapTypeId.ROADMAP,scaleControl: true
};
map = new google.maps.Map(document.getElementById("mapcanvas"),options);

var Coquimbo4204Layer = new google.maps.KmlLayer({
    // url: 'https://drive.google.com/uc?export=download&id=1bCBH784phTY_wK0WZiAbbDRlXb1dJsv7'
    url: 'http://drive.google.com/uc?export=download&id=1bCBH784phTY_wK0WZiAbbDRlXb1dJsv7'
});
google.maps.event.addListener(Coquimbo4204Layer,'status_changed',function() {
console.log(Coquimbo4204Layer.getStatus());
})
Coquimbo4204Layer.setMap(map);
#mapcanvas {
  height: 500px;
  width: 500px;
  background: blue;
  margin: 0px;
  padding: 0px;
}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="mapcanvas">CANVAS</div>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...