URI

<geometryService_uri>/difference[.<format>]

支持的方法

GETPOSTHEAD

父资源

geometryService

介绍

差运算资源表示在几何服务资源中进行的几何图形取差的操作, 此操作在几何数组的每个元素与另一个几何图形(即差异几何)之间进行差运算。通俗来说,即令B为差异几何,对于几何数组中的每一个几何图形A,进行A-B的运算。

支持的方法:

  • GET:获取几何数组与另一几何图形的差。
  • POST:根据给定条件,创建几何数组与另一几何图形的差。
  • HEAD:检查 difference 资源是否存在,或权限是否可以访问 difference 资源。

资源层次

HTTP 请求方法

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

http://supermapiserver:8090/iserver/services/{component}/arcgisrest/Geometry/GeometryServer/difference.json

GET 请求

获取几何数组与另一几何图形的差。

请求参数

名称

类型

含义

f

String

响应格式,支持 json、pjson

geometries

String

【必设参数】 点、多点、折线或多边形组成的数组。 例如:

{

  "geometryType" : "esriGeometryPolyline",

  "geometries" :

  [

    {

      "paths" :

      [

        [[-117,34],[-116,34],[-117,33]],

        [[-115,44],[-114,43],[-115,43]]

      ]

      },

      {

      "paths" :

      [

        [[32.49,17.83],[31.96,17.59],[30.87,17.01],[30.11,16.86]]

      ]

    }

  ]

}

geometry

String

【必设参数】 任意类型的、大小等于或大于 geometries 中元素的单个几何图形。此参数不支持使用简单语法表示。 例如:

{"geometryType" : "esriGeometryPolygon","geometry" : {

  "rings" : [

   [[-117,34],[-116,34],[-117,33],[-117,34]],

   [[-115,44],[-114,43],[-115,43],[-115,44]]

  ]

 }}

响应结构

对 difference 资源执行 GET 请求,返回的是几何图形信息。

字段 类型 说明
geometryType ArcGISGeometryType 几何图形的类型。
geometries ArcPointNoProj[] 坐标构成的点数组。
ArcPolylineNoProj[] 坐标构成的线数组。
ArcPolygonNoProj[] 坐标构成的面数组。

响应示例

对 ArcGIS difference 资源:http://supermapiserver:8090/iserver/services/geometry-vvvv/arcgisrest/Geometry/GeometryServer/difference?geometries={"geometryType":"esriGeometryPolygon","geometries":[{"rings":[[[-72,40],[-71,40],[-71,39],[-72,39],[-72,40]]]},{"rings":[[[-74,37],[-74,41],[-73,41],[-73,37],[-74,37]]]}]}&geometry={"geometryType":"esriGeometryPolygon","geometry":{"rings":[[[-75,39],[-74,40],[-73,39],[-72,40],[-71,39],[-71,38],[-75,38],[-75,39]]]}}&sr=4269&f=pjson 执行 GET 请求,返回 pjson 格式的资源表述如下:

{

    "geometries": [

        {"rings": [[

            [

                -72,

                40

            ],

            [

                -71,

                40

            ],

            [

                -71,

                39

            ],

            [

                -72,

                40

            ]

        ]]},

        {"rings": [

            [

                [

                    -74,

                    37

                ],

                [

                    -74,

                    38

                ],

                [

                    -73,

                    38

                ],

                [

                    -73,

                    37

                ],

                [

                    -74,

                    37

                ]

            ],

            [

                [

                    -74,

                    40

                ],

                [

                    -74,

                    41

                ],

                [

                    -73,

                    41

                ],

                [

                    -73,

                    39

                ],

                [

                    -74,

                    40

                ]

            ]

        ]}

    ],

    "geometryType": "esriGeometryPolygon"

POST 请求

跟 GET 请求结构类似。

HEAD 请求

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

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

请参见