KML图层未在Google地图上加载

时间:2014-10-10 05:34:28

标签: javascript google-maps google-api kml

通常我不会发布帮助请求,但我真的很茫然...我有一个KML图层,我想在嵌入式Google Map上加载。它运作良好几个月,但大约三周前,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文件正常工作

非常感谢任何帮助。我有一个codepen演示,其中包含指向KML文件的链接,使用V3 API的嵌入式谷歌地图以及来自Google的已知工作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);

1 个答案:

答案 0 :(得分:1)

你写道:

  

我发现了两个无关紧要的错误:

     

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

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

XML解析错误是XML的 主要 问题。 XML解析器失败了。如果您正确编码实体,it works

 <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>