Google maps 谷歌地图KML层未显示
我有以下HTML:Google maps 谷歌地图KML层未显示,google-maps,google-maps-api-3,kml,Google Maps,Google Maps Api 3,Kml,我有以下HTML: <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0"> <meta charset="utf-8"> <title>KML Layers</title> <style> #map { height: 90%;
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<title>KML Layers</title>
<style>
#map {
height: 90%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: {lat: 41.876, lng: -87.624}
});
var ctaLayer = new google.maps.KmlLayer({
url: 'http://ec2-54-198-148-171.compute-1.amazonaws.com/webapp/public/kmlfiles/LargeCoordinates.kml',
map: map
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBMtoh9P3UkoxbXndKu_HOP7KsVwTRvxGU&callback=initMap">
</script>
</body>
</html>
KML层
#地图{
身高:90%;
}
html,正文{
身高:100%;
保证金:0;
填充:0;
}
函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:11,
中心:{lat:41.876,lng:-87.624}
});
var ctaLayer=new google.maps.KmlLayer({
网址:'http://ec2-54-198-148-171.compute-1.amazonaws.com/webapp/public/kmlfiles/LargeCoordinates.kml',
地图:地图
});
}
此处的KML未显示在地图上
我所有的其他KML文件都可以正常工作,只是这一个不行。我相信这是因为KML文件中有很多坐标
如果您有任何帮助来修复它,我们将不胜感激。在您的第五个位置标记/多边形(大的一个)中,带有几何图形/坐标的线似乎被截断了。第一条线索是,在这行的末尾似乎缺少标记。当它需要以:
结束时,它仅以
标记结束。
仔细查看最后一组坐标,它们似乎被截断,在第二个数字的小数点后结束:-96.697594,46。
因此,您至少需要添加适当的标记来结束这条线,并可能修复最后一个坐标对(或只是删除它)。这将为您提供一个应加载的有效KML文件(只要几何体对于贴图来说不是太大)。您还需要检查源数据,以查看该行中是否缺少其他坐标,如果缺少,请找出如何取回这些坐标
为了帮助其他人解决类似问题,您知道KML是如何生成的吗?用什么软件?也许是一些只能处理坐标字符串中这么多字符的东西 正如@ChristiaanAdams所指出的,您的KML无效。如果我添加缺少的标记并删除部分坐标,则会显示“谢谢!”!我编写了自定义代码来创建导致此问题的KML。现在已经分类了。