URI

<geocodeService_uri>/suggest[.<format>]

支持的方法

GETHEAD

父资源

geocodeService

介绍

返回输入文本字符串(英文)的自动完成建议列表。支持如下类型的地址:

  • 子地址或子地址中的一部分,如:3700 Dean Dr #1700, Ventura, Ca
  • 街道地址(需包含街道名称),如:380 New York St, Redlands, CA 92373
  • 街道交叉路口,如:New York St and W Redlands Blvd, Redlands, CA
  • 由名称表示或按类型划分的 POI,如:mount everest 或 coffee
  • 行政地名,如城市、县、州、省或国家/地区名称,如:Seattle, Washington
  • 邮政编码,如:92591

请注意:转发由 10.2 版本 ArcGIS Server 发布的地址匹配服务不支持该资源。

支持的方法:

  • GET:获取地址的自动完成建议列表。
  • HEAD:检查 suggest 资源是否存在,或权限是否可以访问 suggest 资源。

HTTP 请求方法

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

http://supermapiserver:8090/iserver/services/{component}/arcgisrest/geocode/GeocodeServer/suggest.json

GET 请求

获取地址的自动完成建议列表。

请求参数

名称 类型 含义
f String 【必填参数】响应格式,支持 json、pjson
text String 【必填参数】用于查询的文本
returnCollections boolean 返回的结果中是否能包含地址集合,默认为 true

注:集合多针对 POI 类别或常见地点(如 Starbucks)。在响应体中通过 isCollection=true 与非集合(isCollection=false)区分
countryCode String 用于限制返回结果的国家代码。可使用的值包括英文或国家/地区官方语言的国家/地区全名、双字符国家/地区代码或三字符国家/地区代码。

代码列表见:https://developers.arcgis.com/rest/geocode/geocode-coverage
maxSuggestions int 返回匹配建议的最大数量。如果未指定,则默认为 5
category String[] 用于设置过滤的地点或地址类型,从而在指定地址字段中进行匹配而不再返回匹配其他字段的结果。可传入单个或多个类别值,用逗号分隔。
location ArcGISPoint2D 一个点坐标,用于根据候选项与该位置的接近程度来排序,如果搜索区域的坐标系与服务的坐标系不同,则必需设置坐标系。例如:location= { "x" : -109.55, "y" : 25.76}
searchExtent ArcGISEnvelope 一组边界框坐标,用于指定特定搜索区域,如果搜索区域的坐标系与服务的坐标系不同,则必需设置坐标系。例如:

searchExtent= { "xmin" : -109.55, "ymin" : 25.76, "xmax" : -86.39, "ymax" : 49.94}
preferredLabelValues String[] 指定响应体中包含的地址按照何种信息返回。可传入单个或多个类别值,用逗号分隔。

参数值对应于两个组,每组只能提供一个值:City 和 Street 。City 的可选值包括:postalCity(邮政城市) , localCity(本地城市) 和 matchedCity(匹配城市);Street 的可选值包括:primaryStreet(主要街道)和 matchedStreet(匹配街道)。

若 countryCode 或 sourceCountry 为美国时,地址信息将默认按照 postalCity 和 matchedStreet 返回

响应结构

对 suggest 资源执行 GET 请求,返回的资源表述的结构如下 :

字段 类型 说明
suggestions AddressSuggestInfo[] 返回对地址关键词的自动完成建议列表,包括如下字段:

1、text:建议的匹配地址;
2、magicKey:为临时值,用于标识 text;
3、isCollection:返回的结果是否为地址集合。

响应示例

对 suggest 资源:http://supermapiserver:8090/iserver/services/addressmatch-arcgisGeocode/arcgisrest/geocode/GeocodeServer/suggest?text=Guang&maxSuggestions=&category=&countryCode=&searchExtent=&location=&preferredLabelValues=&f=pjson 执行 GET 请求,对 “Guang”进行地址自动建议,返回的 pjson 格式的表述如下:

{
    "suggestions": [
        {
            "magicKey": "dHA9MCNsb2M9NSNsbmc9MCNwbD01I2xicz0xNDo3",
            "isCollection": false,
            "text": "Guangdong Province, CHN"
        },
        {
            "magicKey": "dHA9MCNsb2M9NCNsbmc9MCNwbD00I2xicz0xNDo4",
            "isCollection": false,
            "text": "Guangxi Zhuang Autonomous Region, CHN"
        }
    ]
}

HEAD 请求

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

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

请参见