协议¶
有四个命令可用,并在下一节中进行了记录。
每个命令都使用HTTP状态代码来通知错误。
info.json¶
HTTP命令:
GET {PRINT_URL}/info.json?url={PRINT_URL}%2Finfo.json&var=printConfig
返回JSON结构,如下所示:
var printConfig = {
"scales":[
{"name":"25000"},
{"name":"50000"},
{"name":"100000"}
],
"dpis":[
{"name":"190"},
{"name":"254"}
],
"outputFormats":[
{"name":"pdf"},
{"name":"png"}
],
"layouts":[
{
"name":"A4 portrait",
"map":{
"width":440,
"height":483
}
}
],
"printURL":"http:\/\/localhost:5000\/print\/print.pdf",
"createURL":"http:\/\/localhost:5000\/print\/create.json"
}
可以通过这样的HTML脚本标记加载:
<script type="text/javascript"
src="http://localhost:5000/print/info.json?var=printConfig"></script>
或者通过AJAX请求,在本例中 var
查询参数将被忽略。
“url”查询参数用于帮助打印servlet了解浏览器访问servlet所使用的URL。这个参数出现在这里是因为servlet可以位于代理之后,隐藏真实的URL。
print.pdf¶
HTTP命令:
GET {PRINT_URL}/print.pdf?spec={SPEC}
or
POST {PRINT_URL}/print.pdf with {SPEC} in the request body
“spec”参数是这样的JSON结构:
{
layout: 'A4 portrait',
...CUSTOM_PARAMS...
srs: 'EPSG:4326',
units: 'degrees',
geodetic: false,
outputFilename: 'political-boundaries',
outputFormat: 'pdf',
mergeableParams: {
cql_filter: {
defaultValue: 'INCLUDE',
separator: ';',
context: 'http://labs.metacarta.com/wms/vmap0'
}
},
layers: [
{
type: 'WMS',
layers: ['basic'],
baseURL: 'http://labs.metacarta.com/wms/vmap0',
format: 'image/jpeg'
}
],
pages: [
{
center: [6, 45.5],
scale: 4000000,
dpi: 190,
geodetic: false,
strictEpsg4326: false,
...CUSTOM_PARAMS...
}
],
legends: [
{
classes: [
{
icons: [
'full url to the image'
],
name: 'an icon name',
iconBeforeName: true
}
],
name: 'a class name'
}
]
}
在地图上显示的位置可以用 中心 和A 规模 作为表演或与 bbox 就像这样:
bbox: [5, 45, 6, 46]
打印模块将使用最近的比例,并确保纵横比保持正确。
可将大地测量参数设置为真,以便正确计算大地测量层的比例尺。某些投影(例如Google和Latlong)基于一个球体,因此需要 大地测量:真 以便正确计算比例尺。如果大地测量参数不存在,则假定为假。
这个 _optional_ 可以将strictEpsg4326参数设置为true,以控制如何解释EPSG:4326。对于WMS 1.3.0版GetMap请求,需要如此。有关EPSG4326的历史和混乱的一些链接,请参见https://www.google.ch/search?q=epsg+4326+latitude+longitude+order&oq=epsg+4326+&aqs=chrome.3.69i57j0l5.5996j0j4&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8。
outputfilename参数是可选的,如果省略,则将使用服务器配置中使用的值。如果存在,它将是下载文件的名称。如果不在参数中保留后缀,则将添加后缀。如果需要,也可以将日期替换为文件名。有关详细信息和示例,请参阅配置的outputfilename。
outputformat参数是可选的,如果省略,将使用值“pdf”。只允许信息中返回的格式。
有两个位置可以添加自定义参数。这些将被Web服务忽略,但可以从布局模板访问。
当服务器相同时(例如WMS),某些层类型支持将更多层请求合并为一个请求。对于这些,可以使用mergeableparams部分为一些自定义参数定义合并策略。默认规则是合并具有相同自定义参数的层。使用mergeableparams,可以使用给定的分隔符和默认值(如果某些层缺少参数)来联接定义的参数值。可合并参数可以有一个上下文,即它们可以用于的基URL(如果没有定义,它们将用于每个层)。
对于 层 部分,请查看mapfish.PrintProtocol.SUPPORTED_类型.
此命令直接返回PDF文件。
create.json¶
HTTP命令:
POST {PRINT_URL}/create.json?url={PRINT_URL}%2Fcreate.json
“print.pdf”命令中定义的规范必须包含在文章正文中。
返回这样的JSON结构:
{
getURL: 'http:\/\/localhost:5000\/print\/56723.pdf'
}
返回的URL可用于检索PDF文件。请参见下一节。
{ID}.pdf¶
此命令的URL由“create.json”命令返回。
HTTP命令:
GET {PRINT_URL}/{ID}.pdf
返回PDF。只能在有限的时间内调用,因为随后将删除服务器端临时文件。
一页上有多个地图¶
- 要在一页上打印多个地图,您需要:
在yaml文件的一页中指定多个映射块,每个映射块都具有不同的名称属性值
使用规范中的特定语法将不同的呈现属性绑定到每个图块
这可以指定 _maps_ spec根对象中的对象,每个映射具有不同的键-对象对。密钥将引用yaml文件中定义的映射块名称。对象将包含命名映射的层和srs。另一个 _maps_ 对象必须在页面对象内指定,以描述位置、比例等。
{
...
maps: {
"main": {
layers: [
...
],
srs: 'EPSG:4326'
},
"other": {
layers: [
...
],
srs: 'EPSG:4326'
}
},
...
pages: [
{
maps: {
"main": {
center: [6, 45.5],
scale: 4000000,
dpi: 190,
geodetic: false,
strictEpsg4326: false,
...CUSTOM_PARAMS...
},
"other": {
center: [7.2, 38.6],
scale: 1000000,
dpi: 300,
geodetic: false,
strictEpsg4326: false,
...CUSTOM_PARAMS...
}
}
}
],
...
}
其他配置块已启用多个映射使用。scaleBar块可以绑定到特定的映射,指定与映射名称匹配的名称属性。此外,在文本块中,可以使用$scale.<map name>placeholder打印名称为<mapname>的地图的比例。
图层参数¶
矢量¶
类型:矢量
渲染向量层。几何图形和样式直接来自spec json。
不透明度(默认为
1.0
)geojson(必需)要呈现的geojson
要用作样式名的功能中属性的StyleProperty(默认为“_style”)名称。给定的属性可以直接包含样式对象。
样式(可选)样式词典。一种样式定义为OpenLayers.Feature.Vector.style中的样式。
名称(默认为
vector
)图层名。
WMS¶
类型:WMS
支持WMS协议,可以通过WMS-C服务(tilecache)。
不透明度(默认为
1.0
)baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
层(必需)
样式(可选)
格式(必需)
版本(默认为
1.1.1
)useNativeAngle(默认为false)如果为geoserver,则将map angle转换为customparams.angle,如果为mapserver,则将customparams.map_angle转换为customparams.angle。
WMTS¶
类型:WMT
支持直接使用WMTS瓦片层内容的协议,支持REST或KVP。
两种可能的模式,标准模式或简单模式,简单模式意味着所有左上角都相同。
标准模式:
不透明度(默认为1.0)
baseurl WMTS功能中可用的“resourceurl”。
自定义参数(可选)映射,其他URL参数
层(必需)层名称
版本(默认为
1.0.0
)WMTS协议版本请求编码(默认为
REST
)REST
或KVP
样式(可选)样式名
维度(可选)维度名称列表
参数(可选)维度字典名称(大写)=>值
matrix set(必选)矩阵集的名称
Matrixids(必需)矩阵ID数组,例如:
[{
"identifier": "0",
"matrixSize": [1, 1],
"resolution": 4000,
"tileSize": [256, 256],
"topLeftCorner": [420000, 350000]
}, ...]
格式(可选,必需的id requestEncoding是
KVP
)
简单模式:
base url没有版本的基url。
层(必需)
版本(必需)
请求编码(必需)
REST
tileorigin(必需)
tilesize(必需)
扩展(必需)
决议(必需)
样式(必需)
TilefullExtent(必需)
缩放偏移(必需)
尺寸(可选)
参数(可选)
格式后缀(必需)
TMS系统¶
类型:TMS
支持TMS瓦片布局。
不透明度(默认为1.0)
baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
最大范围(必需)数组,范围坐标
[420000, 30000, 900000, 350000]
tileSize(必需)数组,tile大小,例如。
[256, 256]
格式(必需)
层(必需)
分辨率(必需)分辨率数组
tile origin(可选)对象,tile原点。默认为
0,0
资源:
TMS请求快速介绍:http://geowebcache.org/docs/current/services/tms.html
TMS规范(非官方标准):http://wiki.osgeo.org/wiki/tile_map_service_规范
XYZ公司¶
型号:XYZ
支持瓦片布局z/x/y.<extension>。
不透明度(默认为1.0)
baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
最大范围(必需)数组,范围坐标
[420000, 30000, 900000, 350000]
tileSize(必需)数组,tile大小,例如。
[256, 256]
分辨率(必需)分辨率阵列(必需)分辨率阵列
扩展名(必需)文件扩展名(必需)文件扩展名
TileOrigin(可选)数组,平铺原点,例如
[420000, 350000]
tileOriginCorner公司
tl
或bl
(默认为bl
)Path_Format(可选)用于构建磁贴位置的URL片段。可以支持变量替换
${x}
,${y}
,${z}
和${extension}
。默认为ZZ/x/Y.扩展名格式。你可以使用多个“字母”来表示一个可替换的图案(也就是,${zzzz}
将确保z变量为0填充,以具有至少4个字符的长度)。
操作系统管理¶
类型:OSM
支持OSM瓦片布局。
不透明度(默认为
1.0
)baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
最大范围(必需)数组,范围坐标
[420000, 30000, 900000, 350000]
tileSize(必需)数组,tile大小,例如。
[256, 256]
分辨率(必需)分辨率数组
扩展名(必需)文件扩展名
TileCache¶
类型:Tilecache
支持直接使用tilecache目录内容的协议。
不透明度(默认为
1.0
)baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
层(必需)
最大范围(必需)数组,范围坐标
[420000, 30000, 900000, 350000]
tileSize(必需)数组,tile大小,例如。
[256, 256]
分辨率(必需)分辨率数组
扩展名(必需)文件扩展名
图像¶
类型:图像
不透明度(默认为
1.0
)名称(必需)
baseurl(必需)服务url
范围(必需)
MapServer¶
类型:MapServer
支持MapServer WMS服务器。
不透明度(默认为
1.0
)baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
层(必需)
格式(必需)
KaMap¶
类型:KAMAP
使用kamap tiling方法支持协议
不透明度(默认为
1.0
)baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
地图
组
最大范围(必需)数组,范围坐标
[420000, 30000, 900000, 350000]
tileSize(必需)数组,tile大小,例如。
[256, 256]
分辨率(必需)分辨率数组
扩展名(必需)文件扩展名
KaMapCache¶
类型:kamapcache
支持协议直接与Web可访问的ka-Map缓存进行对话,该缓存是由precache2.php脚本生成的。
不透明度(默认为
1.0
)baseurl(必需)服务url
自定义参数(可选)映射,其他URL参数
地图(必需)
组(必需)
MetatileWidth(必需)
元八度(必需)
单位(必需)
最大范围(必需)数组,范围坐标
[420000, 30000, 900000, 350000]
tileSize(必需)数组,tile大小,例如。
[256, 256]
分辨率(必需)分辨率数组
扩展名(必需)文件扩展名
谷歌¶
类型:google或tiledgoogle
他们使用了谷歌地图静态API,tiledgoogle将只创建一张图片和谷歌瓦片。
谷歌地图阅读器有几个可添加到请求中的自定义参数,它们是:
不透明度(可选,默认为
1.0
)baseurl(必需,应为'http://maps.google.com/maps/api/staticmap')
自定义参数(可选)映射,其他URL参数
MaxExtent(必需,应为
[-20037508.34, -20037508.34, 20037508.34, 20037508.34]
)决议(必需的,应该是
[156543.03390625, 78271.516953125, 39135.7584765625, 19567.87923828125, 9783.939619140625, 4891.9698095703125, 2445.9849047851562, 1222.9924523925781, 611.4962261962891, 305.74811309814453, 152.87405654907226, 76.43702827453613, 38.218514137268066, 19.109257068634033, 9.554628534317017, 4.777314267158508, 2.388657133579254, 1.194328566789627, 0.5971642833948135, 0.29858214169740677, 0.14929107084870338, 0.07464553542435169]
)分机(必需,应为
png
)客户端(可选)
格式(可选)
map type(必需)-要显示的映射类型:http://code.google.com/apis/maps/documentation/staticmaps/maptypes
传感器(可选)-指定请求静态地图的应用程序是否使用传感器来确定用户的位置
语言(可选)-标签语言。
标记(可选)-向地图添加标记:http://code.google.com/apis/maps/documentation/staticmaps/markers
markers: ['color:blue|label:S|46.5195933305192,6.566684726913701']
路径(可选)-添加映射路径:http://code.google.com/apis/maps/documentation/staticmaps/路径
path: 'color:0x0000ff|weight:5|46.5095933305192,6.506684726913701|46.5195933305192,6.526684726913701|46.5395933305192,6.536684726913701|46.5695933305192,6.576684726913701',
保修免责声明和许可¶
作者以“原样”提供这些文件,不作任何明示或暗示的保证。
文件 Creative Common License Attribution-Share Alike 2.5 Generic .
作者:Mapfish开发者。