第06章-要素类型与图层管理
第06章:要素类型与图层管理
6.1 要素类型和图层的关系
在 GeoServer 中:
- 要素类型(FeatureType):数据存储中的实际数据表或数据集
- 图层(Layer):发布的地图服务,可以配置样式、缓存等
关系:要素类型 → 图层 → OGC 服务(WMS、WFS、WCS)
6.2 FeatureTypeService 核心功能
// 获取要素类型列表
var featureTypes = await featureTypeService.GetFeatureTypesAsync("workspace", "datastore");
// 发布要素类型为图层
var featureType = new FeatureType
{
Name = "cities",
NativeName = "cities",
Title = "世界城市",
Abstract = "世界主要城市数据",
Enabled = true,
SRS = "EPSG:4326"
};
await featureTypeService.CreateFeatureTypeAsync("workspace", "datastore", featureType);
6.3 图层管理
// 获取所有图层
var layers = await layerService.GetLayersAsync();
// 获取特定图层
var layer = await layerService.GetLayerAsync("workspace:cities");
// 更新图层配置
layer.DefaultStyle = new StyleReference { Name = "custom_style" };
await layerService.UpdateLayerAsync("workspace:cities", layer);
// 删除图层
await layerService.DeleteLayerAsync("workspace:cities", recurse: true);
6.4 图层发布完整流程
public class LayerPublisher
{
private readonly WorkspaceService _workspaceService;
private readonly DataStoreService _dataStoreService;
private readonly FeatureTypeService _featureTypeService;
public async Task<bool> PublishLayerAsync(
string workspaceName,
string dataStoreName,
string tableName,
string layerTitle)
{
// 1. 确保工作空间存在
if (!await _workspaceService.WorkspaceExistsAsync(workspaceName))
{
await _workspaceService.CreateWorkspaceAsync(workspaceName);
}
// 2. 发布要素类型
var featureType = new FeatureType
{
Name = tableName,
NativeName = tableName,
Title = layerTitle,
Enabled = true,
SRS = "EPSG:4326",
ProjectionPolicy = "FORCE_DECLARED"
};
await _featureTypeService.CreateFeatureTypeAsync(
workspaceName, dataStoreName, featureType);
Console.WriteLine($"图层 {layerTitle} 发布成功!");
return true;
}
}
6.5 本章小结
学习了:
- 要素类型与图层的区别和联系
- 如何发布数据为图层
- 图层属性配置
- 完整的图层发布流程
相关资源:

浙公网安备 33010602011771号