为什么我的代码无法加载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&v=2&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
你需要提供一个可以公开访问的 .kml 文件的链接。
在火狐的开发者工具中,你不会看到对这个文件的请求。地图的API会向谷歌请求一个资源,并把你的 .kml 文件的名字传过去。谷歌会把这个文件拉到他们的服务器上进行处理,然后把结果以 JSON 格式发送回你页面上的地图。
这是我的看法,可能你会有不同的体验。
0
我最初的想法是,你可能缺少了 <Document></Document>
这部分内容,不过查看文档后,我不太确定这是不是问题所在。
请问 b.kml
的 MIME 类型是否设置为 application/vnd.google-earth.kml+xml
?根据文档来看,这似乎是一个必要条件:http://code.google.com/apis/kml/documentation/kml_tut.html#kml_server
其他想法:
- 在
new GGeoXml("b.kml")
调用中,给出b.kml
的完整网址 - 打开 Firebug,看看是否成功请求了
b.kml