feature 资源表示一个要素。通过 feature 资源可以完成对要素信息的获取,修改和删除(当要素类型为点、线、面、文本、复合数据集或纯属性表数据集时才能修改和删除)。
feature 资源可以通过要素的 ID 号({featureId}) 来获取(URI1),也可以通过要素的索引号来获取(URI2)。
注意:URI2 是一种简化的访问 feature 的 URI,直接在最后把数据源、数据集、要素的索引用“-”连接,快速地确定一个要素。在示意 URI 中,{datasourceIndex}表示数据源索引,{datasetIndex}表示数据集索引,{featureIndex}表示要素索引。例如:http://supermapiserver:8090/iserver/services/data-world/rest/data/feature/0-2-7,就表示索引为0的数据源中,索引为2的数据集下,索引为7的要素,该 URI 同样有 rjson、json、html、xml、kml 五种表述格式。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML、KML、GeoRSS。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。
http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Countries/features/featureid.rjson
获取一个要素的信息,包括属性字段名称列表、属性字段值列表,以及要素对应的几何对象。
对 feature 资源执行 GET 请求,获取要素的信息,可以在 URI 中包含如下参数:
名称 | 类型 | 含义 |
hasGeometry | boolean | 是否获取几何对象的信息,true 表示获取在表述中包含几何对象的信息,false 表示不包含几何对象的信息。默认为 true。 |
当不传参数时,默认地,对 feature 资源执行 GET 请求,得到的表述中会包含几何对象的信息。
对 feature 资源执行 GET 请求,返回的资源表述的结构如下(资源表述在响应消息的实体主体里):
名称 | 类型 | 含义 |
ID | int | 要素的 ID。 |
fieldNames | String[] | 要素的属性字段名集合。 |
fieldValues | String[] | 要素的属性字段值集合。 |
geometry | Geometry | 要素对应的几何对象。 |
对示例 feature 资源执行 GET 请求,以 URI1 为例,不返回几何对象的信息,构建 URI 如下:
http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Countries/features/247.rjson?hasGeometry=false
则返回 ID 为247的要素的资源表述如下:
{
"ID": 247,
"fieldNames": [
"SMID",
"SMSDRIW",
"SMSDRIN",
"SMSDRIE",
"SMSDRIS",
"SMUSERID",
"SMAREA",
"SMPERIMETER",
"SMGEOMETRYSIZE",
"SQKM",
"SQMI",
"COLOR_MAP",
"CAPITAL",
"COUNTRY",
"POP_1994",
"CONTINENT"
],
"fieldValues": [
"247",
"73.62005",
"53.55374",
"134.76846",
"3.8537261",
"0",
"960.4537031350538",
"6.685997649733246E7",
"147412",
"9367281.0",
"3616707.25",
"1",
"北京",
"中华人民共和国",
"1.128139689E9",
"亚洲"
],
"geometry": null
}
修改一个要素(当要素类型为点、线、面、文本、复合数据集或纯属性表数据集时)。需要注意的是,SuperMap 系统字段,即字段名以 SM、sm 开头的字段,是只读字段,不允许被修改。
对 feature 资源执行 PUT 请求,对本要素进行修改,需要在请求体中包含修改后的要素的描述,请求体结构如下:
名称 | 类型 | 含义 |
fieldNames | String[] | 预修订的要素属性字段名集合。SuperMap 系统字段,即字段名以 SM、sm 开头的字段,是只读字段,不允许被修改。 |
fieldValues | String[] | 预修订的要素的属性字段值集合,与 fieldNames 对应。 |
geometry | Geometry | 要素对应的几何对象。 |
对 feature 资源执行 PUT 请求,返回的操作结果表述的结构如下(表述在响应消息的实体主体里):
字段 | 类型 | 说明 |
succeed | boolean | 操作是否成功。 |
error | HttpError | 出错信息,如果操作成功,则没有本字段。 |
对示例 feature 资源:http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Countries/features/247.rjson 执行 PUT 请求,修改 POP_1994 字段的值为 1,600,000,000,即1.6E9,请求体中包含参数如下:
{
"ID": 247,
"fieldNames": [
"POP_1994"
],
"fieldValues": [
"1.6E9"
]
}
则操作成功时,返回 rjson 的操作结果的表述如下:
{"succeed": true}
删除 feature 资源所标识的要素(当要素类型为点、线、面、文本、复合数据集或纯属性表数据集时)。
无。
对 feature 资源执行 DELETE 请求,删除该 feature 资源(也就是一个要素),返回的操作结果的表述结构如下:
字段 | 类型 | 说明 |
succeed | boolean | 删除要素是否成功 |
error | HttpError | 出错信息,如果操作成功,则没有本字段。 |
对示例 feature 资源:http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Countries/features/247.rjson 执行 DELETE 请求,删除 World 数据源 Countries 数据集中 ID 为 247 的要素,在删除成功的情况下,返回的操作结果的表述如下:
{"succeed": true}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 feature 资源是否存在,或者客户端是否有权限访问 feature 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 feature 资源是否支持<format>格式的表述。