为什么我的代码没有加载kml文件..(这是最简单的方法)

时间:2010-03-21 11:20:04

标签: javascript python google-maps kml

这是我的谷歌地图代码:

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
        <meta name="viewport" content="width=device-width,minimum-scale=0.3,maximum-scale=5.0,user-scalable=yes">

    </head>
<body onload="initialize()" onunload="GUnload()">

<style type="text/css">
*{
    margin:0;
    padding:0;
    }
</style>
<!--<div style="width:100px;height:100px;background:blue;"> </div>-->
<div id="map_canvas" style="width: 500px; height: 300px;"></div>


<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA-7cuV3vqp7w6zUNiN_F4uBRi_j0U6kJrkFvY4-OX2XYmEAa76BSNz0ifabgugotzJgrxyodPDmheRA&sensor=false"type="text/javascript"></script>

<script type="text/javascript">
var aFn;
//**********
function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        var g = new GGeoXml("b.kml");
                map.addOverlay(g);
                var center=new GLatLng(37.42228990140251,-122.0822035425683);
        map.setCenter(center, 0);

}
}
//*************



</script>
</body>
</html>

这是我的b.kml文件:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Simple placemark</name>
    <description>Attached to the ground. Intelligently places itself 
       at the height of the underlying terrain.</description>
    <Point>
      <coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
    </Point>
  </Placemark>
</kml>

为什么不能表明这一点......

感谢

2 个答案:

答案 0 :(得分:0)

我的第一个想法是你错过了<Document></Document> - 但是看着文档,我不确定这是对的。

使用mime类型b.kml提供application/vnd.google-earth.kml+xml吗?看一下文档,似乎这是一个要求: http://code.google.com/apis/kml/documentation/kml_tut.html#kml_server

其他想法:

  • b.kml调用
  • 中将完整网址提供给new GGeoXml("b.kml")
  • 点燃萤火虫,查看是否有成功请求b.kml

答案 1 :(得分:0)

您需要将可公开访问的网址提供给.kml文件。

你不会在firebug中看到它的请求。地图api从谷歌请求资源并传递您的kml文件的名称。谷歌把它拉进他们的服务器并处理它并将json传送到你页面中的地图。

IMHO。 YMMV