KML Placemark模板

介绍

在KML中,“Placemark”用于标记地图上的位置,通常用黄色图钉可视化。一个地标可以有一个“描述”,允许人们将信息附加到它上面。Placemark描述只不过是一个HTML片段,可以包含我们希望它包含的任何内容。

默认情况下,geoserver生成placemark描述,这些描述是HTML表,描述数据集中特定功能可用的所有属性。在下图中,我们看到了表示爱达荷州的功能的位置标记描述:

../../../../../_images/default.jpg

默认位置标记

这很好,但是如果一个人想要在描述中传达其他类型的信息呢?或者您可能不想显示数据集的所有属性。答案是模板!你看!

模板或多或少是一种创建输出的方法。

入门

首先让我们开始准备。要完成本教程,您需要以下内容:

  • 地理服务器安装

  • 文本编辑器

就这样。对于本教程,我们将假定geoserver运行的配置(数据目录)与开箱即用的配置(数据目录)相同。

你好世界

好了,是时候开始创建我们的第一个模板了。我们将从一个非常简单的模板开始,您猜对了,它创建了一个位置标记描述“hello world!”我们走吧。

  1. 使用您选择的文本编辑器启动一个名为 description.ftl

  2. 将以下内容添加到文件:

    Hello World!
    
  3. 将文件保存到 workspaces/topp/states_shapefile/states “数据目录”的目录。数据目录是所有地理服务器配置文件的位置。它通常由环境变量指向 GEOSERVER_DATA_DIR .

  4. 启动geoserver是否尚未运行。

就这样。我们现在可以通过在Google Earth中添加以下网络链接来测试我们的模板:

http://localhost:8080/geoserver/wms/kml?layers=states

瞧。你的第一个模板

../../../../../_images/helloworld.png

你好,世界模板。

刷新模板 :模板的一个很好的方面是,可以根据每个请求读取它们。因此,只需在适当的位置编辑模板,并在保存文件后立即让geoserver提取模板。因此,在编辑和保存模板后,只需“刷新”谷歌地球上的网络链接,就可以获取新的内容。

../../../../../_images/refresh.png

刷新模板

如前所述,模板描述只不过是HTML。玩儿 description.ftl 并添加一些您自己的HTML。您可能需要尝试的一些示例:

  1. 到组织主页的简单链接:

    Provided by the <a href="http://topp.openplans.org">The Open Planning Project</a>.
    

Topp主页

../../../../../_images/topplink.png

Topp主页

  1. 贵组织的徽标:

    <img src="http://topp.openplans.org/images/logo.jpg"/>
    

Topp标志

../../../../../_images/topplogo.png

Topp标志

可能性是无限的。现在这一切都很好,但是这些例子中缺少的是内容是静态的。在下一节中,我们将创建更真实的模板,它实际上访问了我们的数据集的一些属性。

数据内容

模板的真正功能是能够轻松访问内容,在功能的情况下,此内容是功能的属性。在kml placemark描述模板中,有许多“模板变量”可用。

  • 变量“fid”,对应于功能的ID

  • 变量“type name”,与功能类型的名称相对应。

  • 与特征属性相对应的变量序列,每个变量的名称与该属性的名称相同。

因此,有了这些知识,让我们再举几个例子:

简单的fid/typename访问:

This is feature ${fid} of type ${typeName}.

这是3.1类型状态的一个特性。

../../../../../_images/fid.png

FID

访问两个名为 STATE_NAMEPERSONS ::

This is ${STATE_NAME.value} state which has a population of ${PERSONS.value}.

ID这是爱达荷州,人口为1.006.749。

../../../../../_images/attributes.png

属性

属性变量

特征属性“复杂对象”,由三部分组成:

  1. 一个值 ,作为实际属性值的默认字符串表示,可以直接使用

  2. 一个rawvalue ,作为属性的实际值,以允许更专门的自定义(例如, ${{attribute.value?string("Enabled", "Disabled")}} 用于布尔属性的自定义表示等)。

  3. 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描述来复制这个。

  1. featureTypes/DS_poi_poi 地理服务器数据目录的目录创建以下模板::

    <img src="http://localhost:8080/geoserver/popup_map/${THUMBNAIL.value}"/>
    
  2. 在Google Earth中添加以下网络链接:

    http://localhost:8080/geoserver/wms/kml?layers=tiger:poi
    

Poi.4

../../../../../_images/wmsexample.png

WMS示例

Previous: 教程