GeoServer中的几个核心概念


Catalog–数据目录

GeoServer中的catalog是用来访问geoserver中的数据信息接口。

catalog中储存了如下信息:

  • 命名空间(workspaces)和工作空间(workspaces)
  • 栅格数据(coverage–>raster)、矢量数据(data–>vector)
  • 发布的栅格资源(coverages resoures)和矢量资源信息(feature resoures)
  • 样式信息(style)

workspaces–工作空间

工作空间是一个用来包含存储(store)的容器,它可以包含任意数量的储存(store)。

所有工作空间可以通过getWorkspaces()来获取。每个工作空间通过name属性来标识,可以通过WorkspaceInfo#getName()来获取。工作空间也可以直接根据getWorkspaceByName(String)来进行查询,参数为工作空间的name

stores–数据仓库

通过getStores(Class)可以获取catalog中所有指定类型的数据仓库(store)。例如:如下代码可以获取所有矢量仓库

//获取所有矢量仓库
List<DataStoreInfo> dataStores = catalog.getStores( DataStoreInfo.class );

为了方便使用,catalog同时提供了getDataStores()getCoverageStores()两个方法来获取矢量仓库和栅格存储。数据仓库(store)包含在工作空间(workspace)中,可以通过数据仓库获取到所属的工作空间,StoreInfo#getWorkspace()方法。反之,则可以通过工作空间获取所有包含的指定类型数据仓库,getStoresByWorkspace(WorkspaceInfo, Class)方法。例如,可以通过如下代码获取某个工作空间下所有矢量数据仓库

//获取特定工作空间
WorkspaceInfo workspace = catalog.getWorkspace( "myWorkspace" );
//获取该工作空间下所有矢量数据仓库
List<DataStoreInfo> dataStores = catalog.getStoresByWorkspace( workspace, DataStoreInfo.class );

Resources–数据资源

数据资源(resources)是指数据仓库中的实际数据。数据资源包括两大类,矢量数据资源(FeatureTypeInfo)和栅格数据资源(CoverageInfo)。

可以通过getResources(Class)获取指定类型的数据资源。例如:通过以下代码可以获取所有矢量数据资源

List<FeatureTypeInfo> featureTypes = catalog.getResources( FeatureTypeInfo.class );

同样,catalog提供了两个直接获取特定数据资源的方法getFeatureTypes()getCoverages(),来获取所有矢量数据资源和栅格数据资源。
一个数据资源归属于某一个命名空间,因此可以通过一个命名空间、资源名称对来进行定位和获取。如getResourceByName(String, String, Class)方法可以用来获取指定命名空间、资源名称对(workspace+’:’+name)、资源类型来获取对应的资源。
也可不指定命名空间获取所有命名空间下某个资源名称对、资源类型对应的资源- –getResourceByName(String, Class)。这个方法会查找所有命名空间下,该资源名称对和类型的资源,非常耗时。直到找到符合条件的资源后,返回。

//get a feature type by its qualified name
FeatureTypeInfo ft = catalog.getResourceByName( 
"http://myNamespace.org", "myFeatureType", FeatureTypeInfo.class );

//get a feature type by its unqualified name
ft = catalog.getResourceByName( "myFeatureType", FeatureTypeInfo.class );

//get all feature types in a namespace
NamespaceInfo ns = catalog.getNamespaceByURI( "http://myNamespace.org" );
List<FeatureTypeInfo> featureTypes = catalog.getResourcesByNamespace( ns, FeatureTypeINfo.class );

layer–图层

图层在geoserver中是用来发布资源的,可以用来处理已经发布的资源。

getLayers()可以获取catalog中所有图层。也可以通过唯一名称直接获取某个图层getLayerByName(String)getLayers(ResourceInfo)方法可以获取指定类型的所有图层。

//get a layer by its name
LayerInfo layer = catalog.getLayer( "myLayer" );

//get all the layers for a particualr feature type
FeatureTypeInfo ft = catalog.getFeatureType( "http://myNamespace", "myFeatureType" );
 List<LayerInfo> layers = catalog.getLayers( ft );

转载自:https://blog.csdn.net/cauyahui/article/details/78030596

You may also like...