2009-09-30 44 views
1

我需要爲現有應用程序開發基於位置的擴展程序,以允許用戶查看周圍所有其他用戶(在固定的航空距離內)。現有的應用程序是使用Axis(Web服務)+ Spring + Hibernate + MySQL開發的。如何在Java中開發LBS/GIS應用程序概述

的要求是:

  1. Java框架(最好是開源的,除非商業解決方案提供了很大的優勢)。與Hibernate,Spring等集成首選。
  2. 用戶需要使用標準API(即SOAP或REST)在設定的時間段內更新他/她的位置
  3. 用戶需要能夠通過發送緯度和經度或美國地址來更新位置。
  4. 如果GPS不可用,可能爲某些設備使用手機信號塔和/或wifi數據。
  5. 有沒有必要有步行或駕駛方向。沒有必要駕駛或步行距離,只是近似的空中距離。
  6. 該應用程序的用戶繼續移動(銷售人員)並在設定的時間段內更新他們的位置(每~15分鐘)
  7. 項目可能會在將來改變以處理其他興趣點(即倉庫位置,客戶的位置),但這些可能會處於固定的物理位置(與持續移動的用戶相比)。
  8. 檢索特定用戶周圍的用戶的性能至關重要;因此會更喜歡內存映射(而不是數據庫查詢)。
  9. 此時不需要渲染地圖。不過這可能會改變。

我聽到或看到以下條款和框架,我不知道它們意味着什麼,並且他們中的一個使用方法:

  • ESRI
  • 形狀文件
  • 的GeoServer
  • GeoTools
  • PostGIS

我真的很感謝我爲開發這樣一個項目而需要採取的步驟,以及如何使用上述工具的簡要概述。 GPS,Wifi,手機信號塔)免費提供,我們需要支付哪些費用。

參考一些教程或書籍將不勝感激。

謝謝!

回答

1

我真的不喜歡你的問題。作爲一名擁有大學學位和12年經驗的地理空間專業人士,我想說的是:聘請能夠爲您完成這項工作的人。

不過,我會盡量給某種體面的答案:

  • 整個應用程序可以與開放源代碼來構建。
  • 地圖需要地理數據提供背景。這可以是;真實昂貴(藉助TeleAtlas或NAVTEQ數據)或無價(OpenStreetMap的)
  • ESRI是一個公司
  • 形狀文件是一種文件格式來存儲地理數據
  • 利用Geoserver是一個開放源碼的解決方案提供地圖
  • GeoTools是Java庫做轉換,創建特徵和做變換也形成用於GeoServer的基部
  • PostGIS的是存儲在地理數據
+0

我沒有做這項工作,但我需要一般的要求。感謝您的回答。對於具體工具不感興趣,我有興趣瞭解完成這項工作所需的數據,工具和框架。 – user159737

2

一般的數據庫;

一切皆有可能。我建議先寫下你想要構建的內容,你想要維護的人員,你希望它工作的服務器體系結構,然後開始消除這些選項。

首先,您需要選擇一個後端來存儲您的數據。爲此,一對夫婦的數據庫系統中有一個「空間」擴展或模塊,這些擴展支持預測,轉換和空間查詢(最近,中,觸摸,...):

商業:

  1. 甲骨文空間
  2. MS的SQLserver空間

開源:

  1. 交地理信息系統(Postgres的)
  2. MySQL的空間
  3. MonetDB(工作正在進行中)
  4. 平面文件像ESRI形狀文件

然後,你需要一個服務器應用程序託管地理空間數據集爲(矢量或柵格)地圖:

商業:

  1. ESRI的ArcIMS
  2. ESRI arcGIS服務器
  3. PB MapInfo MapXtreme
  4. ...

開源:

  1. UMN Mapserver的
  2. 利用Geoserver
  3. Mapnik的

於是最後,如果你想創建一個交互式地圖的Web應用程序,你需要一些JavaScript網絡地圖框架:

商業:

  1. 谷歌地圖
  2. PB MapInfo的MapXtreme的
  3. Map24
  4. ...

開源:

  1. 的OpenLayers
  2. 變色龍
  3. MapFish
  4. GeoExt

您也可以使用Flash網頁地圖框架,如:

  1. 火烈鳥-MC

這一切,取決於所選擇的架構需要至少一個帶有cgi或servlet運行器的web服務器。

基本上,這一切都歸結於您的組織:您的組織目前與哪些架構合作?專業知識如何?什麼樣的建築符合你的公司專業領域?

商業用途時,您的許可證範圍從500美元到500.000美元,具體取決於供應商。在使用開源軟件時,您的許可證當然是沒有用的。但是,您還需要計算所需的學習曲線和配置時間。

相關問題