源碼解讀:
1.通過(guò)wicket的id去更改節(jié)點(diǎn)對(duì)應(yīng)的值
/gs-web-core/src/main/java/org/geoserver/web/GeoServerBasePage.html
/gs-web-core/src/main/java/org/geoserver/web/GeoServerBasePage.java
2.點(diǎn)擊頁(yè)面上的 服務(wù)-WCS
請(qǐng)求的是org.geoserver.wcs.web.WCSAdminPage,也就是spring的配置文件里面的屬性值
同樣是使用了wicket的方式去充填視圖
componentClass是對(duì)應(yīng)的org.geoserver.wcs.web.WCSAdminPage類的對(duì)象
在很多的文件中颅眶,這個(gè)類都有作為對(duì)象去創(chuàng)建古戴,然后通過(guò)wicket的listview的對(duì)象去加載。這個(gè)和目前安卓里面的滑動(dòng)視圖Listview和adapter有些異曲同工之處涛目。
3.http get的請(qǐng)求
WMS的請(qǐng)求一般使用HTTP Get的形式直接從地址欄輸入或者通過(guò)JS代碼發(fā)送到服務(wù)器端。請(qǐng)求的格式如下所示:
http://localhost:8080/geoserver /wms?bbox=-74.01199448397661,40.70732689845813,-74.00841053684495,40.71216558957052&styles=&Format=application/openlayers&request=GetMap&version=1.1.1&layers=tiger:poi&width=457&height=550&srs=EPSG:4326凛澎,該請(qǐng)求中wms是要請(qǐng)求的服務(wù)霹肝,version=1.1.1是請(qǐng)求的wms版本,GetMap是請(qǐng)求的服務(wù)方法塑煎,tiger:poi是要訪問(wèn)的地理數(shù)據(jù)沫换。
4.結(jié)構(gòu)
“platform”,“main”最铁,“ows”讯赏,“wfs”,“wcs”冷尉,“wms” 個(gè)包是主要的包漱挎。它們的關(guān)系如下圖
展現(xiàn)了包之間的依賴關(guān)系,下面的包依賴上面的包雀哨,最頂端是“platform”磕谅。
“platform”,“ows”和“main”包含了GeoServer最基礎(chǔ)最核心的類和接口,下面介紹一些重要的類和接口怜庸,“wfs”当犯,“wcs”,“wms”將利用這些類來(lái)完成具體的功能:
1)platform包的org.geoserver.platform.Service類代表一個(gè)具體的服務(wù)割疾,例如WMS嚎卫,它用ID和VERSION來(lái)唯一標(biāo)定卫键,每一個(gè)服務(wù)都會(huì)提供若干操作(Operation)恢口;
2)platform包的org.geoserver.platform.Operation類代表某個(gè)服務(wù)下可以被請(qǐng)求的操作玖瘸,例如GetCapabilities抠刺,這個(gè)類利用Java的反射機(jī)制;
3)ows包的org.geoserver.ows.Dispatcher類處理所有OWS的請(qǐng)求塞关,是需要關(guān)注的重點(diǎn)晕讲;
4)main包的org.geoserver.catalog.Catalog接口包含資源訪問(wèn)的方法贵白,這些資源有“Layer”抚芦,“Layer Group”倍谜,“Map”,“Namesapce”叉抡,“Resource”尔崔,“Store”,“Style”和“Workspace”褥民,它們是組織和使用數(shù)據(jù)的關(guān)鍵季春;
5)main包的org.geoserver.config.GeoServer接口包含訪問(wèn)服務(wù)器公共配置信息的方法,我們將會(huì)在很多場(chǎng)合看到它消返;
6)main包里面還有一些描述資源的接口载弄,例如org.geoserver.catalog.LayerInfo代表“Layer”資源。