问题描述
我正在尝试在 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 的问题),它会起作用。
相关问题:
- The KML file included in google drive that does not recognize
- KML not shown when loaded with javascript API to google maps
代码片段:
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>