我的KML中的以下代码显示了灰色地图:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>test.kml</name>
<Placemark>
<name>Cha Boutique</name>
<description>
<![CDATA[
9666 Clayton Rd.<br />
Ladue, MO 63124<br />
Phone: 314-993-8080
]]>
</description>
<Point>
<coordinates>38.638428,-90.389736</coordinates>
</Point>
</Placemark>
</Document>
</kml>
但是这段代码成功地显示了一个标记:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>test.kml</name>
<Placemark>
<name>Yahoo! Inc.</name>
<description><![CDATA[
Yahoo! Inc.<br />
701 First Avenue<br />
Sunnyvale, CA 94089<br />
Tel: (408) 349-3300<br />
Fax: (408) 349-3301<br />
<p>Home page: <a href="http://yahoo.com">http://yahoo.com</a></p>
]]>
</description>
<Point>
<coordinates>-122.0250403,37.4163228</coordinates>
</Point>
</Placemark>
</Document>
</kml>
创建地图的JavaScript是:
Event.observe(window, 'load', function()
{
var chicago = new google.maps.LatLng(41.875696,-87.624207);
var myOptions = {
zoom: 11,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var ctaLayer = new google.maps.KmlLayer('http://www.domain.com/test.kml');
ctaLayer.setMap(map);
});
有人知道我在这里缺少什么吗?如果您认为这应该绝对有效,那么我需要开始查看网站上可能会影响这一点的其他内容,但对我而言,交换KML标记不应该是它是否有效的因素,除非我有一些错误。
感谢您的帮助!
-Ryan
答案 0 :(得分:2)
永远不信任用户输入的是什么?
事实证明,坐标是相反的。在输入地址(来自他们的URL)之后,他们直接从Google地图直接进入,但看起来KML文件需要它们的顺序相反。
很好的经验教训:)
-Ryan
答案 1 :(得分:1)
您是否测试了kml加载谷歌地图?
如果你去maps.google.com,我应该有一个我的地图链接(在左侧),可以导入KML文件。如果它加载然后我会开始查看你的代码,如果没有,它可能是KML文件本身的问题。
编辑:我试图加载kml文件,它似乎导致我的谷歌地图冻结使用铬,所以我不能真正告诉你它是否是kml,但对我来说它看起来像一个良好的形式的xml文件。
答案 2 :(得分:1)
新的google.maps.KmlLayer()需要完整的合格域名。例如:http://localhost无法使用。