webPrintingJobs


URI

<v1_uri>/jobs[.<format>]

支持的方法

GETPOSTHEAD

父资源

v1

子资源

webPrintingJob

介绍

webPrintingJobs 资源是 Web 打印任务列表资源,通过发送 GET 请求,获取当前已经完成和正在执行的 Web 打印任务列表;通过发送 POST 请求,创建一个 Web 打印任务,并返回一个可用于打印的地图文档。

支持的方法:

支持的表述格式:RJSON、JSON、HTML、XML。

资源层次

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。

http://supermapiserver:8090/iserver/services/webprinting/rest/webprinting/v1/jobs.rjson

GET 请求

获取当前已经完成和正在执行的 Web 打印任务列表。

响应结构

对 webPrintingJobs 资源执行 GET 请求,在响应体里是一个 Web 打印任务的描述集,其中单个 Web 打印任务描述的结构如下:

字段 类型 说明
id String Web 打印任务的 id。
info object Web 打印信息类,包含打印内容、布局信息、输出信息等。
status String Web 打印任务的运行状态。
result object Web 打印任务的结果信息。
startTime String Web打印的起始时间。
endTime String Web打印的完成时间。

info 对象的结构如下:

字段 类型 说明
content object Web 打印的内容,例如:WebMap。
layoutOptions object Web 打印的布局选项,包含各种布局元素的设置。
exportOptions object Web 打印的输出选项,包含 DPI、页面大小等。

result 对象的结构如下:

字段 类型 说明
downloadUrl String Web 打印结果的下载链接。
size number Web 打印结果的空间占用,单位:byte。
format String Web 打印输出的格式,目前支持:PNG、PDF。

响应示例

对 webPrintingJobs 资源:http://supermapiserver:8090/iserver/services/webprinting/rest/webprinting/v1/jobs.rjson,执行 GET 请求,返回 rjson 格式的资源描述如下:

POST 请求

创建一个 Web 打印任务,并返回一个可用于打印的地图文档。

创建 Web 打印任务的输入是一段 JavaScript 对象表示法(JSON)格式的文本,描述了 Web 地图的内容、打印布局、输出格式等信息,其中,Web 地图的内容必须符合 SuperMap WebMap 规范,具体请参考:SuperMap 提供的 WebMap 地图规范

请求参数

请求体中需传递如下参数:

名称 类型 含义
content object 【必选参数】
Web 打印的内容,例如:WebMap。
layoutOptions object 【必选参数】
Web 打印的布局选项,包含各种布局元素的设置。
exportOptions object 【必选参数】
Web 打印的输出选项,包含输出格式、DPI等。

 

content 对象的结构如下:

名称 类型 含义
type String 【必选参数】
Web 打印内容支持的类型,目前支持的类型:WEBMAP。
url String 【可选参数】
待打印的 SuperMap iPortal WebMap 的 url 地址。例如:http://supermapiportal:8190/iportal/web/maps/{mapid}/map.rjson。

token

String 【可选参数】
如果待打印的是 SuperMap iPortal 用户私有的 WebMap,需要提供 SuperMap iPortal 用户的 token。

value

object 【可选参数】
传递的是一个符合 SuperMap WebMap 规范的 WebMap 的 JSON 表达,也可以是一个完整的 SuperMap iPortal 数据上图制作的 WebMap 的 json 表达。如果已填了 url 参数,此参数可不传。
注意,除了 SuperMap 提供的 WebMap 地图规范中支持的图层类型外,还支持 geojson 类型的图层,支持的参数类似 VectorLayer 类型图层,具体如下(请求体示例详见示例):
  • layerType:string 类型,必填属性,为固定常量"geojson"
  • geoJson:string 类型,必填属性,为图层中要素对应的 geojson 文件对应的文件路径,如 "file://features.geojson"
  • style:对象类型,表示矢量图层要素的样式与风格。包括 version(版本,string 类型,如 "2")和 * (对象类型,定义要素的渲染方式,包含 symbolizers 参数(对象组,每个对象定义打印时的要素样式,支持点、线、面,详见 PointStyleLineStylePolygonStyle

 

layoutOptions 对象的结构如下:

名称 类型 含义
templateName String 【必选参数】
布局模板的名称。
title String 【必选参数】
地图主标题名称。如果在布局上存在地图主标题文本元素的文本,则该参数为必选,也可以传递空值。
subTitle String 【必选参数】
地图副标题名称。如果在布局上存在地图副标题文本元素的文本,则该参数为必选,也可以传递空值。
author String 【必选参数】
地图作者名称。如果在布局上存在作者文本元素的文本,则该参数为必选,也可以传递空值。
copyright String 【必选参数】
地图版权信息。如果在布局上存在版权文本元素的文本,则该参数为必选,也可以传递空值。
scaleBarOptions object 【可选参数】
地图比例尺选项。如果不传递该参数,则使用默认的比例尺条。
northArrowOptions object 【可选参数】
地图指北针选项。如果不传递该参数,则使用默认的指北针。
littleMapOptions object 【必选参数】
小地图选项。如果布局模板上有小地图元素,则此参数为必选参数,也可以传空值,如果传递空值,则小地图使用主地图的全部图层。
legendOptions object 【必选参数】
图例选项。

 

scaleBarOptions 对象的结构如下:

名称 类型 含义
scaleText String 【可选参数】
比例尺文本信息,例如:1:1000000。
type String 【可选参数】
比例尺的样式,包括:LINE, BAR, BAR_SUB。
intervals number 【可选参数】
比例尺条的段数。
unit String 【可选参数】
比例尺的单位制,包括:METER, FOOT, DEGREES。

 

northArrowOptions 对象的结构如下:

名称 类型 含义

picAsBase64

String 【可选参数】
指北针的base64位图片信息。图片格式支持:png、jpg;图片大小默认为:40px*40px。
picAsUrl String 【必选参数】
指北针的图片 url 地址。图片格式支持:png、jpg、svg;图片大小默认为:40px*40px。建议您将图片放在内置的布局模板文件夹中,此时参数值如:file://NorthArrow.svg。

 

littleMapOptions 对象的结构如下:

名称 类型 含义
scale number 【可选参数】
小地图的比例尺。如果不传递此参数,默认使用主地图的比例尺。
center Point2D 【可选参数】
小地图的中心点。如果不传递此参数,默认使用主地图的中心点。
layerNames String[] 【可选参数】
指定 WebMap中图层名称的列表,用于渲染小地图。
image object 【可选参数】
通过静态图片来表达小地图。(暂不支持)
layers object 【可选参数】
指定 WebMap 中的 layers 图层。
此外,还支持 geojson 类型的图层,支持的参数类似 SuperMap 提供的 WebMap 地图规范中 VectorLayer 类型图层支持的参数,具体如下:
  • layerType:string 类型,必填属性,为固定常量"geojson"
  • geoJson:string 类型,必填属性,为图层中要素对应的 geojson 文件对应的文件路径,如 "file://features.geojson"
  • style:对象类型,表示矢量图层要素的样式与风格。包括 version(版本,string 类型,如 "2")和 * (对象类型,定义要素的渲染方式,包含 symbolizers 参数(对象组,每个对象定义打印时的要素样式,支持点、线、面,详见 PointStyleLineStylePolygonStyle

 

image 对象的结构如下:

名称 类型 含义

picAsUrl

String 【可选参数】
小地图的图片 url 地址。(暂不支持)

picAsBase64

String 【可选参数】
小地图的base64位图片信息。(暂不支持)

 

legendOptions 对象的结构如下:

名称 类型 含义
title String 【可选参数】
图例名称。不传递此参数将不显示图例名称。该参数只与 customItems 参数组合使用。
picAsUrl String 【可选参数】
通过 url 传入图例的图片,建议图片中包含图例名称。例如:http://localhost:8090/iserver/services/map-china400/rest/maps/China/layers/Main_Road_L@China@@China/legend;图片格式支持:png、jpg、svg;图片大小默认为:400px*85px。
picAsBase64 String 【可选参数】
传入图例的base64位图片信息,建议图片中包含图例名称。图片格式支持:png、jpg;图片大小默认为:400px*85px。
customItems object 【可选参数】
自定义一组图例元素,用户可以传入一个 JSON 字符串。

 

customItems 对象的结构如下:

名称 类型 含义
name String 【必选参数】
图例元素的名称。
picAsBase64 String 【可选参数】
图例元素 Base64 格式图片。图片格式支持:png、jpg;图片大小默认为:20px*20px。
picAsUrl String 【可选参数】
图例元素图片的获取地址。例如:http://localhost:8090/iserver/services/map-china400/rest/maps/China/layers/Main_Road_L@China@@China/legend;图片格式支持:png、jpg、svg;图片大小默认为:20px*20px。

 

exportOptions 对象的结构如下:

名称 类型 含义
format String 【必选参数】
Web 打印输出的格式,目前支持:PNG、PDF。
dpi number 【可选参数】
Web 打印输出的分辨率,单位为每英寸点数。默认值为 96 dpi。
scale number 【可选参数】
Web 打印输出的地图比例尺。如果不传递此参数,默认使用主地图的比例尺。
rotation number 【可选参数】
Web 打印输出的地图角度。
center Point2D 【可选参数】
Web 打印输出的地图中心点。如果不传递此参数,默认使用主地图的中心点。

响应结构

正常响应情况:响应码201。响应参数如下:

字段 类型 说明

resourceConfigID

String

打印任务结果资源 ID。
supportedMediaTypes String 打印任务结果支持的媒体类型。
path String 打印任务详细信息 url。
resourceType String 打印任务结果资源类型。
name String 打印任务结果资源名称。

请求示例

对 webPrintingJobs 资源:http://supermapiserver:8090/iserver/services/webprinting/rest/webprinting/v1/jobs.rjson,执行 POST 请求,请求参数如下:

{

    "layoutOptions": {

        "templateName": "A4_landscape",

        "title": "主标题",

        "subTitle": "副标题",

        "author": "作者",

        "copyright": "版权信息",

        "northArrowOptions": {

            "picAsUrl": "file://NorthArrow.svg"

        },

        "scaleBarOptions": {

            "scaleText": "比例尺"

        },

        "legendOptions": {

            "title": "图例",

            "customItems": [

                {

                    "name": "重要设置",

                    "picAsBase64": "iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAIAAABGNLJTAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAJZSURBVChTJZJpT1NBFIZnu3OX9taCQlxCDRqIgCgCRoKNEoUP+g+Qf2gh+sE/IITEiIkkEmgRAlqKARIsdLvLLL7Fk3OTybkzZ3nOS1fel4i1hDFCidKaUiKlNMYcHBwUCgWjDYKCcZi1luEjBPctY9x1JZxY82V9fa9S8V0ZhhnBmdYadxiMUKqvHlBi4a5wVCf+/nVjb2f77M+xJ3gu8LOBzwVlgjHhOI6Urud5vhd4HiM2brXSdvu0elzbP3Qpc7nwpPR9H/X54uKisSZJEmM0IyS6bHz68PHkqBZImUSRUSoXhs12++9FPU4SurK8vFMur62tNZuN67lQd6L6yRlThhIjXamMHhi819ZqZ29/bmFeWGPDbEgp3dr6IYy5e/N2wIQUjBjqCJFxM7uVsuL86dRUcXaWL71byufzw8ND+TC8rNdtknhCSM7RlUrTRqfd198/Wyy+nl/I5sIuSZDpyfe87dobypgGbUyEVohVSr2cg70CBJxZmqTUUvx1vWDw/hCXbidVHW06yipCHd+/NVBwM1mwA2GGbcHBu9VqbWx8w/itKIZ3krgZRReN1mG1ahl2gnpEAB/uO46o1Wrlyu6Nvr5nk9OPxsaA7/Pq6vYuYj8fTk0Dg9JKWBTgBA9+H1Wv9eRfPC9Ojo+HQUaDdG/vnc3NX7UqEI+MjlJMiKVDN1EcYaePJyYejIwI6V40m6fn55DY9MzM+MSTIAgwGDLS5VIpVUpcGUKQ2392aaq6qxZcAVG3VQeNQ4NdAcYx9pow2pVbkqZIgzCEhgOycCFAkzL6D1z3Y7brlOmFAAAAAElFTkSuQmCC"

                },

                {

                    "name": "河流",

                    "picAsUrl":

                        "http://localhost:8090/iserver/services/map-China100/rest/maps/China/layers/River@China@@China/legend"

                    

                },

                {

                    "name": "主干道",

                    "picAsUrl":

                        "http://localhost:8090/iserver/services/map-China100/rest/maps/China/layers/Main_Road_L@China@@China/legend"

                    

                }

            ]

        },

        "littleMapOptions": {

            "center": {

                "x": 12659780.84769,

                "y": 1630935.5331

            },

            "scale": 2.63157894736842E-08,

            "layers": [

                {

                    "layerType": "TILE",

                    "name": "China",

                    "url": "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China"

                }

            ]

        }

    },

    "exportOptions": {

        "format": "pdf",

        "dpi": 96

    },

    "content": {

        "type": "WEBMAP",

        "value": {

            "maxScale": "1:144447.927",

            "level": 4,

            "center": {

                "x": 12024583.8595938,

                "y": 4101942.08146721

            },

            "layers": [

                {

                    "layerType": "TILE",

                    "name": "China",

                    "url": "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China"

                },

                {

                    "layerType": "geojson",

                    "geoJson": "file://features.geojson",

                    "style": {

                        "version": "2",

                        "*": {

                            "symbolizers": [

                                {

                                    "type": "point",

                                    "fillColor": "#00000",

                                    "fillOpacity": 1,

                                    "strokeColor": "#00000",

                                    "strokeOpacity": 1,

                                    "strokeWidth": 1,

                                    "pointRadius": 2

                                }

                            ]

                        }

                    }

                }

            ],

            "description": "",

            "projection": "EPSG:3857",

            "minScale": "1:591658710.909",

            "title": "china_point",

            "version": "2.0.0"

        }

    }

}

返回的 rjson 格式的资源描述如下:

[

    {

        "resourceConfigID": "24310691-6b27-42c5-a64d-8676b5cd5d84@8c9c5dda-fa85-4174-8bd2-e89115ebc565",

        "supportedMediaTypes": null,

        "path": "http://localhost:8090/iserver/services/webprinting/rest/webprinting/v1/jobs/24310691-6b27-42c5-a64d-8676b5cd5d84@8c9c5dda-fa85-4174-8bd2-e89115ebc565",

        "name": "24310691-6b27-42c5-a64d-8676b5cd5d84@8c9c5dda-fa85-4174-8bd2-e89115ebc565",

        "resourceType": null

    }

]

HEAD 请求

返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。

HEAD 请求可以用来判断 webPrintingJobs 资源是否存在,或者客户端是否有权限访问 webPrintingJobs 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 webPrintingJobs 资源是否支持<format>格式的表述。

请参见