KML反射镜¶
标准的WMS请求可能很长,也很麻烦。以下是从geoserver请求kml输出的示例:
http://localhost:8080/geoserver/ows?service=WMS&request=GetMap&version=1.1.1&format=application/vnd.google-earth.kml+XML&width=1024&height=1024&srs=EPSG:4326&layers=topp:states&styles=population&bbox=-180,-90,180,90
geoserver包括一种请求kml的替代方法,即使用 KML反射镜 .kml reflector是一个简单的URL编码请求,它对标准WMS请求中的许多参数使用合理的默认值。使用KML反射器,可以将上述请求缩短为:
http://localhost:8080/geoserver/wms/kml?layers=topp:states
使用KML反射镜¶
唯一必需的参数是 layers
参数。语法如下:
http://GEOSERVER_URL/wms/kml?layers=<layer>
在哪里? GEOSERVER_URL
是您的geoserver实例的URL,并且 <layer>
要提供的FeatureType的名称。
下表列出了默认假设:
Key |
Value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[FeatureType的默认样式] |
在指定请求时,可以更改这些默认值中的任何一个。例如,要指定特定的样式,可以附加 styles=population
根据要求:
http://localhost:8080/geoserver/wms/kml?layers=topp:states&styles=population
要指定不同的边界框,请将参数附加到请求::
http://localhost:8080/geoserver/wms/kml?layers=topp:states&bbox=-124.73,24.96,-66.97,49.37
反射镜模式¶
kml反射器可以在三种模式中的一种模式下工作: 刷新 , 超覆层 和 下载 .
通过将以下参数附加到URL来设置模式::
mode=<mode>
在哪里? <mode>
是三种反射模式之一。每个模式的详细信息如下:
Mode |
Description |
|
( 除1.7.1至1.7.5之外的所有版本的默认值 )返回可由Google Earth客户端刷新/更新的动态kml。当缩放/平移停止时,将刷新数据并下载新的数据/图像。此模式可以返回矢量或栅格(放置标记或覆盖)。返回矢量或栅格数据的决定取决于 |
|
( 版本1.7.1到1.7.5的默认值 )将kml作为超级覆盖返回。超级覆盖是KML的一种形式,其中数据被分解成区域。请参见 KML超级覆盖 更多信息。 |
|
返回包含整个数据集的kml。在矢量层的情况下,这将包括一系列kml放置标记。对于栅格图层,这将包括一个单独的kml地面覆盖。这是唯一一种不从服务器动态请求新数据的模式,因此是独立的KML。 |
有关“超级覆盖”模式的详细信息¶
当使用 superoverlay
模式下,有四个附加子模式可供选择,以确定请求数据的方式和时间。通过将以下参数附加到kml reflector请求来设置这些选项:
superoverlay_mode=<submode>
在哪里? <submode>
是以下选项之一:
Submode |
Description |
|
( 违约 )如果原始数据为矢量形式,则始终返回矢量特征;如果原始数据为栅格形式,则始终返回栅格图像。如果这些功能的几何结构非常复杂,这有时会比优化的要差,这会减慢GoogleEarth的速度。 |
|
无论原始数据如何,始终返回栅格图像。这几乎总是更快的,但是在这个视图中所有的向量信息都会丢失。 |
|
根据视图显示矢量或栅格数据。在较高的缩放级别,将显示栅格图像,在较低的缩放级别,将显示矢量特征。由服务器上设置的区域化参数决定何时在矢量和栅格之间切换。请参见 KML地区化 更多信息。 |
|
始终显示栅格和矢量数据。 |