在本地谷歌地图上渲染kml文件

Render kml files on google maps locally?

本文关键字:kml 文件 谷歌地图      更新时间:2023-09-26

我使用的是GeoXML.js。对于v3,谷歌地图可以在本地解析kml文件。我不希望使用KmlLayer(),因为它要求kml位于可公开访问的服务器上。http://code.google.com/p/geoxml3/wiki/Usage

最初,我在SQL server数据库中将kml文件作为字节数组。

我从数据库中检索字节数组并执行File.WriteAllBytes("c:''KmlFiles''layer" + id + ".kml", byte[]),这成功地将kml文件保存到路径中。

现在我需要将kml文件传递到GeoXML解析器中。我一直在尝试将目录路径传递给方法,像这样,我有:

 <script type="text/javascript">
    var myMap = new google.maps.Map(...);
    var myParser = new geoXML3.parser({map: myMap});
    myParser.parse(path);
  </script>

这行不通。这似乎不是传递kml文件的正确方式,因为它不是url。我一直纠结于我能做些什么来渲染kml文件。我有一个嵌入谷歌地图的.Net MVC应用程序,目前我正在电脑上本地运行该应用程序,还没有在网络服务器上发布(使用iis 7)。

请告诉我如何解析kml文件。如何获取kml文件的url?我纠结于如何进行/使它发挥作用。谢谢

  • 您可以覆盖控制器操作上的ActionResult以返回KMLResult
  • 可以使用Authoize属性(和登录名)保护操作
  • 现在您可以使用KML层

IMO将文件下载到客户端PC以加载到Javascript上不是一个好主意。