协议

有四个命令可用,并在下一节中进行了记录。

每个命令都使用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。

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协议版本

  • 请求编码(默认为 RESTRESTKVP

  • 样式(可选)样式名

  • 维度(可选)维度名称列表

  • 参数(可选)维度字典名称(大写)=>值

  • 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

资源:

XYZ公司

型号:XYZ

支持瓦片布局z/x/y.<extension>。

  • 不透明度(默认为1.0)

  • baseurl(必需)服务url

  • 自定义参数(可选)映射,其他URL参数

  • 最大范围(必需)数组,范围坐标 [420000, 30000, 900000, 350000]

  • tileSize(必需)数组,tile大小,例如。 [256, 256]

  • 分辨率(必需)分辨率阵列(必需)分辨率阵列

  • 扩展名(必需)文件扩展名(必需)文件扩展名

  • TileOrigin(可选)数组,平铺原点,例如 [420000, 350000]

  • tileOriginCorner公司 tlbl (默认为 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']
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开发者。

Previous: 配置
Next: FAQ