hello world

          隨筆 - 2, 文章 - 63, 評(píng)論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          【轉(zhuǎn)】geoserver掃盲 openlayers相關(guān)

          轉(zhuǎn)自http://www.cnblogs.com/lzlynn/archive/2008/07/29/1255702.html

          WMS: Web Map Service Web 地圖服務(wù)

          l  利用具有地理空間位置信息的數(shù)據(jù)制作地圖。其中將地圖定義為地理數(shù)據(jù)可視的表現(xiàn)。這個(gè)規(guī)范定義了三個(gè)操作:

          n  GetCapabitities 返回服務(wù)級(jí)元數(shù)據(jù),它是對(duì)服務(wù)信息內(nèi)容和要求參數(shù)的一種描述;

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

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

           

          WFS: Web Feature Service Web 要素服務(wù))

          l  Web 地圖服務(wù)返回的是圖層級(jí)的地圖影像,

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

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

          n  DescribeFeatureType    返回描述可以提供服務(wù)的任何要素 結(jié)構(gòu)的 XML 文檔;

          n  GetFeature    一個(gè)獲取要素實(shí)例的請(qǐng)求提供服務(wù);

          n  Transaction    為事務(wù)請(qǐng)求提供服務(wù);

          n  LockFeature    處理在一個(gè)事務(wù)期間對(duì)一個(gè)或多個(gè)要素類型實(shí)例上鎖的請(qǐng)求。

           

          WFS-T: Web Map Service-Transactional. 允許用戶以可傳輸?shù)膲K編輯地理數(shù)據(jù)。

           

          WCS Web Coverage Service Web 覆蓋服務(wù))

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

          l  網(wǎng)絡(luò)覆蓋服務(wù)由三種操作組成: GetCapabilities GetCoverage DescribeCoverageType

          n  GetCapabilities  操作返回描述服務(wù) 和數(shù)據(jù)集的 XML 文檔。

          n  GetCoverage 操作是在 GetCapabilities 確定什么樣的查詢可以執(zhí)行、什么樣的數(shù)據(jù)能夠獲取之后執(zhí)行的,它使用通用的覆蓋格式返回地理位置的值或?qū)傩浴?/span>

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

           

          GML: Geography Markup Language. 一種用于描述地理數(shù)據(jù)的 XML

           

          OGC ——Open Geospatial Consortium—— 開放地理信息聯(lián)盟

           

          總之 GeoServer 是您需要顯示地圖在網(wǎng)頁的那些工具的當(dāng)中一個(gè),用戶可以縮放并且移動(dòng)。可以與一些客戶端聯(lián)合使用,比如: MapBuilder (for web pages), UDig, GVSig, 等等。 對(duì)標(biāo)準(zhǔn)的使用允許信息從 GeoServer 到其它地理信息可以很容易地被結(jié)合。

          如果你對(duì) GeoServer 發(fā)出一個(gè) WMS 請(qǐng)求,你就可能得到如下的一張圖:

           

          查看 Demo

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

           

          關(guān)于 geoserver 開發(fā)

          geoserver 只能用 j2ee 開發(fā)

          geoserver 是符合 ogc   wms/wfs/wcs 標(biāo)準(zhǔn)的地圖服務(wù)器,建設(shè)一套完整的 webgis 系統(tǒng)還需要客戶端配合, mapbuilder openlayers 是非常好的兩個(gè)選擇。對(duì)于較大的項(xiàng)目,空間數(shù)據(jù)庫也是必不可少的, geoserver 支持商業(yè)的 oracle db2 ,開源的 postgis mysql

          扯得更遠(yuǎn)一點(diǎn), geoserver 支持 google   map google   earth

           

          Geotools

          外文官網(wǎng) http://geotools.codehaus.org/

           

          Geotools 是開源的 Java 代碼庫,在 GIS 中提供對(duì)地理空間數(shù)據(jù)的標(biāo)準(zhǔn)操作。簡(jiǎn)單說,它就是一個(gè)中間件,提供的功能符合 OGC 規(guī)范,且與 GeoAPI 有密切的聯(lián)系。它支持的數(shù)據(jù)格式有 Shapefile GML WFS PostGIS Oracle Spatial ArcSDE MySQL GeoMedia MapInfo 等。

          利用 Geotools 能夠?qū)崿F(xiàn):

          l  格網(wǎng)覆蓋 Grid coverages ——柵格數(shù)據(jù),

          l  坐標(biāo)系統(tǒng)轉(zhuǎn)換 Coordinate Transformation

          l  數(shù)據(jù)渲染 Renderers

          l  格式化 Styling ——符號(hào)化數(shù)據(jù)集等功能。

           

          WFS 地址

          把下面地址中的 HighwayInterchange 改成自己創(chuàng)建的 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 結(jié)構(gòu)

           

          OpenLayers 項(xiàng)目分析——(一)項(xiàng)目介紹

          (OpenLayers JavaScript Mapping Library)

           

          (一)項(xiàng)目介紹

          網(wǎng)址: http://www.openlayers.org/

           

             OpenLayers 是由 MetaCarta 公司開發(fā)的,用于 WebGIS 客戶端的 JavaScript 包,目前的最高版本是 2.5 V ,通過 BSD License 發(fā)行。它實(shí)現(xiàn)訪問地理空間數(shù)據(jù)的方法都符合行業(yè)標(biāo)準(zhǔn),比如 OpenGIS WMS WFS 規(guī)范, OpenLayers 采用純面向?qū)ο蟮?/span> JavaScript 方式開發(fā),同時(shí)借用了 Prototype 框架和 Rico 庫的一些組件。

           

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

           

             OpenLayers APIs 采用動(dòng)態(tài)類型腳本語言 JavaScript 編寫,實(shí)現(xiàn)了類似與 Ajax 功能的無刷新更新頁面,能夠帶給用戶豐富的桌面體驗(yàn)(它本身就有一個(gè) Ajax 類,用于實(shí)現(xiàn) Ajax 功能)。

           

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

           

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

           

          第一次使用 OpenLayers

           

            先到它的官方網(wǎng)站 http://www.openlayers.org 下載他的壓縮包,解壓后可以看到其中的一些目錄和文件,拷貝目錄下的 OpenLayer.js 、根目錄下的 lib 目錄、根目錄下的 img 目錄到你網(wǎng)站的 Scripts 目錄下 (當(dāng)然,這個(gè)只是例子,您網(wǎng)站的目錄結(jié)構(gòu)您自己說得算,只要保證 OpenLayers.js /lib /img 在同一目錄中即可)。 然后,創(chuàng)建一個(gè) index.html 作為查看地圖的頁面,導(dǎo)入 OpenLayers.js 和你將要?jiǎng)?chuàng)建的 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');

                  // 實(shí)例化一個(gè)地圖類 OpenLayers.Map

           

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

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

                  // WMS 的格式實(shí)例化圖層類 OpenLayers.Layer

           

                  map.addLayer(layer);

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

                  4.866943,49.553833));

               // Map 對(duì)象上加載 Layer 對(duì)象,并用 map.zoomToExtent 函數(shù)使地圖合適地顯示

           

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

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

           

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

           

            當(dāng)然, Openlayers 中的東西遠(yuǎn)不止這些,至于它的框架分析、 APIs 實(shí)現(xiàn)機(jī)制,會(huì)在后續(xù)文章中說出。寫這個(gè)的過程,也是一個(gè)學(xué)習(xí)的過程,其中難免有不妥之處,熱烈歡迎大家批評(píng)指正,相互交流。

          posted on 2010-04-09 10:21 聽風(fēng) 閱讀(753) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA

          主站蜘蛛池模板: 响水县| 丰宁| 三明市| 清水县| 云龙县| 定兴县| 色达县| 平塘县| 海原县| 阿克苏市| 万源市| 饶平县| 汾阳市| 尼勒克县| 县级市| 浙江省| 鄂温| 宁波市| 山阳县| 龙泉市| 昌宁县| 绥中县| 临澧县| 当雄县| 蛟河市| 济源市| 清水县| 科尔| 佛教| 永康市| 海阳市| 尼玛县| 安宁市| 梅州市| 类乌齐县| 桃江县| 宣城市| 沈阳市| 彩票| 昭平县| 建平县|