OGC标准
OGC是由开放地理空间联盟制定的一系列地理信息技术标准。
常用的服务:WMS,WFS,WCS,WMTS;
WMS
WMS是一种用于在web上发布地图数据的标准协议,被广泛应用于地图制作,数据共享,空间分析,和其他相关领域。
WMS具有以下特征:
是最常用的地图服务之一
支持实时渲染和数据实时更新
可以结合多种样式实现多样化渲染
数据量大时会出现渲染效率慢的情况,比较适用于小数据量的场景。
WMS接口
服务操作列表
WMS实现规范由三个基础性操作协议(GetCapabilities,GetMap和GetFeatureInfo)组成,这些协议共同构成了利用WMS创建和叠加显示不同来源的远程异构地图服务的基础。
GetCapabilities 获取WMS的能力文档(即元数据文档),里面包含服务的所有信息
GetMap 获取地图图片。该操作根据客户端发出的请求参数在服务端进行检索,服务器端返回一个地图图像,其地理空间参数和大小参数是已经明确定义的,返回的地图图像可以是GIF、JPEG、PNG或SVG格式。
GetFeatureInfo 该操作根据用户所请求的X、Y坐标或感兴趣的图层,返回地图上某些特殊要素的信息,信息以HTML,GML或ASCII的格式表示。
服务操作的参数列表
GetCapabilities操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型值为“WMS”
request 1个(必选) 字符类型,请求的操作名称,值为“GetCapabilities”
version 0或1个(可选) 字符类型,值为请求的WMS的版本号
format 0或1个(可选) MIME类型,值为服务元数据的输出格式
GetMap操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型标识值为“WMS”
request 1个(必选) 字符类型,值为“GetMap”
version 1个(必选) 字符类型,值为请求的WMS的版本号
layers 1个(必选) 字符类型,值为一个或多个地图图层列表,多个图层之间用”,”隔开
styles 1个(必选) 字符类型,值为请求图层的地图渲染样式
CRS 1个(必选) 字符类型,值为坐标参照系统
BBOX 1个(必选) Wkt格式,值为某个CRS下的地图边界范围的坐标序列
width 1个(必选) 整型类型,值为地图图片的像素宽度
height 1个(必选) 整型类型,值为地图图片的像素高度
format 1个(必选) 字符类型,值为地图的输出格式
transparent 0或1个(可选) 字符类型,值为true或者false,用来表示地图图层是否透明(默认情况下是不透明的)
bgcolor 0或1个(可选) 值为十六进制的RGB值,表示地图的背景颜色
time 0或1个(可选) 时间类型,值为时间值,表示需要在图层中有时间信息
elevation 0或1个(可选) 数字类型,值为高程值,表示需要在图层中有高程信息
GetFeatureInfo操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型标识值为“WMS”
request 1个(必选) 字符类型,值为“GetFeatureInfo”
version 1个(必选) 字符类型,值为请求的WMS的版本号
query_layers 1个(必选) 字符类型,值为查询的一个或多个地图图层列表,多个图层之间用”,”隔开
info_format 1个(必选) MIME类型,值为请求信息的返回类型
feature_count 0或1个(可选) 整型类型,值为返回信息中的要素的个数(默认是1)
接口调用示例
操作 调用示例
GetCapabilities http://ip:port/geoserver/demo/wms?version=1.1.1&request=GetCapabilities&service=WMS
GetMap http://ip:port/geoserver/demo/wmsversion=1.1.1&request=GetMap&service=WMS&mapservice=DMDZ&layers=1&styles=default&width=1164&height=371&format=png&transparent=true&srs=EPSG%3A4490&bbox=119.28758165903027,26.090243729688037,119.28914270467693,26.0907412794603
WFS
WFS是一种用于在Web上发布矢量地理信息数据的标注协议。支持对地理要素的插入、更新、删除、检索等,用户可以通过WFS协议获取到需要的矢量地理信息数据。该服务根据HTT客户请求返回GML数据,可以通过OGC Filter构造查询条件,支持给予空间几何关系的查询,给予属性域的查询、基于空间关系和属性域的共同查询等。WFS获取到的结果包括矢量地理数据、数据范围、数据属性等内容。
WFS的主要使用场景包括用于地图数据的基本增删改查、用于数据的到处以及高级查询操作。
WFS接口
服务操作列表
操作 实现要求 描述
GetCapabilities 强制实现 GetCapabilities请求用于查询WFS服务的能力信息,包括支持的操作、支持的格式、空间坐标、包含的资源等。它主要的目的是使客户端在使用GetFeature请求前可以对WFS服务有一个基本的了解,从而可以设置正确的参数。
DescribeFeatureType 强制实现 用于生成一个 Schema 描述,该 Schema 描述了 WFS 服务提供的要素类型(Feature Type),以及要素类型的结构信息。该 Schema 还定义了 WFS 服务所期望的要素实例在输入时如何编码以及输出时如何生成要素实例。
GetFeature 强制实现 GetFeature用于向WFS的客户端程序提供查询特定地理信息的能力,通过GetFeature操作可以由指定的属性条件、空间条件或者两者叠加的条件进行空间查询。
服务操作的参数列表
GetCapabilities操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型值为“WFS”
request 1个(必选) 字符类型,请求的操作名称,值为“GetCapabilities”
DescribeFeatureType操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型值为“WFS”
request 1个(必选) 字符类型,请求的操作名称,值为“DescribeFeatureType”
typeName 0或1个(可选) 字符类型,值为要素类型的列表,多个值之间用“,”隔开,默认解析包括的全部要素类型
outputFormat 0或1个(可选) MIME类型,值为输出格式
GetFeature操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型标识值为“WFS”
request 1个(必选) 字符类型,请求的操作值为“GetFeature”
typeName 1个(必选) 字符类型,值为请求的要素类型的名称,多个名称之间用“,”隔开
version 0或1个(可选) 字符类型,值为请求的WFS的版本号
outputFormat 0或1个(可选) MIME类型,值为输出格式
resultType 0或1个(可选) 字符类型,值为请求的结果类型
propertyName 0或1个(可选) 字符类型,值为请求要素的属性名,多个值之间用“,”隔开
featureVersion 0或1个(可选) 字符类型,值为要素的版本,值为ALL返回请求的要素的所有版本,没有值默认为返回请求要素的最新版本
maxFeature 0或1个(可选) 整型类型,值为请求要素的最大数,默认值为满足查询的所有结果集
expiry 0或1个(可选) 数字类型,要素被锁定的时间
SRSName 0或1个(可选) 字符类型,值为坐标系统名
featureID 0或1个(可选) 字符类型,值为要素的ID,多个ID之间用“,”隔开
filter 0或1个(可选) 请求要素的过滤条件
bBox 0或1个(可选) Wkt格式,请求指定要素查询范围,可以替代featureId和filter参数
sortby 0或1个(可选) 字符类型,查询结果属性值的排序依据
接口调用示例
GetCapabilities http://ip:port/geoserver/demo/ows?service=WFS&request=GetCapabilities&version=1.0.0
DescribeFeatureType http://ip:port/geoserver/demo/ows?service=WFS&request=DescribeFeatureType&typename=DMDZ:地名&version=1.0.0
GetFeature http://ip:port/geoserver/demo/ows?service=WFS&request=GetFeature&typename=DMDZ:地名&version=1.0.0&maxFeature=20
WMTS
WMTS是一种用于在Web上发布地图切片数据的标准协议,用户可以通过WMTS协议获取到需要的地图切片数据。WMTS提供一种采用预定义切片方法发布数字地图服务的标准化解决方案,弥补WMS在数据不变的情况下请求慢的不足。WMTS服务返回的是预先生成的地图切片数据,而不是动态生成的地图图像,通过静态数据(基础地图)来增强伸缩性。
主要使用场景:
用于地图数据切片缓存。WMTS服务由geoserver插件GeoWebCache实现,对数据进行缓存。
加载无须更新要素的地图数据。数据不会频繁变化,结合数据缓存,提高渲染性能。
数量大或者区域面积比较广的场景。
WMTS接口
服务操作列表
操作 操作 描述
GetCapabilities 强制实现 获取WMTS的能力文档(即元数据文档),里面包含服务的所有信息
GetTile 强制实现 获取地图瓦片。该操作根据客户端发出的请求参数在服务端进行检索,服务器端返回地图瓦片图像。
GetFeatureInfo 选择实现 通过在WMTS图层上指定一定的条件,返回指定的地图瓦片内容对应的要素信息
服务操作的参数列表
GetCapabilities操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型值为“WMTS”
request 1个(必选) 字符类型,请求的操作名称,值为“GetCapabilities”
GetTile操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型标识值为“WMTS”
request 1个(必选) 字符类型,请求的操作值为“GetTile”
version 1个(必选) 字符类型,值为请求的WMTS的版本号
layer 1个(必选) 字符类型,值为请求的图层名称
style 1个(必选) 字符类型,值为请求图层的渲染样式
format 1个(必选) 字符类型,值为瓦片地图的输出格式
tileMatrixSet 1个(必选) 字符类型,瓦片矩阵数据集,其值在服务的元数据文档中指定
tileMatrix 1个(必选) 字符类型,瓦片矩阵,其值在服务的元数据文档中指定
tileRow 1个(必选) 整型类型,值为大于0的整数,表示瓦片矩阵的行号
tileCol 1个(必选) 整型类型,值为大于0的整数,表示瓦片矩阵的列号
GetFeatureInfo操作请求方法实现参数
参数名称 参数个数 参数类型和值
service 1个(必选) 字符类型,服务类型值为“WMTS”
request 1个(必选) 字符类型,请求的操作值为“GetFeatureInfo”
version 1个(必选) 字符类型,值为请求的WMTS的版本号
J 1个(必选) 整型类型,值为大于0的整数,表示瓦片上一指定像素点的行号
I 1个(必选) 整型类型,值为大于0的整数,表示瓦片上一指定像素点的列号
info_format 1个(必选) MIME类型,值为请求信息的返回类型
接口调用示例
实例名称 调用实例
GetCapabilities操作 http://ip:port/geoserver/gwc/service/wmts?service=WMTS&request=GetCapabilities
GetTile操作 http://ip:port/geoserver/gwc/service/wmts?service=WMTS&request=GetTile&layer=0&style=default&tileMatrixSet=sss&tileMatrix=10&tileRow=93074&tileCol=435872&format=image/png
地图切片
地图切片是采用预生成的方法,将地图存放在服务器端,然后根据用户提交的不同请求,将相应的地图瓦片发送给客户端的过程。它是一种多分辨率的层次模型,按照一定的规则将数据处理成以“级-行-列”方式组织的图片集或数据集,以类似于金字塔的形式存储。从瓦片金字塔底层到顶层,表示的地理范围不变,但分辨率越来越低。
地图切片的优势在于能够减少地图加载的时间和带宽消耗,提高地图的显示效率和用户体验。
地图瓦片的加载过程:客户端提交一个特定地图范围和级别的请求,服务端通过“级-行-列”,返回对应的底图瓦片给客户端,进行渲染。
地图切片的优势:
按需加载
多级缩放
优化用户体验
跨平台兼容性
支持离线访问
切片基础概念:
切片范围:
切片范围是指在制定切片规则时,需要定义一个大于数据范围或者与数据范围一致的切片范围,它与数据范围不是同一个概念。数据范围是数据的实际范围,二切片范围是指切片的规则范围,如EPSG:4326下的切片范围可设置为[-180,-90,180,90]
切片原点:
切片原点的选择有两种:左上或者左下。切片原点的选择主要影响“级行列”中的列
切片大小:
切片大小由每个切片的宽度*高度决定。对于栅格切片,切片大小是指切片完成后每张图片的大小。对于矢量切片,切片大小指的是客户端在渲染切片数据时所呈现出来的大小。早起切片的大小是256像素,这个和当时计算机的分辨率比较小有很大关系,随着技术进步,现在很多切片会采用512像素的大小,矢量切片在渲染时就是采用这个大小。
切片分辨率:
切片分辨率时根据切片范围和切片大小计算而来的,如切片的范围为[-180,-90,180,90],切片的大小时256像素,则在第0级时分辨率的计算公式为(180-(-180))/256=1.40625
计算公式:
(xmax-xmin)/titleSize*Math.pow(2,zoom)
切片类型
栅格切片
栅格切片用于遥感影像,数字地图,和卫星图像等大型栅格数据集的发布,或大数据量矢量数据的切片发布。
使用栅格切片可以提高数据处理效率,但是栅格切片缺乏灵活性,切片一旦生成就无法再改变样式。
栅格切片缺乏实时性,当数据发生变化事,需要重新执行切片操作。
栅格切片的数据完整性受损,无法进行属性查询等操作。
栅格切片的分辨率通常是固定的,这可能会导致某些区域的数据精度过低,从而影响数据分析和处理的准确性。
矢量切片
矢量切片是将数据按照规则进行裁切并保存,客户端更具需求发送请求,服务器返回对应参数的数据给客户端进行渲染,因此矢量切片对客户端的要求高一点。
相比栅格切片
矢量切片可以保留
Comments