2009-06-28 32 views
17

我應該爲我的碩士創建一個地理信息系統應用程序,我想知道什麼是開發最好的免費和(最好)開源技術?用什麼編程語言來開發這樣的應用程序?地理信息系統應用開發指南

已知的選擇是:數據庫:在PostgreSQL(PostGIS的)(建議等)

編程語言:PHP,Python和Java的,...(建議等)

框架:GeoDjango內置(如Python或Jython的使用),(建議等)

客戶端UI:JavaScript的(的OpenLayers),Flex的,(建議等)

服務器:Mapserver的,利用Geoserver,Mapfish,(建議等)

其他注意事項:Hibernate Spatial,支持移動GIS,(其他建議)

+0

爲完整性也請參閱http://stackoverflow.com/questions/3180793/gis-for-the-web/3202994#3202994;) – Redlab 2010-07-08 15:30:17

+1

您可能會發布此問題在這裏:http://gis.stackexchange.com/ – Beachwalker 2013-02-11 22:21:29

回答

2

您是否可以將Google地圖嵌入到Web應用程序中?這將是最簡單的解決方案...

對於開源GIS,請參閱Wikipedia's list of open source GIS,它非常完整。維基百科

粘貼:

的開源GIS軟件的發展有 - 軟件的歷史條件 - 有着悠久的傳統與第一系統在1978年衆多系統的出現,現在已可涵蓋所有部門地理空間數據處理。

以下開放源代碼桌面GIS項目在Steiniger和Bocher審查(2008/9):

gvSIG 1.0

GRASS GIS - 最初由美國。工程師的軍團開發,開放源碼:完整的地理信息系統

SAGA GIS - 自動地學分析系統 - 混合GIS軟件。 SAGA擁有獨特的應用程序編程接口(API)和快速增長的地理科學方法,捆綁在可交換模塊庫中。

Quantum GIS - QGIS是一個用戶友好的開源GIS,可在Linux,Unix,Mac OS X和Windows上運行。

MapWindow GIS - 免費的開源GIS桌面應用程序和編程組件。

ILWIS - ILWIS(綜合水土資源信息系統)集成了圖像,矢量和專題數據。

uDig

gvSIG - 用Java編寫的開源GIS。

JUMP GIS/OpenJUMP - (開放)的Java統一映射平臺(桌面GIS OpenJUMP,SkyJUMP,deeJUMP和科斯莫從JUMP出現;參見[3])

其他:

Capaware RC1 0.1

SAGA-GIS訴2.0.3

Kalypso(軟件) - Kalypso是一個開源GIS(Java,GML3),主要側重於水資源管理中的數值模擬。

TerraView - 處理存儲在關係或地理關係數據庫(即TerraLib的前端)中的矢量和柵格數據的GIS桌面。

Capaware - Capaware也是一個開放源碼GIS,一個令人難以置信的快C++三維地理信息系統框架與地理圖形分析和可視化的多插件架構。

+1

即使問題沒有明確說明的話,我想在這裏親愛的未知要建立一個Web GIS應用,你別說不包括其替代品。 – 2009-06-28 08:31:49

2

我在幾年前(6年左右)幾乎完全使用MapServer(特別是PHP MapScript)和PostGIS,取得了相當不錯的結果,尤其是靈活性部門。我製作了生產應用程序(地理定位和分析),我甚至根據這項工作做了我的碩士論文。我預計這兩個,鑑於他們的成熟,仍然是一個不錯的選擇。

當時並沒有很多的替代品來構建豐富的基於Web的互聯網地理信息系統應用,現在有相當多的(尤其是因爲谷歌地圖去住)。

我從那裏得到了一些GIS相關的演出,其中一個使用Cartoweb進行顯示,這是一個基於PHP-Mapscript的Web框架,它可擴展並且大多可用。

最好的選擇最終取決於你有什麼打算建立。如果您希望在分析顯示上具有完全的靈活性,映射顯示,路由和地理編輯,那麼您必須獲得可編程的地圖服務器。我知道Mapserver的作品,但很可能GeoServer和MapBuilder甚至Mapnik都可以工作,具體取決於具體情況。

順便說一句,關於替代品,MySQL也有Spatial Extensions

9

據我所知:一個Web應用的最佳選擇是與gvSIG(http://www.gvsig.org)準備數據,託管數據移植到PostgreSQL/PostGIS的(http://www.postgresql.orghttp://postgis.refractions.net),發佈與地圖服務器一個WMS/WFS服務(S)(http://mapserver.org/ ),然後使用openlayers(http://openlayers.org)顯示您的數據。 這個解決方案完美適合我的經驗。 一個不錯的方法是使用MapFish(http://trac.mapfish.org/trac/mapfish/wiki)一個webgis框架,它在內部使用extjs和openlayers,但簡化了開發。

2

對於感覺更像是「應用程序」而不是帶有地圖的網頁的東西,請查看http://geoext.org/,它將OpenLayers與ExtJS結合在一起。

0

很難回答你對「最好」工具的問題,因爲這取決於你的要求。指定您的需求,我們會找到更準確的答案(正如我所看到的,您前一段時間問過,我希望您已經拿到了您的MSc)......不過,可能還有其他人對這個問題仍然感興趣。

數據庫:

對於小尺寸的桌面應用程序sqlite的有SpatiaLite可能是一個選項,而不是一個完整的PostgreSQL/PostGIS的服務器作爲後端。 PostgreSQL是大型應用程序的不錯選擇,或者與WFS(-T) - GeoServerUMN MapServer等服務器一起使用。

也許簡單的舊Shapefile格式確實符合您的要求,並且您不需要數據庫後端。

編程語言:

我建議你使用與已經familar的語言。有很多綁定到幾種可用的語言,我敢打賭你的語言也支持。如果你從零開始到英雄,我會推薦Java,因爲它很容易學習,並且有許多維護良好的開源項目可用。

框架:

我不能提出一個框架,因爲它們在特定領域的所有特別capabilties和優勢?爲什麼我建議你一個可視化工具包,如果你只需要一些轉換文件格式或座標而不顯示它們。我已經在我的回答中提到了這一點。如果使用C#,MapWindow6DotSpatial可能會很有趣。

ClientUI:

桌面和/或瀏覽器? OS?可能的技術取決於您的要求和環境。如果您堅持使用瀏覽器(可以顯示WebGL),並且您想展示一些最新的技術,那麼fx Cesium可能會很有趣。

服務器:

您已經提到的最知名的開源服務器,我最喜歡的是GeoServer

其他提示

如果你正在尋找一個特殊的技術堆棧的OGC Website是參觀的第一個點。他們在GIS領域定義了許多(並非全部)已知標準,併爲每個標準提供了一個implementations的清單。

0

我只是想提CartoDB爲好。我已經使用了一段時間了,我覺得它很棒。他們有一個在線網站,對免費賬戶有限制,但它是開源的,你可以安裝你自己的實例。它非常靈活。你可以存儲你的數據在雲PostGIS的DB或您的本地託管的一個,然後用JS庫,例如CartoJS或單張連接到數據庫,並繪製你的數據。您可以創建可視化並將其嵌入到HTML代碼中。

This是他們的在線網站。 而this is their repo鏈接到如何建立自己的CartoDB例如,如果你喜歡的指令。