2012-01-26 88 views
3

我正在使用GeoXML js。 v3谷歌地圖在本地解析kml文件。我不希望使用KmlLayer(),因爲它需要將kml放在可公開訪問的服務器上。 http://code.google.com/p/geoxml3/wiki/Usage本地渲染谷歌地圖上的kml文件?

最初我將kml文件作爲SQL Server數據庫中的一個字節數組。

我從數據庫中檢索字節數組並執行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應用程序,其中嵌入了Google地圖,目前我在本地PC上運行應用程序,但尚未將其發佈到Web服務器上(使用iis 7)。

請給我一個如何去解析kml文件的想法。我將如何獲得kml文件的網址?我被困在如何繼續/使其工作。謝謝。

回答

1
  • 您可以覆蓋你的控制器動作返回一個KMLResult的ActionResult的
  • 動作可以用Authoize屬性(和登錄)
  • 現在你可以使用KML層

IMO固定將該文件下載到客戶端PC以加載Javascript,這不是一個好主意。

+0

但是,KmlLayer(...)需要一個url,它應該指向存儲在公共服務器中的kml文件,而沒有任何安全性,以便Google的服務器可以解析它。我不需要先將文件保存到服務器? – Qwerty

+0

如何將KML文件保存到MVC應用程序目錄,該目錄將被保護而不會存儲到客戶端的PC中...我寧願在本地呈現KML文件,而不願被任何人訪問。如何以這種方式使用GeoXML? – Qwerty

+0

您可以在加載頁面之前登錄,這將確保您的[Authorize]屬性不需要其他登錄,但將確保只有登錄的用戶才能訪問它。我沒有使用GeoXML btw。 – Muthu