KML Placemark模板¶
介绍¶
在KML中,“Placemark”用于标记地图上的位置,通常用黄色图钉可视化。一个地标可以有一个“描述”,允许人们将信息附加到它上面。Placemark描述只不过是一个HTML片段,可以包含我们希望它包含的任何内容。
默认情况下,geoserver生成placemark描述,这些描述是HTML表,描述数据集中特定功能可用的所有属性。在下图中,我们看到了表示爱达荷州的功能的位置标记描述:
这很好,但是如果一个人想要在描述中传达其他类型的信息呢?或者您可能不想显示数据集的所有属性。答案是模板!你看!
模板或多或少是一种创建输出的方法。
入门¶
首先让我们开始准备。要完成本教程,您需要以下内容:
地理服务器安装
文本编辑器
就这样。对于本教程,我们将假定geoserver运行的配置(数据目录)与开箱即用的配置(数据目录)相同。
你好世界¶
好了,是时候开始创建我们的第一个模板了。我们将从一个非常简单的模板开始,您猜对了,它创建了一个位置标记描述“hello world!”我们走吧。
使用您选择的文本编辑器启动一个名为
description.ftl
将以下内容添加到文件:
Hello World!
将文件保存到
workspaces/topp/states_shapefile/states
“数据目录”的目录。数据目录是所有地理服务器配置文件的位置。它通常由环境变量指向GEOSERVER_DATA_DIR
.启动geoserver是否尚未运行。
就这样。我们现在可以通过在Google Earth中添加以下网络链接来测试我们的模板:
http://localhost:8080/geoserver/wms/kml?layers=states
瞧。你的第一个模板
刷新模板 :模板的一个很好的方面是,可以根据每个请求读取它们。因此,只需在适当的位置编辑模板,并在保存文件后立即让geoserver提取模板。因此,在编辑和保存模板后,只需“刷新”谷歌地球上的网络链接,就可以获取新的内容。
如前所述,模板描述只不过是HTML。玩儿 description.ftl
并添加一些您自己的HTML。您可能需要尝试的一些示例:
到组织主页的简单链接:
Provided by the <a href="http://topp.openplans.org">The Open Planning Project</a>.
Topp主页
贵组织的徽标:
<img src="http://topp.openplans.org/images/logo.jpg"/>
Topp标志
可能性是无限的。现在这一切都很好,但是这些例子中缺少的是内容是静态的。在下一节中,我们将创建更真实的模板,它实际上访问了我们的数据集的一些属性。
数据内容¶
模板的真正功能是能够轻松访问内容,在功能的情况下,此内容是功能的属性。在kml placemark描述模板中,有许多“模板变量”可用。
变量“fid”,对应于功能的ID
变量“type name”,与功能类型的名称相对应。
与特征属性相对应的变量序列,每个变量的名称与该属性的名称相同。
因此,有了这些知识,让我们再举几个例子:
简单的fid/typename访问:
This is feature ${fid} of type ${typeName}.
这是3.1类型状态的一个特性。
访问两个名为 STATE_NAME
和 PERSONS
::
This is ${STATE_NAME.value} state which has a population of ${PERSONS.value}.
ID这是爱达荷州,人口为1.006.749。
属性变量¶
特征属性“复杂对象”,由三部分组成:
一个值 ,作为实际属性值的默认字符串表示,可以直接使用
一个rawvalue ,作为属性的实际值,以允许更专门的自定义(例如,
${{attribute.value?string("Enabled", "Disabled")}}
用于布尔属性的自定义表示等)。A型 ,每个都可以通过
${{<attribute_name>.name}}
,${{<attribute_name>.value}}, ${{<attribute_name>.rawValue}}
,${{<attribute_name>.type}}
分别。其他变量:fid和typename和是直接可用的“简单对象”。
WMS演示示例¶
我们将根据geoserver附带的“wms-example”演示作为最后一个示例的基础。要查看演示,请访问Web浏览器中的http://localhost:8080/geoserver/popup_map/index.html。
您会注意到,将鼠标悬停在地图上的某个点上会显示特定于该点的图像。让我们用kml placemark描述来复制这个。
在
featureTypes/DS_poi_poi
地理服务器数据目录的目录创建以下模板::<img src="http://localhost:8080/geoserver/popup_map/${THUMBNAIL.value}"/>
在Google Earth中添加以下网络链接:
http://localhost:8080/geoserver/wms/kml?layers=tiger:poi
Poi.4