URI

<v1_uri>/jobs[.<format>]

Supported methods

GET、POST、HEAD

Parent resource

v1

Child resources

webPrintingJob

Introduction

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

Supported methods:

  • GET:获取当前已经完成和正在执行的 Web 打印任务列表。
  • POST:Creates a Web 打印任务,并返回一个可用于打印的地图文档。
  • HEAD:检查 webPrintingJobs resource exists, or if there is permission to access webPrintingJobs 资源。

Supported output formats:RJSON、JSON、HTML、XML。

GIS Services Resource Hierarchy

HTTP Request Methods

Perform an HTTP request on the following URI, using the rjson output format as an example. Here, supermapiserver is the server name.

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

GET 请求

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

Response structure

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

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

info 对象的结构如下:

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

result 对象的结构如下:

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

Example of response

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

POST 请求

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

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

Request parameters

Parameters in the request body are as follows:

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

 

content 对象的结构如下:

Field Type Definition
type String 【必选参数】 Web 打印内容支持的类型,目前支持的类型:WEBMAP。
url String [Optional] 待打印的 SuperMap iPortal WebMap 的 url 地址。例如:http://supermapiportal:8190/iportal/web/maps/{mapid}/map.rjson。
token String [Optional] 如果待打印的是 SuperMap iPortal 用户私有的 WebMap,需要提供 SuperMap iPortal 用户的 token。
value object [Optional] 传递的是一个符合 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 参数(对象组,每个对象定义打印时的要素样式,支持点、线、面,详见 PointStyle、LineStyle、PolygonStyle)

 

layoutOptions 对象的结构如下:

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

 

scaleBarOptions 对象的结构如下:

Field Type Definition
scaleText String [Optional] 比例尺文本信息,例如:1:1000000。
type String [Optional] 比例尺的样式,包括:LINE, BAR, BAR_SUB。
intervals number [Optional] 比例尺条的段数。
unit String [Optional] 比例尺的单位制,包括:METER, FOOT, DEGREES。

 

northArrowOptions 对象的结构如下:

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

 

littleMapOptions 对象的结构如下:

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

 

image 对象的结构如下:

Field Type Definition
picAsUrl String [Optional] 小地图的图片 url 地址。(暂不支持)
picAsBase64 String [Optional] 小地图的base64位图片信息。(暂不支持)

 

legendOptions 对象的结构如下:

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

 

customItems 对象的结构如下:

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

 

exportOptions 对象的结构如下:

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

请注意:上述请求体参数中涉及的 URL 值均需经过一次编码。字符需要编码的场景包括:

  • URL 中的保留字符若作为普通数据使用(如查询参数值中的 &),需编码为 % 后跟两位十六进制数。例如:!、#、$、%、&、(、)、*、+、,、/、:、;、=、?、@、[、]。
  • 非 ASCII 字符(如中文)需转为 UTF-8 编码后,再将每个字节编码为 % 后跟两位十六进制数。

 

Response structure

Normal response code(s): 201. The response parameters are as follows:

Name Type Description
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/MainRiver_L@China@@LayerGroup.3@@China/legend"
            },
            {
                "name": "省道",
                "picAsUrl": "http://localhost:8090/iserver/services/map-China100/rest/maps/China/layers/Province_L@China@@LayerGroup.3@@China/legend"
            }]
        },
        "littleMapOptions": {
            "center": {
                "x": 12659780.84769,
                "y": 1630935.5331
            },
            "scale": 2.63157894736842E-08,
            "layers": [{
                "layerType": "TILE",
                "name": "China",
                "url": "http://localhost:8090/iserver/services/map-china/rest/maps/China"
            }]
        }
    },
    "exportOptions": {
        "format": "pdf",
        "dpi": 96
    },
    "content": {
        "type": "WEBMAP",
        "value": {
            "maxScale": "1:144447.927",
            "level": 4,
            "center": {
                "x": 12024583.85959379,
                "y": 4101942.0814672136
            },
            "layers": [{
                "layerType": "TILE",
                "name": "China",
                "url": "http://localhost:8090/iserver/services/map-China100/rest/maps/China"
            },
            {
                "layerType": "geojson",
                "geoJson": "{\"features\":[{\"geometry\":{\"coordinates\":[1.2198122336012792E7,2216658.159757303],\"type\":\"Point\"},\"id\":\"1\",\"type\":\"Feature\",\"properties\":{\"GNID\":\"469003\",\"PINYIN\":\"Danzhou Shi\",\"SMLIBTILEID\":\"1\",\"CLASS\":\"AE\",\"FIELD_SMGEOPOSITION\":\"-1\",\"XZNAME\":\"\",\"NAME\":\"儋州市\",\"SMID\":\"1\",\"SMGEOPOSITION\":\"12091392\",\"SMGEOMETRYSIZE\":\"20\",\"SMY\":\"2216658.159757303\",\"SMX\":\"1.2198122336012792E7\",\"SMUSERID\":\"0\"}},{\"geometry\":{\"coordinates\":[1.209478638076297E7,2166477.321680977],\"type\":\"Point\"},\"id\":\"2\",\"type\":\"Feature\",\"properties\":{\"GNID\":\"469007\",\"PINYIN\":\"Dongfang Shi\",\"SMLIBTILEID\":\"1\",\"CLASS\":\"AE\",\"FIELD_SMGEOPOSITION\":\"-1\",\"XZNAME\":\"\",\"NAME\":\"东方市\",\"SMID\":\"2\",\"SMGEOPOSITION\":\"12091412\",\"SMGEOMETRYSIZE\":\"20\",\"SMY\":\"2166477.321680977\",\"SMX\":\"1.209478638076297E7\",\"SMUSERID\":\"0\"}},{\"geometry\":{\"coordinates\":[1.229755878898103E7,2185720.5650938395],\"type\":\"Point\"},\"id\":\"3\",\"type\":\"Feature\",\"properties\":{\"GNID\":\"469002\",\"PINYIN\":\"Qionghai Shi\",\"SMLIBTILEID\":\"1\",\"CLASS\":\"AE\",\"FIELD_SMGEOPOSITION\":\"-1\",\"XZNAME\":\"\",\"NAME\":\"琼海市\",\"SMID\":\"3\",\"SMGEOPOSITION\":\"12091432\",\"SMGEOMETRYSIZE\":\"20\",\"SMY\":\"2185720.5650938395\",\"SMX\":\"1.229755878898103E7\",\"SMUSERID\":\"0\"}},{\"geometry\":{\"coordinates\":[1.228829525462164E7,2131018.920960647],\"type\":\"Point\"},\"id\":\"4\",\"type\":\"Feature\",\"properties\":{\"GNID\":\"469006\",\"PINYIN\":\"Wanning Shi\",\"SMLIBTILEID\":\"1\",\"CLASS\":\"AE\",\"FIELD_SMGEOPOSITION\":\"-1\",\"XZNAME\":\"\",\"NAME\":\"万宁市\",\"SMID\":\"4\",\"SMGEOPOSITION\":\"12091452\",\"SMGEOMETRYSIZE\":\"20\",\"SMY\":\"2131018.920960647\",\"SMX\":\"1.228829525462164E7\",\"SMUSERID\":\"0\"}},{\"geometry\":{\"coordinates\":[1.233343653153952E7,2219489.4440262206],\"type\":\"Point\"},\"id\":\"5\",\"type\":\"Feature\",\"properties\":{\"GNID\":\"469005\",\"PINYIN\":\"Wenchang Shi\",\"SMLIBTILEID\":\"1\",\"CLASS\":\"AE\",\"FIELD_SMGEOPOSITION\":\"-1\",\"XZNAME\":\"\",\"NAME\":\"文昌市\",\"SMID\":\"5\",\"SMGEOPOSITION\":\"12091472\",\"SMGEOMETRYSIZE\":\"20\",\"SMY\":\"2219489.4440262206\",\"SMX\":\"1.233343653153952E7\",\"SMUSERID\":\"0\"}}],\"type\":\"FeatureCollection\"}",
                "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 请求

Returns the same HTTP response headers as a GET request, but without the response body. This allows retrieving meta-information from the response headers without transporting the entire content. The meta-information includes the media type,字符编码,压缩编码,实体内容长度等。

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

See