geoserver的探索

源码解读:

1.通过wicket的id去更改节点对应的值

4964779-b73cff509774c7f2.png
image.png

/gs-web-core/src/main/java/org/geoserver/web/GeoServerBasePage.html

4964779-f31debe1ef6c7b3a.png
image.png

/gs-web-core/src/main/java/org/geoserver/web/GeoServerBasePage.java

4964779-39e4a07d5297f080.png
image.png

2.点击页面上的 服务-WCS

请求的是org.geoserver.wcs.web.WCSAdminPage,也就是spring的配置文件里面的属性值

4964779-4e66f160f007da05.png
image.png
4964779-222250cf2ba44d04.png
image.png

同样是使用了wicket的方式去充填视图

4964779-ef356c1648bedb2e.png
image.png

这里的很关键

4964779-71ff41c56da753e2.png
image.png

componentClass是对应的org.geoserver.wcs.web.WCSAdminPage类的对象

在很多的文件中,这个类都有作为对象去创建,然后通过wicket的listview的对象去加载。这个和目前安卓里面的滑动视图Listview和adapter有些异曲同工之处。

4964779-05e0b9ee8fd7d106.png
image.png

3.http get的请求

WMS的请求一般使用HTTP Get的形式直接从地址栏输入或者通过JS代码发送到服务器端。请求的格式如下所示:

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,该请求中wms是要请求的服务,version=1.1.1是请求的wms版本,GetMap是请求的服务方法,tiger:poi是要访问的地理数据。

4.结构

“platform”,“main”,“ows”,“wfs”,“wcs”,“wms” 个包是主要的包。它们的关系如下图

4964779-3e5299efa2aecc45.png
image.png

展现了包之间的依赖关系,下面的包依赖上面的包,最顶端是“platform”。

“platform”,“ows”和“main”包含了GeoServer最基础最核心的类和接口,下面介绍一些重要的类和接口,“wfs”,“wcs”,“wms”将利用这些类来完成具体的功能:

1)platform包的org.geoserver.platform.Service类代表一个具体的服务,例如WMS,它用ID和VERSION来唯一标定,每一个服务都会提供若干操作(Operation);

2)platform包的org.geoserver.platform.Operation类代表某个服务下可以被请求的操作,例如GetCapabilities,这个类利用Java的反射机制;

3)ows包的org.geoserver.ows.Dispatcher类处理所有OWS的请求,是需要关注的重点;

4)main包的org.geoserver.catalog.Catalog接口包含资源访问的方法,这些资源有“Layer”,“Layer Group”,“Map”,“Namesapce”,“Resource”,“Store”,“Style”和“Workspace”,它们是组织和使用数据的关键;

5)main包的org.geoserver.config.GeoServer接口包含访问服务器公共配置信息的方法,我们将会在很多场合看到它;

6)main包里面还有一些描述资源的接口,例如org.geoserver.catalog.LayerInfo代表“Layer”资源。

转载自:https://blog.csdn.net/weixin_33918357/article/details/87017493

You may also like...