2011-06-09 62 views
0

我正在開發一個基於Web的應用程序,我需要在每個國家或城市覆蓋一些顏色層。我知道我可以使用谷歌地圖,但我遇到的問題是我們部署應用程序的服務器無法訪問互聯網。 所以我需要一個地圖組件,像谷歌地圖,我可以離線使用它,任何人都可以建議我可以使用的任何組件?基於Web(ASP.Net)應用程序的離線地圖

回答

2

您可能會看看openstreetmap。在那裏,您可以下載整個世界的planet.xml文件或僅爲您想要服務的區域下載特定文件。好的材料可以在這裏找到:www.geofabrik.de

然後,你將不得不建立你自己的瓷磚服務器,這將壓縮png-tiles提供的xml文件,並將所有png-maps存儲在本地硬盤上。

tileserver可能也會有一些web-api。所以你的tileserver可以在localhost:8080或其他端口上運行,並且你的網站也可以在端口80上的apache上運行。 然後,你將使用一些web框架來訪問你自己的tileserver。該框架可能是 ,可能http://openlayers.org/也可以在地圖上繪製形狀。 作爲平鋪服務器位置,您可以將地址添加到本地安裝的平鋪服務器。然後Openlayers會收到嘎吱嘎吱的瓷磚並用它做一些東西。

所以,你必須至少從互聯網上獲取一些信息(planet.xml)並緊縮你的數據。但請注意,根據您想要服務的國家和這些png文件將佔用大量空間,這種搗亂可能需要很長時間。

查看openstreetmap.org如何做到這一切,包括一些數字。

也許它甚至可能只是從openstreetmap下載嘎吱的瓷磚,並把它們放在一個特定的順序,並啓動指向這些瓷磚的瓷磚服務器。這可能會更容易。

由於存在許可限制,您無法下載Google地圖切片並將其投放到您自己的切片服務器中。

問候,

0

你會發現這很困難,因爲地圖數據本身可能需要數百兆字節的空間來存儲。英國境內的OS provides offline mapping免費提供,但數量有限,您必須手動將其集成到您的網站。

讓一個基於網絡的應用程序無法訪問互聯網似乎有點愚蠢,肯定有辦法解決這個問題嗎?

+0

因爲不允許服務器連接到互聯網:(安全問題 – Asha 2011-06-09 10:27:57