【轉(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