hello world

          隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
          數據加載中……

          【轉】geoserver掃盲 openlayers相關

          轉自http://www.cnblogs.com/lzlynn/archive/2008/07/29/1255702.html

          WMS: Web Map Service Web 地圖服務

          l  利用具有地理空間位置信息的數據制作地圖。其中將地圖定義為地理數據可視的表現。這個規范定義了三個操作:

          n  GetCapabitities 返回服務級元數據,它是對服務信息內容和要求參數的一種描述;

          n  GetMap 返回一個地圖影像,其地理空間參考和大小參數是明確定義了的;

          n  GetFeatureInfo (可選)返回顯示在地圖上的某些特殊要素的信息

           

          WFS: Web Feature Service Web 要素服務)

          l  Web 地圖服務返回的是圖層級的地圖影像,

          l  Web 要素服務( WFS )返回的是要素級的 GML 編碼 ,并提供對要素的增加、修改、刪除等事務操作,是對 Web 地圖服務的進一步深入。 OGC Web 要素服務允許客戶端從多個 Web 要素服務中取得使用地理標記語言( GML )編碼的地理空間數據,定義了五個操作:

          n  GetCapabilites    返回 Web 要素服務性能描述文檔(用 XML 描述);

          n  DescribeFeatureType    返回描述可以提供服務的任何要素 結構的 XML 文檔;

          n  GetFeature    一個獲取要素實例的請求提供服務;

          n  Transaction    為事務請求提供服務;

          n  LockFeature    處理在一個事務期間對一個或多個要素類型實例上鎖的請求。

           

          WFS-T: Web Map Service-Transactional. 允許用戶以可傳輸的塊編輯地理數據。

           

          WCS Web Coverage Service Web 覆蓋服務)

          Web 覆蓋服務( WCS )面向空間影像數據,它將包含地理位置值的地理空間數據作為 覆蓋( Coverage 在網上相互交換。

          l  網絡覆蓋服務由三種操作組成: GetCapabilities GetCoverage DescribeCoverageType

          n  GetCapabilities  操作返回描述服務 和數據集的 XML 文檔。

          n  GetCoverage 操作是在 GetCapabilities 確定什么樣的查詢可以執行、什么樣的數據能夠獲取之后執行的,它使用通用的覆蓋格式返回地理位置的值或屬性。

          n  DescribeCoverageType 操作允許客戶端請求由具體的 WCS 服務器提供的任一覆蓋層的完全描述。

           

          GML: Geography Markup Language. 一種用于描述地理數據的 XML

           

          OGC ——Open Geospatial Consortium—— 開放地理信息聯盟

           

          總之 GeoServer 是您需要顯示地圖在網頁的那些工具的當中一個,用戶可以縮放并且移動。可以與一些客戶端聯合使用,比如: MapBuilder (for web pages), UDig, GVSig, 等等。 對標準的使用允許信息從 GeoServer 到其它地理信息可以很容易地被結合。

          如果你對 GeoServer 發出一個 WMS 請求,你就可能得到如下的一張圖:

           

          查看 Demo

          welcome 界面中單擊 demo page 鏈接,進入頁面后單擊 WFS-T 鏈接就可以啟動一個名叫 MapBuilder 的基于 Javascript 的地圖地圖編輯器。啟動 MapBuilder 后我們可以看到一張樣圖,那就就從它開始吧!用其提供的工具對圖進行修改。自己練習。

           

          關于 geoserver 開發

          geoserver 只能用 j2ee 開發

          geoserver 是符合 ogc   wms/wfs/wcs 標準的地圖服務器,建設一套完整的 webgis 系統還需要客戶端配合, mapbuilder openlayers 是非常好的兩個選擇。對于較大的項目,空間數據庫也是必不可少的, geoserver 支持商業的 oracle db2 ,開源的 postgis mysql

          扯得更遠一點, geoserver 支持 google   map google   earth

           

          Geotools

          外文官網 http://geotools.codehaus.org/

           

          Geotools 是開源的 Java 代碼庫,在 GIS 中提供對地理空間數據的標準操作。簡單說,它就是一個中間件,提供的功能符合 OGC 規范,且與 GeoAPI 有密切的聯系。它支持的數據格式有 Shapefile GML WFS PostGIS Oracle Spatial ArcSDE MySQL GeoMedia MapInfo 等。

          利用 Geotools 能夠實現:

          l  格網覆蓋 Grid coverages ——柵格數據,

          l  坐標系統轉換 Coordinate Transformation

          l  數據渲染 Renderers

          l  格式化 Styling ——符號化數據集等功能。

           

          WFS 地址

          把下面地址中的 HighwayInterchange 改成自己創建的 featuretype 的名字,在瀏覽器中查看, WFS URL

           

          http://localhost:8080/geoserver/wfs?request=getfeature&service=wfs&version=1.0.0&typename=States

           

           

          下面地址的 youtian 改成自己的 FeatureType 名字,就是自己的 WFS 地址

           

          http://localhost:8080/geoserver/wms/kml_reflect?layers=youtian

           

           

          Openlayers dom 結構

           

          OpenLayers 項目分析——(一)項目介紹

          (OpenLayers JavaScript Mapping Library)

           

          (一)項目介紹

          網址: http://www.openlayers.org/

           

             OpenLayers 是由 MetaCarta 公司開發的,用于 WebGIS 客戶端的 JavaScript 包,目前的最高版本是 2.5 V ,通過 BSD License 發行。它實現訪問地理空間數據的方法都符合行業標準,比如 OpenGIS WMS WFS 規范, OpenLayers 采用純面向對象的 JavaScript 方式開發,同時借用了 Prototype 框架和 Rico 庫的一些組件。

           

            采用 OpenLayers 作為客戶端不存在瀏覽器依賴性。由于 OpenLayers 采用 JavaScript 語言實現,而應用于 Web 瀏覽器中的 DOM (文檔對象模型)由 JavaScript 實現,同時, Web 瀏覽器(比如 IE FF 等)都支持 DOM

           

             OpenLayers APIs 采用動態類型腳本語言 JavaScript 編寫,實現了類似與 Ajax 功能的無刷新更新頁面,能夠帶給用戶豐富的桌面體驗(它本身就有一個 Ajax 類,用于實現 Ajax 功能)。

           

            目前, OpenLayers 所能夠支持的 Format 有: XML GML GeoJSON GeoRSS JSON KML WFS WKT(Well-Known Text) 。在 OPenlayers.Format 名稱空間下的各個類里,實現了具體讀/寫這些 Format 的解析器。

           

             OpenLayers 所能夠利用的地圖數據資源“豐富多彩”,在這方面提供給擁護較多的選擇,比如 WMS WFS GoogleMap KaMap MSVirtualEarth WorldWind 等等。當然,也可以用簡單的圖片作為源。

           

          第一次使用 OpenLayers

           

            先到它的官方網站 http://www.openlayers.org 下載他的壓縮包,解壓后可以看到其中的一些目錄和文件,拷貝目錄下的 OpenLayer.js 、根目錄下的 lib 目錄、根目錄下的 img 目錄到你網站的 Scripts 目錄下 (當然,這個只是例子,您網站的目錄結構您自己說得算,只要保證 OpenLayers.js /lib /img 在同一目錄中即可)。 然后,創建一個 index.html 作為查看地圖的頁面,導入 OpenLayers.js 和你將要創建的 js

           

            我們以加載 WMS GML 文件為例。 

           

              <script src="../lib/OpenLayers.js"></script>

             <script type="text/javascript">

                  var lon = 5;    //x-axis coodinate in map units

                  var lat = 40;   //y-axis coordinate in map units

                  var zoom = 5;   //number of zoom levels

                  var map, layer;      // 聲明變量 map layer ;等同于 var map = null; var layer = null;

           

                  map = new OpenLayers.Map('map');

                  // 實例化一個地圖類 OpenLayers.Map

           

                  layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",

                              "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );

                  // WMS 的格式實例化圖層類 OpenLayers.Layer

           

                  map.addLayer(layer);

                  map.zoomToExtent(newOpenLayers.Bounds(-3.922119,44.335327,

                  4.866943,49.553833));

               // Map 對象上加載 Layer 對象,并用 map.zoomToExtent 函數使地圖合適地顯示

           

               map.addLayer(new OpenLayers.Layer.GML("GML", "gml/polygon.xml"));

               // 再在剛加載的 WMS 文件上,加載一 GML 文件

           

            剩下的工作就是,加上一些控件 OpenLayers.Control 之類的東西,比如 LayerSwitcher 等。它們會在地圖瀏覽的“窗口”上增加一些工具欄或是“按鈕”,增加互動性和功能性。

           

            當然, Openlayers 中的東西遠不止這些,至于它的框架分析、 APIs 實現機制,會在后續文章中說出。寫這個的過程,也是一個學習的過程,其中難免有不妥之處,熱烈歡迎大家批評指正,相互交流。

          posted on 2010-04-09 10:21 聽風 閱讀(752) 評論(0)  編輯  收藏 所屬分類: JAVA

          主站蜘蛛池模板: 沧州市| 嵊泗县| 丰台区| 眉山市| 英山县| 佛教| 繁昌县| 双江| 合水县| 贺兰县| 湟源县| 雅江县| 修武县| 扶余县| 石嘴山市| 炎陵县| 宝清县| 和政县| 垦利县| 萨嘎县| 鸡西市| 黔西县| 保德县| 揭阳市| 盈江县| 丰县| 夹江县| 红河县| 怀柔区| 吉林省| 龙岩市| 中江县| 连平县| 荣成市| 衡东县| 苍山县| 阿尔山市| 林周县| 阜阳市| 淮南市| 洱源县|