用mapXtreme Java开发web gis应用 (上)
1.開發控件的選擇目前影響較大的國外地理服務器有Mapinfo MapXtreme、MapObject、Autodesk Map Guide、ArcIMS、Argcgisserver以及國內的Super Map等。由于考慮到我們是采用Java語言開發基于Web方式的Gis應用,最終對比之后采用Mapinfo公司的MapXtreme Java作為開發控件進行地理應用的二次開發工具。
MapXtreme Java 是目前用于 Internet 或企業 Intranet 唯一的 100% 純 Java 的地圖服務器。 MapInfo MapXtreme Java 與 J2EE 兼容,為開發人員開發應用提供了無與倫比的靈活性。 MapXtreme Java 向應用開發商提供了一個高度可視化的、直觀的組件,方便他們將地圖功能集成到任何 Web 應用中。
MapXtreme Java為 Internet 設計三種布署模式
瘦客戶端
所有的地圖生成 / 渲染是由服務器端完成的。客戶只接收小于 20k 的 GIF 。在服務器端, MapXtreme 作為一個 Servlet 與 Web 服務器相連接,或者集成了 Web 服務器和應用服務器的功能。
中型客戶端
Web 瀏覽器裝載了一個 Java Applet ,但仍然從 MapXtreme 的 Servlet 中得到基于 GIF/JPEG 的地圖圖像。這種環境增加了靈活的用戶交互,同時將從服務器下載的信息量降到最低。
胖客戶端
裝載了 applet 后,地圖以一系列矢量的形式傳輸到 applet 中。這樣,除了可從任何遠程數據庫中獲得的空間對象外,所有的地圖功能都屬于客戶 applet 。這種環境最適于更高帶寬的內部網,所有的數據都能傳輸到每個客戶端。要使用這種模式, MapXtreme 必須以命名用戶方式注冊。 MapXtremeJava 以壓縮了 10 倍的數據格式形成矢量流,便于網絡傳輸,減少響應時間。
考慮到IE對applet的支持,客戶端用戶對IE的設置的反感,我們決定采用瘦客戶端的部署模式。所有的地圖生成全部由服務器來完成,web gis應用中的客戶端和普通web應用中的客戶端一樣。
2.MapXtreme Java的安裝與使用2.1安裝MapXtreme Java第一步:到網站http://www.mapinfo.com.cn下載開發控件MapXtreme Java Edition 4.8.0。
同時可以下載一些文檔說明和sample地圖供學習使用。
第二步:運行install.exe文件,跟普通的windows下安裝軟件一樣安裝。
安裝成功后,開始菜單中會出現如下所示下拉菜單選項:
1.jpg
2.2 MapXtreme Java工具的使用
2.2.1 MapXtreme ServerMapXtreme Server是用于生成地圖的web服務器,也即是地圖服務器。
通過菜單欄中的“Start MapXtreme Server”啟動地圖服務器。
2.jpg
然后,我們可以打開IE在地址欄中輸入http://127.0.0.1:8080/進行訪問。
3.jpg
我們可以看到左邊的導航條中有很多有用的鏈接信息。主要包括對tomcat的管理、API文檔的說明、地圖應用的sample。可以根據自己的興趣進行點擊查看,進行學習。推薦先查看Examples中的Servlet部分,然后查看Documentation中的MapXtreme Java API以便有針對性的學習。
通過點擊菜單目錄中的“Stop MapXtreme Server”來關閉地圖服務器。
2.2.2 MapXtreme Java Manager通過點擊菜單欄中的“MapXtreme Java Manager-WebServer”啟動MapXtreme Java Manager。注意:必須在地圖服務器啟動以后,MapXtreme Java Manager-WebServer才能正常啟動。
4.jpg
MapXtreme Java Manager啟動成功以后,會彈出如下的界面:
5.jpg
也可通過菜單目錄的“MapXtreme Java Manager-StandAlone”在獨立模式下啟動MapXtreme Java Manager。后者的啟動不依賴于地圖服務器的啟動與否。二者的區別在于后者啟動方式下功能比前者少,不能與地圖服務器進行交互。獨立模式下啟動界面如下圖所示:
6.jpg
我們可以通過MapXtreme Java Manager客戶端對指定格式(*.mdf和*.gst)的地圖文件進行查看及編輯,功能十分強大。此客戶端還具有web應用程序定制、創建用于命名地圖和圖層的上下文、管理JDBC連接等高級功能。
7.jpg
3.構建自己的web gis應用3.1熟悉MapJ
APIMapJ對象管理地圖的狀態。該對象維護地圖中心和縮放、坐標系、距離單位和共同構成地圖的圖層。MapJ位于MapXtreme客戶機API的最頂端。
打開MapXtreme Java的API文檔,選擇com.mapinfo.mapj,對類 MapJ中的每個方法的使用我們都應該仔細閱讀,因為在開發web gis的過程中我們將會用到。
8.jpg
其中,尤為關鍵的,我們需要了解如下幾個方法:
MapJ對象初始化:MapJ()
加載地圖:loadMapDefinition()
設置地圖邊界:setDeviceBounds()
設置地圖中心:setCenter()
設置地圖縮放比:setZoom()
3.2 熟悉Javascript中鼠標響應事件我們在客戶端瀏覽器中往往需要點擊地圖上的位置進行精確定位,或對地圖進行放大、縮小、平移等操作,這時候就需要將客戶端的請求提交到服務器端,與地圖服務器進行交互。
為了實現客戶端與服務器的交互,必須要能捕捉到用戶的鼠標響應事件,獲得鼠標指針的當前位置等信息。
其中,特別需要關注的鼠標響應事件有:
鼠標按下事件:onmousedown
鼠標松開事件:onmouseup
鼠標指針移動到元素上觸發事件:OnMouseOver
此外,還可能需要用到onclick、oncontextmenu、onmousewheel等事件,根據自己開發的web gis應用的需要來選擇使用。
4.3 開發一個完整的web gis應用4.3.1 搭建開發環境進行web gis開發的編程環境:
支持開發web應用的Java IDE(如MyEclipse、Jbuilder),支持servlet的web應用服務器(如tomcat、weblogic),支持javascript的瀏覽器(如IE 6.0),標準格式的地圖圖片(*.gst,*.mdf)。
將安裝目錄中MapXtreme-4.8.0\apache-tomcat-5.5\webapps\mapxtreme480復制到自己的應用服務器發布目錄下,或者仍沿用安裝時MapXtreme默認安裝的tomcat來部署地圖服務器。
啟動地圖服務器,通過訪問服務器地址http://127.0.0.1:80/mapxtreme480/servlet/mapxtreme來查看是否部署成功。若顯示為一空白頁面則表明已部署成功。
4.3.2 編寫一個簡單的servlet首先編寫一個簡單的servlet,后面我們將重寫其doGet方法來生成地圖。
將安裝目錄中\MapXtreme-4.8.0\lib\common中的文件和\MapXtreme-4.8.0\lib\server中的文件復制到自己的web應用中的\WEB-INF\lib目錄下。
,然后啟動web服務器,通過瀏覽器訪問servlet看是否運行正常。
轉載于:https://www.cnblogs.com/googlegis/archive/2009/12/15/2978963.html
總結
以上是生活随笔為你收集整理的用mapXtreme Java开发web gis应用 (上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2009-12-12
- 下一篇: DebugHook 与 ReportMe