SuperMap 提供的 WebMap 地图规范

发送反馈


SuperMap iPortal 9D(2019) SP1 及以上版本提出了 WebMap 地图规范。WebMap 是一个 JSON 数据模式(JSON Schema),定义了 iPortal 中地图内容的标准格式,无论您想在 iPortal 平台中使用 WebMap REST API 对地图进行任何操作,传递的 JSON 对象都需要符合 WebMap 规范。同时,符合 WebMap 规范的地图可以在 SuperMap 相关产品间使用。例如,您在数据上图模块中创建的一个 WebMap 地图,也可以在数据洞察模块中使用。

接下来将详细介绍 WebMap 规范的类结构,并提供一些示例介绍供您参考。此外,您还可以根据需要点击 WebMap-Schema.json,下载 JSON 数据模式的 WebMap 规范。

属性列表

属性 类型 说明

title

string

【必填属性】

地图的名称。

version

string

【必填属性】

WebMap 规范的版本号,可选常量为 1.0、2.0.0、2.1.0、2.2.1。

projection

string

【必填属性】

地图的投影坐标系,使用 EPSG 或 WKT 的坐标系统描述标准,例如:"EPSG:3857"。

baseLayer

object

【必填属性】

地图的底图,支持添加的底图类型如下:

TiandituLayerInternetMapWMTSLayerWMSLayerTileLayerMapStylerLayer

minScale

string

【必填属性】

地图的最小可见比例尺。当地图的当前显示比例尺小于地图最小可见比例尺时,地图将不显示。

maxScale

string

【必填属性】

地图的最大可见比例尺。当地图的当前显示比例尺大于地图最大可见比例尺时,地图将不显示。

rootURL

string

地图所属的 iPortal 访问地址,使用 Web 打印服务时需获取该属性字段。

需要注意的是,该属性为内部属性,无需填入,仅在访问 http://<server>:<port>/iportal/web/maps/{id}/map.json 时,iPortal 根据读取当前地图所属的 iPortal 访问地址并将其传入响应体中输出。

description

string

【可选属性】
地图描述信息。

layers

array<object>

【可选属性】

地图中叠加的图层,支持添加多种类型的图层对象:

TileLayerHostedTileLayerWMTSLayerWMSLayerMarkerLayerVectorLayerUniqueLayerRangeLayerRankSymbolLayerMigrationLayerHeatLayerMapStylerLayerDataflowPointTrackLayerDataflowHeatLayer

extent

Rectangle2D 【可选属性】
地图的范围。

visibleExtent

array<number>

【可选属性】
当前地图窗口的可视范围,存储可视范围的矩形区域左下角和右上角顶点的坐标值。

level

number

【可选属性】

地图的缩放级别,取值范围为0-22。

center

Point2D

【可选属性】

地图中心点。

grid

Graticule

【可选属性】

添加的经纬网。

示例

  1. 使用 OpenStreetMap 作为底图,叠加一个等级符号专题图图层,创建一个基于 WebMap 规范的地图对象。

{

    "version": "2.2.1",

    "title": "China",

    "description": "",

    "projection": "EPSG:3857",

    "center": {

        "x": 12561308.6318938,

        "y": 4061850.69482617

    },

    "level": 5,

    "extent": {

        "leftBottom": {

            "x": -20037508.3427892,

            "y": -20037508.3427892

        },

        "rightTop": {

            "x": 20037508.3427892,

            "y": 20037508.3427892

        }

    },

    "baseLayer": {

        "layerType": "OSM",

        "name": "OpenStreetMap"

    },

    "layers": [

        {

            "layerType": "VECTOR",

            "name": "全国省会点",

            "visible": true,

            "featureType": "POINT",

            "xyField": {

                "xField": "X",

                "yField": "Y"

            },

            "projection": "EPSG:4326",

            "enableFields": [

                "X",

                "Y",

                "省",

                "省会"

            ],

            "style": {

                "radius": 8,

                "fillColor": "#b8e986",

                "fillOpacity": 0.9,

                "strokeColor": "#ffffff",

                "strokeWidth": 1,

                "strokeOpacity": 1,

                "offsetX": 0,

                "offsetY": 0,

                "type": "BASIC_POINT"

            },

            "visibleScale": {

                "maxScale": "1:2256.999",

                "minScale": "1:591658710.909"

            },

            "dataSource": {

                "type": "PORTAL_DATA",

                "serverId": "979738148",

                "accessType": "DIRECT"

            }

        }

    ],

    "minScale": "1:591658710.909",

    "maxScale": "1:2256.999",

    "grid": {

        "graticule": {

            "extent": [

                -20037508.3427892,

                -20037508.3427892,

                20037508.3427892,

                20037508.3427892

            ],

            "strokeColor": "#F6C158",

            "strokeWidth": 2,

            "lineDash": [

                0.5,

                4

            ],

            "interval": [

                5

            ],

            "lonLabelStyle": {

                "fontFamily": "Calibri,sans-serif",

                "textBaseline": "bottom",

                "fill": "#000000",

                "outlineColor": "rgba(255,255,255,0.85)",

                "outlineWidth": 3,

                "fontSize": "12px"

            },

            "latLabelStyle": {

                "fontFamily": "Calibri,sans-serif",

                "textBaseline": "bottom",

                "fill": "#000000",

                "outlineColor": "rgba(255,255,255,0.85)",

                "outlineWidth": 3,

                "fontSize": "12px"

            }

        }

    }

}

  1. 访问 http://127.0.0.1:8190/iportal/web/maps/1481260482/map.json,读取基于 WebMap 规范的地图对象的类结构信息。

{

    "extent": {

        "leftBottom": {

            "x": -20037508.3427892,

            "y": -20037508.3427892

        },

        "rightTop": {

            "x": 20037508.3427892,

            "y": 20037508.3427892

        }

    },

    "maxScale": "1:2256.999",

    "level": 5,

    "center": {

        "x": 12561308.6318938,

        "y": 4061850.69482617

    },

    "baseLayer": {

        "layerType": "OSM",

        "name": "OpenStreetMap"

    },

    "layers": [

        {

            "layerType": "VECTOR",

            "visible": true,

            "visibleScale": {

                "maxScale": "1:2256.999",

                "minScale": "1:591658710.909"

            },

            "name": "全国省会点",

            "featureType": "POINT",

            "xyField": {

                "xField": "X",

                "yField": "Y"

            },

            "style": {

                "fillColor": "#b8e986",

                "strokeWidth": 1,

                "offsetX": 0,

                "offsetY": 0,

                "fillOpacity": 0.9,

                "radius": 8,

                "strokeColor": "#ffffff",

                "type": "BASIC_POINT",

                "strokeOpacity": 1

            },

            "projection": "EPSG:4326",

            "enableFields": [

                "X",

                "Y",

                "省",

                "省会"

            ],

            "dataSource": {

                "accessType": "DIRECT",

                "type": "PORTAL_DATA",

                "serverId": "979738148"

            }

        }

    ],

    "description": "",

    "projection": "EPSG:3857",

    "minScale": "1:591658710.909",

    "title": "China",

    "version": "2.2.1",

    "rootUrl": "http://127.0.0.1:8190/iportal/services/../"

}