我的 KML 文件无法处理 Javascript 代码

my KML file is not working on Javascript code

当我尝试添加从 google 地图导出的文件 'myFile.kml' 时,它不会显示我的地图的任何路径,而来自 google 的示例 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml' 工作正常吗? 知道我在这里遗漏了什么吗?

这是我的 HTML 代码:

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        html, body {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #map {
            height:100%
        }
    </style>
</head>
<body >


    <div id="map"></div>

<script src="https://maps.googleapis.com/maps/api/js?signed_in=true&callback=initMap"></script>
<script src="script.js"></script>
</body>
</html>

还有我的JS代码:

    var map;
    function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
            center: {lat: 42.658324, lng: 21.163883},
            zoom: 10
        });
        var ctaLayer = new google.maps.KmlLayer({
            url: 'myFile.kml',
            map: map
        });

}

您似乎正在尝试从本地主机或本地文件系统加载 KML 文件。

如果是这样,基本上你有两个选择:

  • 将 KML 文件放在 public 服务器上 ,其中 google 服务器 可以到达,因为 KML 的解析和渲染是由 Google 个服务器
  • 利用 geoxml3 library 允许您加载 KML 文件和 解析它在本地主机上托管(见下面的例子)

例子

该示例演示了如何使用 geoxml3 library:

从本地主机加载和解析 KML 文件
var map;
function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
        center: { lat: 41.876, lng: -87.624 },
        zoom: 10
    });


    var myParser = new geoXML3.parser({ map: map });
    myParser.parse('cta.kml');
}

在 HTML 文件中添加对 geoxml3 library 的引用,例如:

<script type="text/javascript" src="http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script>

Plunker