l 利用具有地理空間位置信息的數據制作地圖。其中將地圖定義為地理數據可視的表現。這個(gè)規范定義了三個(gè)操作:
n GetCapabitities 返回服務(wù)級元數據,它是對服務(wù)信息內容和要求參數的一種描述;
n GetMap 返回一個(gè)地圖影像,其地理空間參考和大小參數是明確定義了的;
n GetFeatureInfo(可選)返回顯示在地圖上的某些特殊要素的信息
l Web 地圖服務(wù)返回的是圖層級的地圖影像,
l Web要素服務(wù)(WFS)返回的是要素級的GML編碼,并提供對要素的增加、修改、刪除等事務(wù)操作,是對Web地圖服務(wù)的進(jìn)一步深入。OGC Web要素服務(wù)允許客戶(hù)端從多個(gè)Web要素服務(wù)中取得使用地理標記語(yǔ)言(GML)編碼的地理空間數據,定義了五個(gè)操作:
n GetCapabilites 返回Web要素服務(wù)性能描述文檔(用XML描述);
n DescribeFeatureType 返回描述可以提供服務(wù)的任何要素 結構的XML文檔;
n GetFeature 一個(gè)獲取要素實(shí)例的請求提供服務(wù);
n Transaction 為事務(wù)請求提供服務(wù);
n LockFeature 處理在一個(gè)事務(wù)期間對一個(gè)或多個(gè)要素類(lèi)型實(shí)例上鎖的請求。
Web 覆蓋服務(wù)(WCS)面向空間影像數據,它將包含地理位置值的地理空間數據作為“覆蓋(Coverage)”在網(wǎng)上相互交換。
l 網(wǎng)絡(luò )覆蓋服務(wù)由三種操作組成:GetCapabilities,GetCoverage和DescribeCoverageType:
n GetCapabilities 操作返回描述服務(wù) 和數據集的XML文檔。
n GetCoverage操作是在GetCapabilities確定什么樣的查詢(xún)可以執行、什么樣的數據能夠獲取之后執行的,它使用通用的覆蓋格式返回地理位置的值或屬性。
n DescribeCoverageType 操作允許客戶(hù)端請求由具體的WCS服務(wù)器提供的任一覆蓋層的完全描述。
總之 , GeoServer 是您需要顯示地圖在網(wǎng)頁(yè)的那些工具的當中一個(gè),用戶(hù)可以縮放并且移動(dòng)??梢耘c一些客戶(hù)端聯(lián)合使用,比如: MapBuilder (for web pages), UDig, GVSig,等等。 對標準的使用允許信息從GeoServer 到其它地理信息可以很容易地被結合。

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

在welcome界面中單擊demo page鏈接,進(jìn)入頁(yè)面后單擊WFS-T鏈接就可以啟動(dòng)一個(gè)名叫MapBuilder的基于Javascript的地圖地圖編輯器。啟動(dòng) MapBuilder后我們可以看到一張樣圖,那就就從它開(kāi)始吧!用其提供的工具對圖進(jìn)行修改。自己練習。
geoserver只能用j2ee開(kāi)發(fā)
geoserver是符合ogc wms/wfs/wcs標準的地圖服務(wù)器,建設一套完整的webgis系統還需要客戶(hù)端配合,mapbuilder和openlayers是非常好的兩個(gè)選擇。對于較大的項目,空間數據庫也是必不可少的,geoserver支持商業(yè)的oracle、db2,開(kāi)源的postgis、mysql。
扯得更遠一點(diǎn),geoserver支持google map和google earth。
外文官網(wǎng) http://geotools.codehaus.org/
Geotools是開(kāi)源的Java代碼庫,在GIS中提供對地理空間數據的標準操作。簡(jiǎn)單說(shuō),它就是一個(gè)中間件,提供的功能符合OGC規范,且與GeoAPI有密切的聯(lián)系。它支持的數據格式有Shapefile、GML、WFS、PostGIS、Oracle Spatial、ArcSDE、MySQL、GeoMedia、MapInfo等。
利用Geotools能夠實(shí)現:
l 格網(wǎng)覆蓋Grid coverages——柵格數據,
l 坐標系統轉換Coordinate Transformation,
l 數據渲染Renderers,
l 格式化Styling——符號化數據集等功能。
把下面地址中的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 JavaScript Mapping Library)
(一)項目介紹
網(wǎng)址:http://www.openlayers.org/
OpenLayers 是由MetaCarta公司開(kāi)發(fā)的,用于WebGIS客戶(hù)端的JavaScript包,目前的最高版本是2.5 V,通過(guò)BSD License 發(fā)行。它實(shí)現訪(fǎng)問(wèn)地理空間數據的方法都符合行業(yè)標準,比如OpenGIS的WMS和WFS規范, OpenLayers采用純面向對象的JavaScript方式開(kāi)發(fā),同時(shí)借用了Prototype框架和Rico庫的一些組件。
采用OpenLayers作為客戶(hù)端不存在瀏覽器依賴(lài)性。由于OpenLayers采用JavaScript語(yǔ)言實(shí)現,而應用于Web瀏覽器中的DOM(文檔對象模型)由JavaScript實(shí)現,同時(shí),Web瀏覽器(比如IE,FF等)都支持DOM 。
OpenLayers APIs采用動(dòng)態(tài)類(lèi)型腳本語(yǔ)言JavaScript編寫(xiě),實(shí)現了類(lèi)似與Ajax功能的無(wú)刷新更新頁(yè)面,能夠帶給用戶(hù)豐富的桌面體驗(它本身就有一個(gè)Ajax類(lèi),用于實(shí)現Ajax功能)。
目前,OpenLayers所能夠支持的Format有:XML、GML、GeoJSON、GeoRSS、JSON、KML、WFS、WKT(Well-Known Text)。在OPenlayers.Format名稱(chēng)空間下的各個(gè)類(lèi)里,實(shí)現了具體讀/寫(xiě)這些Format的解析器。
OpenLayers所能夠利用的地圖數據資源“豐富多彩”,在這方面提供給擁護較多的選擇,比如WMS、WFS、GoogleMap、KaMap、MSVirtualEarth、WorldWind等等。當然,也可以用簡(jiǎn)單的圖片作為源。
第一次使用OpenLayers:
先到它的官方網(wǎng)站http://www.openlayers.org下載他的壓縮包,解壓后可以看到其中的一些目錄和文件,拷貝目錄下的OpenLayer.js、根目錄下的lib目錄、根目錄下的img目錄到你網(wǎng)站的Scripts目錄下(當然,這個(gè)只是例子,您網(wǎng)站的目錄結構您自己說(shuō)得算,只要保證OpenLayers.js,/lib,/img在同一目錄中即可)。 然后,創(chuàng )建一個(gè)index.html作為查看地圖的頁(yè)面,導入OpenLayers.js和你將要創(chuàng )建的js。
我們以加載WMS和GML文件為例?!?/span>
<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è)地圖類(lèi)OpenLayers.Map
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
//以WMS的格式實(shí)例化圖層類(lèi)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之類(lèi)的東西,比如LayerSwitcher等。它們會(huì )在地圖瀏覽的“窗口”上增加一些工具欄或是“按鈕”,增加互動(dòng)性和功能性。
當然,Openlayers中的東西遠不止這些,至于它的框架分析、APIs實(shí)現機制,會(huì )在后續文章中說(shuō)出。寫(xiě)這個(gè)的過(guò)程,也是一個(gè)學(xué)習的過(guò)程,其中難免有不妥之處,熱烈歡迎大家批評指正,相互交流。
聯(lián)系客服