hdd*_*ddd 52 gis kml kmz google-maps-api-3
我创建了一个hello world程序来加载一个本地kml文件(借用谷歌的文档):
var ctaLayer = new google.maps.KmlLayer("http://localhost:8080/kml/cta.kml");
Run Code Online (Sandbox Code Playgroud)
这不起作用(没有任何东西被加载).
但是,当我将该行更改为:
var ctaLayer = new google.maps.KmlLayer("http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml");
Run Code Online (Sandbox Code Playgroud)
它正确加载.两个kml文件都是相同的.在自己提供服务时,我需要做些什么来加载它?(我尝试了绝对和相对路径,我知道我使用的路径是正确的......)
我还在我的appserver的配置文件中添加了正确的mime类型:
<mime-mapping>
<extension>kml</extension>
<mime-type>application/vnd.google-earth.kml+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>kmz</extension>
<mime-type>application/vnd.google-earth.kmz</mime-type>
</mime-mapping>
Run Code Online (Sandbox Code Playgroud)
但它仍然没有加载.
我在谷歌的文档中发现了这个:
Google Maps API支持用于显示地理信息的KML和GeoRSS数据格式.这些数据格式使用KmlLayer对象显示在地图上,该对象的构造函数采用可公开访问的KML或GeoRSS文件的URL.
所以,我想什么,我试图做的是没有可能的,而不从公开访问的网址服务的KML ......除非有人能够证明否则
Mar*_*phy 56
KML无法访问,因为它位于您的本地计算机上,谷歌无法访问,因为它不知道如何访问localhost:8080
cap*_*gon 39
不幸的是你不能使用"localhost".你有两个选择:
对于那些从事国防合同并处理敏感信息的人来说,选择#1可能不是一个选项,因为kml会在后台发送到谷歌并在地图上呈现.
Rag*_*aar 17
此网站display-kml.appspot.com要求您将整个KML文件复制/粘贴到网站中.或者,您可以使用Dropbox使用公用文件夹托管KML文件.在公共Dropbox文件夹中,有一个右键单击上下文菜单,允许您复制URL.
更新:appspot网站有不稳定的历史.截至2019年1月,该网站似乎正在运作.
参考文献:| 归档时间: |
|
| 查看次数: |
67779 次 |
| 最近记录: |