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

时间:2012-01-26 10:56:20

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

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

最初我将kml文件作为SQL服务器数据库中的字节数组。

我从数据库中检索字节数组并执行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文件的正确方法,因为它不是网址。我坚持我可以做的事情来使kml文件渲染。我有.Net MVC应用程序,其中嵌入了谷歌地图,目前我在我的PC上本地运行应用程序,尚未在网络服务器(使用iis 7)上发布它。

请告诉我如何解析kml文件。我如何获得kml文件的URL?我坚持如何继续/使它工作。感谢。

1 个答案:

答案 0 :(得分:1)

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

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