【问题标题】:Render kml files on google maps locally?在本地渲染谷歌地图上的 kml 文件?
【发布时间】:2012-02-19 11:40:08
【问题描述】:

我正在使用 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 应用程序,目前我在我的 PC 上本地运行该应用程序,尚未在网络服务器上发布它(使用 iis 7)。

请告诉我如何解析 kml 文件。如何获取 kml 文件的 url?我被困在如何继续/使它工作上。谢谢。

【问题讨论】:

    标签: c# javascript asp.net-mvc kml


    【解决方案1】:
    • 您可以覆盖控制器操作上的 ActionResult 以返回 KMLResult
    • 可以使用 Authoize 属性(和登录)来保护操作
    • 现在您可以使用 KML 图层了

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

    【讨论】:

    • 但是 KmlLayer(...) 需要一个指向存储在没有任何安全性的公共服务器中的 kml 文件的 url,以便 Google 的服务器可以解析它。我不需要先将文件保存到服务器吗?
    • 如何将 KML 文件保存到 MVC 应用程序目录,该目录将在不存储到客户端 PC 的情况下得到保护...我更喜欢在本地呈现 KML 文件,而不是任何人都可以访问。那怎么用GeoXML呢?
    • 您可以在加载页面之前登录,这将确保您的 [Authorize] 属性不需要再次登录,但将确保只有登录的用户能够访问它。顺便说一句,我没有使用过 GeoXML。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2012-04-03
    • 2010-11-10
    • 2019-03-26
    • 2013-05-01
    • 1970-01-01
    相关资源
    最近更新 更多