ArcGIS сервис пакетного геокодирования, как сопоставить ответы и адреса в запросе?

0 голосов
спросил 08 Дек, 17 от cp1 (120 баллов) в категории Программные продукты Esri
На входе сервиса JSON массив с адресами, на выходе - тоже массив, где одному адресу соответствует некоторое число найденных кандидатов. При этом нигде внятно не описано, как именно кандидаты соответствуют исходным адресам.

Документация используется вот эта:

https://developers.arcgis.com/rest/geocode/api-reference/geocoding-geocode-addresses.htm

1 Ответ

0 голосов
ответил 12 Дек, 17 от Grigoriy (121,760 баллов)

JSON response

{
"spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
},
"locations": [
  {
   "address": "380 New York St, Redlands, California, 92373",
   "location": {
    "x": -117.19567031799994,
    "y": 34.056488119000051
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "380 New York St, Redlands, California, 92373",
    "LongLabel": "380 New York St, Redlands, CA, 92373, USA",
    "ShortLabel": "380 New York St",
    "Addr_type": "PointAddress",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "380 New York St, Redlands, California, 92373",
    "Phone": "",
    "URL": "",
    "Rank": 20,
    "AddBldg": "",
    "AddNum": "380",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "New York",
    "StType": "St",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "380 New York St",
    "Block": "",
    "Sector": "",
    "Nbrhd": "West Redlands",
    "District": "",
    "City": "Redlands",
    "MetroArea": "Inland Empire",
    "Subregion": "San Bernardino County",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92373",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.1956703176181,
    "Y": 34.056488119308924,
    "DisplayX": -117.1953135,
    "DisplayY": 34.056108000000009,
    "Xmin": -117.1963135,
    "Xmax": -117.19431349999999,
    "Ymin": 34.055108000000011,
    "Ymax": 34.057108000000007,
    "ExInfo": ""
   }
  },
 

оставил комментарий 12 Дек, 17 от cp1 (120 баллов)
Не понял этого ответа. Уточню еще раз: на входе запрос с множеством адресов. На выходе ответ с множеством кандидатов (JSON массив locations). Как узнать, какому из адресов на входе соответствует N-й кандидат в массиве locations?
оставил комментарий 12 Дек, 17 от Grigoriy (121,760 баллов)
https://developers.arcgis.com/rest/geocode/api-reference/geocoding-service-output.htm#ESRI_SECTION1_42D7D3D0231241E9B656C01438209440

ResultID
 
Only returned for geocodeAddresses requests. Each record in a batch geocode response includes a ResultID value, which equals the OBJECTID value of the corresponding input address record. It can be used to join the output fields in the response to the attributes in the original address table
оставил комментарий 12 Дек, 17 от cp1 (120 баллов)
О, вот теперь понятно. Вероятно, у нас какие-то проблемы с настройками, потому что ResultID всегда равен -1.

Спасибо!
оставил комментарий 12 Дек, 17 от Grigoriy (121,760 баллов)
Нужно, чтобы во входящих адресах присутствовало поле OBJECTID - целое уникальное значение.
addresses=
{
    "records": [
        {
            "attributes": {
                "OBJECTID": 1,
                "Address": "380 New York St",
оставил комментарий 13 Дек, 17 от cp1 (120 баллов)
Оно там есть... я поэтому и говорю, что проблема с настройками геокодера.
...