KML层未在谷歌地图上加载

KML layer not loading on Google Maps

本文关键字:加载 谷歌地图 KML      更新时间:2023-09-26

通常我不会发布求助信息,但我真的不知所措。。。我有一个KML层,我想加载到嵌入式谷歌地图上。它在几个月内运行良好,但大约三周前,KML的数据消失了。在验证我的KML文件时,我发现了两个微不足道的错误:

line 6, column 9: Invalid value for scale: .5 [help]
    <scale>.5</scale>
     ^
line 774, column 26: XML parsing error: <unknown>:774:26: undefined entity [help]
    <name>Brabant Bar and Caf&Atilde;&copy;</name>
  • 我一直在寻找JavaScript错误,但没有发现(Chrome的控制台似乎同意我的观点)
  • 我已经在V3 API中寻找变化,但没有发现
  • 我已经验证了我的API密钥
  • 我已经验证其他KML文件是否有效

非常感谢您的帮助。我有一个代码笔演示,它有一个链接到KML文件,一个使用V3neneneba API的工作嵌入式谷歌地图,以及一个已知的来自谷歌的工作KML文件。以下是我用来控制地图和KML覆盖的JavaScript:

var map;
var src = "http://kingsofthecraft.com/sandiego.kml"; // does not work
// var src ="http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml"; // known to work
function init() {
    map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(32.945048, -117.243135),
        zoom: 9,
        mapTypeId: google.maps.Map.ROADMAP
    });
    loadKmlLayer();
}
function loadKmlLayer() {
    var kmlLayer = new google.maps.KmlLayer(src, {
        suppressInfoWindows: false,
        preserveViewport: false,
        map: map
    });
}
google.maps.event.addDomListener(window, 'load', init);

您写道:

我发现了两个微不足道的错误:

第774行,第26列:XML解析错误::774:26:未定义的实体[help]

<name>Brabant Bar and Caf&Atilde;&copy;</name>

XML解析错误是主要的XML问题。XML解析器在它们上失败。如果您对实体进行了正确的编码,它就会起作用。

 <Placemark id="placemark19147">
 <name>Brabant Bar and Caf&amp;Atilde;&amp;copy;</name>
 <styleUrl>#Beer Bar</styleUrl>
 <description><![CDATA[
<a href="http://beermapping.com/maps/reviews/reviews.php?locid=19147">Brabant Bar and Caf&amp;Atilde;&amp;copy;</a><br />
Beer Bar<br />
San Diego, CA 92104<br />
United States<br />
]]></description>