<address_uri>/geocoding[.<format>]
geocoding 资源表示地址匹配中的正向匹配功能。通过对 geocoding 执行 GET 请求,可以根据地点名称关键词(如“中学”)查找地址位置。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。
http://supermapiserver:8090/iserver/services/address-school/restjsr/address/geocoding.rjson
获取地址匹配结果。
对 geocoding 资源执行 GET 请求,需要在 URI 中包含一些参数,如下:
名称 | 类型 | 含义 |
address | String | 【必填参数】
将查询的地点关键词,例如“中学” |
fromIndex | int | 设置返回对象的起始索引值,结果中包含起始索引值的对象。 |
toIndex | int | 设置返回对象的结束索引值,结果中不包含结束索引值的对象。 |
maxReturn | int | 显示匹配结果的最大数量 。默认值 -1,表示显示所有返回结果。 |
filters | String[] | 设置分组参数。用于限定查询范围,如果不设置此参数,则返回所有符合条件的地点。filters 中输入的值依照 filterFields (分组字段)中设置的字段。在服务配置文件中指定 filterFields 参数,指定后,filters 中需填入指定字段的值,否则 filters 设置无效。例如配置文件中 filterFields 为“省,地区,市”,则 filters 参数需输入上述字段的值,如["新疆维吾尔自治区","喀什地区","喀什市"],也可只输入其中的一或两个值。 |
prjCoordSys | PrjCoordSys | 查询结果的坐标系 |
对 geocoding 资源执行 GET 请求,在响应消息的实体主体里是一个地址匹配结果描述集,其中单个匹配结果描述的结构如下:
字段 | 类型 | 说明 |
address | String | 查询地点的名称。地点名称是由多个字段组成,每个字段表示一级行政区划层级或街道地址等。您可以在服务配置文件中,通过 searchFields 参数设置字段顺序。 |
filters | String[] | 传入的分组参数。 |
location | Point2D | 查询地点的位置坐标 |
score | double | 匹配度分值 |
对 geocoding 资源执行 GET 请求,查询北京市,石景山区内的公司地址:http://localhost:8090/iserver/services/addressmatch-Address/restjsr/v1/address/geocoding.rjson?address=公司&fromIndex=0&toIndex=10&maxReturn=-1,返回 rjson 格式的资源描述如下:
[
{
"score": 77.5,
"address": "北京市西城区广安门南街甲12号中国万宝工程公司",
"location": {
"x": 1.2952105755649155E7,
"y": 4848993.958934497
},
"filters": [
"\u001a\u001a\u001a",
"西城区"
]
},
{
"score": 77.5,
"address": "北京市石景山区八大处高科技园区西井路3号3号楼1275室北京正业广告公司",
"location": {
"x": 1.2934101368439503E7,
"y": 4856476.012902215
},
"filters": [
"\u001a\u001a\u001a",
"石景山区"
]
},
{
"score": 77.5,
"address": "北京市石景山区八大处高科技园区实兴东街1号4485北京威智广告公司",
"location": {
"x": 1.293359106878529E7,
"y": 4856953.536161511
},
"filters": [
"\u001a\u001a\u001a",
"石景山区"
]
},
{
"score": 77.5,
"address": "北京市海淀区西北旺镇东北旺南路1号院005室北京博达电子公司",
"location": {
"x": 1.2945979404218232E7,
"y": 4871539.883969367
},
"filters": [
"\u001a\u001a\u001a",
"海淀区"
]
},
{
"score": 77.5,
"address": "北京市海淀区增光路21号中国昆仑工程公司",
"location": {
"x": 1.2949852863360815E7,
"y": 4855512.915839573
},
"filters": [
"\u001a\u001a\u001a",
"海淀区"
]
},
{
"score": 77.5,
"address": "北京市清华东路25号中国教育电子公司",
"location": {
"x": 1.295222915343323E7,
"y": 4866084.458355203
},
"filters": [
"\u001a\u001a\u001a",
"海淀区"
]
},
{
"score": 77.5,
"address": "北京市海淀区复兴路47号天行建商务大厦1703室北京雷音技术公司",
"location": {
"x": 1.2946538219193703E7,
"y": 4852554.411179034
},
"filters": [
"\u001a\u001a\u001a",
"海淀区"
]
},
{
"score": 77.5,
"address": "北京市海淀区阜成路8号东4区航天时代仪器公司",
"location": {
"x": 1.2948393874669973E7,
"y": 4854775.575482044
},
"filters": [
"\u001a\u001a\u001a",
"海淀区"
]
},
{
"score": 77.5,
"address": "北京市朝阳区酒仙桥东路1号M3楼北京海光仪器公司",
"location": {
"x": 1.2968871484502489E7,
"y": 4862471.973654436
},
"filters": [
"\u001a\u001a\u001a",
"朝阳区"
]
},
{
"score": 77.5,
"address": "北京市朝阳区大屯路科学园南里风林绿洲I乙号楼2204号(电子城科技园集中办公区042号)北京九阳实业公司",
"location": {
"x": 1.2955592222911282E7,
"y": 4866145.519106197
},
"filters": [
"\u001a\u001a\u001a",
"朝阳区"
]
}
]
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 geocoding 资源是否存在,或者客户端是否有权限访问 geocoding 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 geocoding 资源是否支持<format>格式的表述。