Я запрашиваю ArcGIS Online REST API до Geocode и нормализую адресную строку, которую вводит пользователь, в дискретные данные. Пример нормализованных возвращаемых данных:
VALID (RFC 8259)
Formatted JSON Data
{
"spatialReference":{
"wkid":102100,
"latestWkid":3857
},
"candidates":[
{
"address":"12 Queen Street, Melbourne Central, Melbourne, 1010",
"location":{
"x":19454998.013352692,
"y":-4417395.0764459781
},
"score":100,
"attributes":{
"Match_addr":"12 Queen Street, Melbourne Central, Melbourne, 1010",
"Addr_type":"PointAddress",
"StNumber: 12",
"StName: Queen",
"StType: Street",
"StAddr":"12 Queen Street",
"City":"Melbourne",
"Country: AUS"
},
"extent":{
"xmin":19454886.693861898,
"ymin":-4417534.1797140706,
"xmax":19455109.33284349,
"ymax":-4417255.9749970241
}
}
]
}
Эти данные ГИС должны храниться локально в базе данных с полями:
coords :POINT(X,Y)
match_addr: varchar
addr_type: varchar
st_addr: varchar
city: varchar
В будущем, если ArcGIS Geocoding API будет снова вызван и возвращает тот же адрес. Мне нужен способ проверить мою локальную базу данных, чтобы убедиться, что тот же адрес еще не существует локально.
В результатах не возвращается UID, и я не могу использовать ничего, что зависит от координат поскольку у многоквартирного дома могут быть те же координаты, но другой адрес.
Могу ли я использовать строку адреса совпадения для проверки существующей записи в локальной таблице, или есть лучший способ?