featureJoin


URI

<spatialanalystJobs_uri>/featurejoin[.<format>]

支持的方法

GETPOSTHEAD

父资源

spatialanalystJobs

子资源

featureJoinJob

介绍

要素连接作业资源根目录。通过对 featureJoin 执行GET 请求,可获取当前系统的要素连接作业列表。通过 POST 请求可创建一个要素连接任务。

支持的方法:

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

资源层次

HTTP 请求方法

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

http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin.rjson

GET 请求

获取要素连接作业列表。

响应结构

对 featureJoin 资源执行 GET 请求,在响应消息的实体主体里是一个要素连接资源描述集,其中单个资源描述的结构如下:  

字段 类型 说明
id String 应用ID。
state SparkJobState 该任务的状态。包括执行状态、起止时间、耗时等。
setting SparkJobSetting 列举了任务配置的详细信息。

响应示例

对 featureJoin 资源执行 GET 请求,返回 rjson 格式的资源描述如下:

{

    "id": "600b8484_92ac_49df_89c9_6557c2113a2b",

    "setting": {

        "DEFAULT_MASTER_ADRESS": "local[*] ",

        "analyst": {

            "attributeMode": "NotEqual",

            "attributeRelationship": "BSM",

            "datasetFeatureJoin": "smtiles_FeatureJoin_XZQ",

            "inputJoin": "{\"specFields\":[\"SMID\",\"ST\",\"ET\"],\"type\":\"udb\",\"info\":[{\"server\":\"C:\\\\Users\\\\Administrator\\\\Desktop\\\\要素连接\\\\data\\\\FeatureJoin.udb\",\"datasetNames\":[\"XZQ\"]}]}",

            "joinFields": "KZMJ",

            "joinOperation": "JoinOneToMany",

            "resultFieldNames": null,

            "spatialNearDistance": "1",

            "spatialNearDistanceUnit": "kilometer",

            "spatialRelationship": "near",

            "specFields": "SMID,ST,ET",

            "summaryFields": null,

            "summaryMode": null,

            "temporalNearDistance": "1",

            "temporalNearDistanceUnit": "hour",

            "temporalRelationship": "near"

        },

        "appName": "featureJoinAnalyst",

        "args": [

            "--inputTarget",

            "{\"sliceNum\":20,\"specFields\":[\"SMID\",\"ST\",\"ET\"],\"type\":\"udb\",\"info\":[{\"server\":\"C:\\\\Users\\\\Administrator\\\\Desktop\\\\要素连接\\\\data\\\\FeatureJoin.udb\",\"datasetNames\":[\"DLTB\"]}]}",

            "--inputJoin",

            "{\"specFields\":[\"SMID\",\"ST\",\"ET\"],\"type\":\"udb\",\"info\":[{\"server\":\"C:\\\\Users\\\\Administrator\\\\Desktop\\\\要素连接\\\\data\\\\FeatureJoin.udb\",\"datasetNames\":[\"XZQ\"]}]}",

            "--joinOperation",

            "JoinOneToMany",

            "--joinFields",

            "KZMJ",

            "--spatialRelationship",

            "near",

            "--spatialNearDistance",

            "1",

            "--spatialNearDistanceUnit",

            "kilometer",

            "--temporalRelationship",

            "near",

            "--temporalNearDistance",

            "1",

            "--temporalNearDistanceUnit",

            "hour",

            "--attributeRelationship",

            "[BSM,NotEqual]",

            "--output",

            "{\"server\":\"192.168.120.21\",\"password\":\"supermap\",\"database\":\"supermap\",\"datasetName\":\"analystResult_635774468\",\"blockingWrite\":null,\"type\":\"pg\",\"user\":\"postgres\"}"

        ],

        "contextSetting": null,

        "input": {

            "datasetInfo": {

                "available": true,

                "bounds": "Left=3.8385244968896E7,Bottom=3943626.398848,Right=3.8390388268116E7,Top=3946482.966666",

                "datasetName": "DLTB",

                "datasetType": "REGION",

                "epsgCode": 2362,

                "name": "smtiles_FeatureJoin_DLTB",

                "readOnly": false,

                "type": "UDB",

                "url": "C:\\Users\\Administrator\\Desktop\\要素连接\\data\\FeatureJoin.udb"

            },

            "datasetName": "smtiles_FeatureJoin_DLTB",

            "numSlices": 0,

            "specField": "SMID,ST,ET"

        },

        "mainClass": "com.supermap.bdt.main.FeatureJoinMain",

        "output": {

            "datasetName": "analystResult_635774468",

            "datasourceInfo": {

                "alias": "supermap_pg",

                "connect": true,

                "dataBase": "supermap",

                "driver": "PostgreSQL ANSI",

                "engineType": "POSTGRESQL",

                "exclusive": false,

                "openLinkTable": false,

                "password": "supermap",

                "readOnly": false,

                "server": "192.168.120.21",

                "user": "postgres"

            },

            "outputPath": "F:\\1.package\\20171025\\supermap_iserver_901_15425_4681_win64_zip\\webapps\\iserver\\processingResultData\\Analyst\\600b8484_92ac_49df_89c9_6557c2113a2b\\featureJoinAnalyst.smwu",

            "type": "pg"

        },

        "serviceInfo": {

            "targetDataPath": "F:\\1.package\\20171025\\supermap_iserver_901_15425_4681_win64_zip\\webapps\\iserver\\processingResultData\\Analyst\\600b8484_92ac_49df_89c9_6557c2113a2b\\featureJoinAnalyst.smwu",

            "targetServiceInfos": [

                {

                    "serviceAddress": "http://supermapiserver:8090/iserver/services/map-featureJoinAnalyst13/rest",

                    "serviceType": "RESTMAP"

                },

                {

                    "serviceAddress": "http://supermapiserver:8090/iserver/services/data-featureJoinAnalyst13/rest",

                    "serviceType": "RESTDATA"

                }

            ]

        },

        "serviceRoot": "http://supermapiserver:8090/iserver/services/",

        "sparkLogFile": null

    },

    "state": {

        "elapsedTime": 18188,

        "endState": true,

        "endTime": 1509007481687,

        "errorMsg": null,

        "errorStackTrace": null,

        "publisherelapsedTime": 2840,

        "runState": "FINISHED",

        "startTime": 1509007454998

    }

}

POST 请求

创建一个要素连接任务。

请求参数

对 featureJoin 资源执行 POST 请求,创建一个 要素连接任务,请求体需包含参数如下:

名称 类型 含义

input

【必填参数】

DatasetInputDataSetting
  • 数据集输入设置,当输入数据是一个数据目录服务中已存在的数据集时,用该设置。其中包含如下字段
    • datasetName:数据集名称。其中数据集的来源包括通过数据目录服务导入的数据、注册到 iServer 的数据对应的数据集以及 DataStore 中存储的数据集。
    • specField:源数据集时间属性字段。
  • 数据集信息输入设置,当输入数据集文件路径及信息时,用该设置。其中包含如下字段
    • datasetInfo:数据集信息。其中数据集的来源包括:csv文件、udb文件、空间数据库。详细参数说明请参考:大数据分析输入参数设定
    • specField:源数据集时间属性字段
 FileCSVInputDataSetting
  • 文件路径输入设置。 当输入数据集文件路径时,用该设置。其中包含如下字段。
    • filePath:文件所在路径。其中路径包括:csv文件路径、hdfs文件路径。 详细参数说明请参考:大数据分析输入参数设定
    • metaInfo:数据文件的元信息。若该数据存放目录下包含 .meta 文件,则此参数可不填。

analyst

FeatureJoinAnalystSetting 【必填参数】分析配置。传入时,需指定:
  • datasetFeatureJoin:连接数据集,满足关联条件的数据将被连接到目标数据,支持点、线、面类型
  • joinOperation:连接方式
      • JoinOneToOne:有多个连接对象和一个目标对象满足关联条件,多个连接对象将通过属性统计聚合成一个对象。
      • JoinOneToMany:有多个连接对象和一个目标对象满足关联条件,多个连接对象的属性都将被连接到目标对象,形成多个结果对象,并且不会进行属性统计。
  • joinFields:连接字段,连接数据需要追加到目标数据的字段,字段来自inputJoin数据,只有当 joinOperation 为 JoinOneToOne 时会取众数,即出现最多的数,非系统字段。
  • 空间要素连接
      • spatialRelationship:空间关联条件

          • 目标数据为面类型时
              • 连接数据为面类型时:支持contain,disjoint,intersect,touch,near,within,overlap,identity。
              • 连接数据为线类型时:支持contain,disjoint,intersect,touch,near。
              • 连接数据为点类型时:支持contain,disjoint,intersect,touch,near。
          • 目标数据为线类型时
              • 连接数据为面类型时:支持cross,disjoint,intersect,touch,within,near。
              • 连接数据为线类型时:支持contain,cross,disjoint,identity,intersect,overlap,touch,within,near。
              • 连接数据为点类型时:支持contain,disjoint,intersect,touch,near。
          • 目标数据为点类型时
              • 连接数据为面类型时:支持disjoint,intersect,touch,within,near。
              • 连接数据为线类型时:支持disjoint,intersect,touch,within,near。
              • 连接数据为点类型时:支持contain,disjoint,identity,intersect,within,near。
      • spatialNearDistance:空间距离,仅当spatialRelationship为near时有效.
      • spatialNearDistanceUnit:空间距离单位,仅当spatialRelationship为near时有效。可选值:meter,kilometer,yard,foot,mile。(默认值:meter)
  • 时间要素连接
      • specFields:连接数据集时间属性字段,当进行时间条件关联时,该字段为必填字段,字段中需要包含ID,开始时间和结束时间。
      • temporalRelationship:时间关联条件。可选值:after,before,contain,during,finishes,meets,near,finishedby,metby,overlap,overlappedby,start,startedby,equal。
      • temporalNearDistance:时间距离,仅当temporalRelationship为near时有效
      • temporalNearDistanceUnit:时间距离单位,仅当temporalRelationship为near时有效。可选值:millisecond,second,minute,hour,day,week,month,year。(默认值: millisecond)
  • 属性要素连接
      • attributeRelationship:属性关联字段,需填写两个。来源于目标数据集和连接数据集。(字段类型要保持一致)
      • attributeMode:属性关联条件,可选值为:相等、不相等。
  • summaryFields:属性统计字段,要求统计的字段必须包含joinFields中,如果没有设置该选项,但设置了joinOperation为JoinOneToOne,默认统计连接对象的个数。
  • summaryMode:属性统计模式,包括:max,min,average,sum,variance,stdDeviation。个数应与“属性统计字段”个数一致。非必填。
  • tolerance: 结点容限,当使用空间关联条件时设置的结点容限 。
  • mappingParameters:分析后结果可视化的参数类。仅当连接方式为一对一模式且属性统计字段不为空时,该参数类有效。详见MappingParameters说明。  
      • numericPrecision:精度,此字段用于设置分析结果标签专题图中标签数值的精度,如“1”表示精确到小数点的后一位。(默认值:1)
      • rangeMode:专题图分段模式。包括:EQUALINTERVAL、LOGARITHM、QUANTILE、SQUAREROOT、STDDEVIATION。
      • rangeCount:专题图分段个数。
      • colorGradientType:专题图颜色渐变模式。包括:GREENORANGEVIOLET、GREENORANGERED、RAINBOW、SPECTRUM、TERRAIN 等。
      • items:专题图子项设置。(可自定义专题图分段个数、颜色渐变模式)

output

【选填参数】

FileSystemOutputSetting
  • 分析结果输出设置。当输出结果到文件时。用该设置。其中包含如下字段
    • type:指定输出类型。
    • datasourcePath :结果数据源的存放路径。其中分析结果可以存放到udb或hdfs中。
    • outputPath:分析结果工作空间输出路径。
DatabaseOutputSetting
  • 分析结果输出设置。当输出结果到数据库(PostgreSQL、PostGIS、MongoDB)时。用该设置。其中包含如下字段
    • type:指定输出类型。
    • datasetName:分析结果数据集名称。
    • datasourceInfo:结果数据源的连接信息。详细参数设定请参考:大数据分析输出参数设定

示例1:输入数据集名称

对示例 featureJoin 资源:http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin.json 以输入形式为数据集名称,该数据集已注册到iServer。方式执行POST 请求,创建一个要素连接任务。请求体中的参数如下:

{

    "input": {

        "datasetName": "smtiles_FeatureJoin_DLTB"

    },

    "analyst": {

        "datasetFeatureJoin": "smtiles_FeatureJoin_XZQ",

        "joinOperation": "JOINONETOONE",

        "joinFields": "KZMJ",

        "mappingParameters": {

            "numericPrecision": 2

        },

        "spatialRelationship": "NEAR",

        "spatialNearDistance": "1",

        "spatialNearDistanceUnit": "KILOMETER",

        "tolerance": "0.0001",

        "summaryFields": "KZMJ",

        "summaryMode": "max"

    }

}

返回 rjson 格式的操作结果表述如下:

{

  "postResultType": "CreateChild",

  "newResourceID": "a39624cf_9a74_484f_a334_c1da1ae71811",

  "succeed": true,

  "newResourceLocation": "http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin/a39624cf_9a74_484f_a334_c1da1ae71811"

}

示例2:输入 PostgreSQL 中存储的数据

对示例 featureJoin 资源:http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin.json 执行 POST 请求,输入数据为存储于PostgreSQL 数据库的数据。 创建一个要素连接任务。请求体中的参数如下:

{

    "input": {

        "datasetName": "DLTB_522316171",

        "datasourceConnectionInfo": {

            "engineType": "POSTGRESQL",

            "dataBase": "supermap",

            "password": "supermap",

            "user": "postgres",

            "server": "192.168.120.21"

        }

    },

    "analyst": {

        "datasetFeatureJoin": "XZQ_522316171",

        "joinOperation": "JOINONETOONE",

        "joinFields": "KZMJ",

        "mappingParameters": {

            "numericPrecision": null

        },

        "spatialRelationship": "NEAR",

        "spatialNearDistanceUnit": "KILOMETER"

    }

}

返回 rjson 格式的操作结果表述如下:

{

  "postResultType": "CreateChild",

  "newResourceID": "8a532ad1_45df_4ea6_8a66_e79553117f42",

  "succeed": true,

  "newResourceLocation": "http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin/8a532ad1_45df_4ea6_8a66_e79553117f42"

}

示例3:输入数据集名称,参数中增加色带枚举值

对示例 featureJoin 资源:http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin.json 以输入形式为数据集名称,该数据集已注册到iServer,参数中增加色带枚举值。默认输出。方式执行POST 请求,创建一个要素连接任务。请求体中的参数如下 :

{

    "input": {

        "datasetName": "feature_FeatureJoin_DLTB"

    },

    "analyst": {

        "datasetFeatureJoin": "feature_FeatureJoin_XZQ",

        "joinOperation": "JOINONETOONE",

        "joinFields": "BSM",

        "mappingParameters": {

            "numericPrecision": 4,

            "rangeMode": "SQUAREROOT",

            "rangeCount": "5",

            "colorGradientType": "GREENORANGERED"

        },

        "spatialRelationship": "NEAR",

        "spatialNearDistance": "1",

        "spatialNearDistanceUnit": "KILOMETER",

        "tolerance": "0.0001",

        "summaryFields": "BSM",

        "summaryMode": "min"

    }

}

返回 rjson 格式的操作结果表述如下:

{

    "postResultType": "CreateChild",

    "newResourceID": "bfb7661e_6160_4a98_aef8_d76f7193a6f8",

    "succeed": true,

    "newResourceLocation": "http://supermapiserver:8090/iserver/services/distributedanalyst/rest/v1/jobs/spatialanalyst/featurejoin/bfb7661e_6160_4a98_aef8_d76f7193a6f8"

}

HEAD 请求

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

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

请参见