地图管理语言¶
地图标记语言(MapML)是一种基于文本的格式,它允许地图作者将地图信息编码为在Web的统一界面上交换的超文本文档。格式定义仍然是mapsforhtmlw3c社区组正在进行的工作,但是使用该格式的各种工具已经存在,包括基于传单的地图查看器。有关MapML的更多信息,请参阅 Maps for HTML Community Group .
geoserver的mapml模块添加了新的mapml资源以访问在geoserver中配置的WMS和WFS服务。MAPML模块包括对WMS层的样式、瓦片、查询、切分和维度选项的支持,还为WMS GetFeatureInfo和WFS GetFeatures请求提供MAPML输出格式。有关安装和配置MAPML模块的信息,请参阅下文。
安装¶
从 nightly GeoServer community module builds .
警告
确保将扩展的版本与geoserver实例的版本匹配。
将存档的内容提取到
WEB-INF/lib
地理服务器安装目录。
配置¶
可以使用geoserver管理员GUI进行配置。MAPML配置可在 MAPML设置 下一节 发布 正在配置的层或层组的层或层组配置页的选项卡。下面是mapml设置部分,其中填写了一些示例值:

许可证信息¶
将这两个属性放在一起,所有管理员都可以定义 <link rel=license>
MapML头中的元素。下面是生成的XML的一个示例:
<link href=“https://creativecommons.org/licenses/by/4.0/”rel=“license”title=“attribution 4.0 international(cc by 4.0)”/>
- 许可证名称
许可证标题将作为
title
的属性<link rel=license>
MapML头中的元素。- 许可证链接
许可证链接将作为
href
的属性<link rel=license>
元素,并且应该是引用许可证文档的有效URL。
瓦片设置¶
使用瓦片访问层可以提高Web地图的性能。如果在geoserver和浏览器客户端之间使用了tile缓存机制,则情况尤其如此。
- 使用瓦片
如果选中“使用图块”复选框,默认情况下,输出mapml将定义对WMS服务器的基于图块的引用。否则,将使用基于图像的引用。如果图层或图层组在其“图块缓存”配置文件中引用了一个或多个MAPML定义的网格集,则geoserver将生成图块引用,而不是在MAPML文档体中生成WMS GetMap URL。
瓦片缓存¶
在“编辑层”或“编辑层”组页面的“瓦片缓存”选项卡面板中,在页面底部,您将看到分配给层或层组的网格集表。值“wgs84”和“osmtile”等同于epsg:4326和epsg:900913内置的geoWebcache网格集。但是,为了让mapml模块识别这些网格集,必须选择并使用mapml名称。对于新图层或图层组,或新创建的图层或图层组的网格子集,默认情况下会选择MAPML值。对于希望通过MAPML服务启用缓存图块引用的现有层,必须从可用网格集的下拉列表中选择并添加希望支持的值。MAPML的识别值集为“wgs84”(相当于epsg:4326)、“osmtile”(相当于epsg:900913)、“cbmtile”(加拿大地图)和“apstile”(阿拉斯加极地立体图)。

维度配置¶
- Dimension
所选维度(如果有)在mapml中作为具有适当值选项或范围的输入进行播发,如在 尺寸 层配置页的选项卡。仅在中启用维度 尺寸 选项卡可用作选项。
MAPML资源¶
将为任何已发布的WMS层发布MAPML资源。MAPML资源将在以下位置提供:
http://{serverName}/geoserver/mapml/{layerName}/{projectionName}?style={styleName}&transparent={true|false}&format={wmsFormat}
这个 {{layerName}}
是WMS层名称,以及 {{serverName}}
运行Geoserver的服务器的名称或IP地址。这个 {{projectionName}}
必须是MapML支持的投影之一:
OSMTILE
CBMTILE
APSTILE
WGS84
每个URL查询字符串参数都是可选的,但如果提供了这些参数,它们将有效地传递给底层的WMS服务调用。以下是有关参数的一些详细信息:
- style
如果提供,指定的
{{styleName}}
必须与用于图层的可用WMS样式相对应。- transparent
如果提供,必须是
true
或false
. 相同的值传递给基础的WMS服务。如果未提供,则默认为与“不透明”WMS发布层设置相反。- format
如果提供,则必须是有效的WMS格式说明符。如果未提供,则默认为
image/png
.
MAPML可视化¶
安装了MAPML社区模块后,将修改geoserver层预览页面,为每个层和层组添加到MAPML资源的链接。MAPML模块截获的图层预览表中的MAPML链接和一个HTML Web地图页是动态创建的,它引用了MAPML资源:

您可以根据需要向地图添加图层,方法是从图层预览表中拖动链接URL并将其放到另一个图层的mapml预览中。如果一切顺利,您应该可以在地图和图层控件中看到层叠的图层。
目前唯一能够显示MapML的工具是基于传单的MapML客户端。您可以使用npm“bower”包管理工具获得自己的客户机副本。一旦安装了bower,就可以通过在该目录中运行“bower install web map”命令,在您选择的目录中安装web地图客户端。这将在执行命令的目录中创建一个“bower_components”目录。此客户端可以导入到具有 <map>
和 <layer>
元素来引用上面定义的MapML资源。下面是这样一个简单的、自包含的HTML页面示例:
<html>
<head>
<title>MapML Test Map</title>
<meta charset="utf-8" />
<script src="./bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="./bower_components/web-map/web-map.html">
<style>
/* make the map fullscreen */
html, body {
height: 100%;
width: 100%;
overflow: hidden;
}
body {
padding: 0;
margin: 0;
}
map {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<map is="web-map" projection="osmtile" zoom="2" lat="61.209125" lon="-90.850837" controls>
<layer- label="US States" src="http://localhost:8080/geoserver/mapml/topp:states/osmtile?style=population" checked></layer->
</map>
</body>
</html>
在上面的例子中,占位符 topp:states
, localhost:8080
, osmtile
和 population
将需要替换为适当的值,和/或 style
如果不需要,可以从URL中完全删除参数。您还可以在预览页面上“查看源”,查看任何层的标记外观。这段代码可以复制和粘贴而不会造成伤害,您应该尝试一下,看看哪些是有效的,哪些是限制。有关MapML和HTML社区组的Maps的更多信息,请访问http://maps4html.org。