Comment le paramètre featureType affecte les résultats du géocodage inversé
Lorsque vous effectuez des requêtes de géocodage inversé à l’aide de l’API ArcGIS REST, le paramètre featureType joue un rôle important dans la détermination des résultats que vous obtenez.
Bien que la documentation sur le géocodage inversé à l’aide de l’API REST d’ArcGIS fournisse une table de tolérance de recherche pour chaque type d’entité, les utilisateurs interprètent parfois mal le fonctionnement de ce paramètre dans la pratique. Par exemple, il peut sembler logique que la spécification de l’adresse d’un point dans le paramètre featureType garantisse des résultats uniquement dans un rayon de 50 mètres, comme indiqué dans la table. Mais est-ce vraiment le cas? Voyons cela à l’aide d’un exemple.
Configuration du scénario
Dans cet exemple, nous allons tester le géocodage inversé de différents emplacements par rapport à l’emplacement réel du point associé au parc communautaire Don Fink en Colombie-Britannique.
- Adresse : 1155 Abbott Rd, Columbia Shuswap, Colombie-Britannique, V0E 1M0
- Localisation dans WGS84 : (wkid 4326) : −118.946905508147°, 51.23869011702°
- Localisation dans Web Mercator (sphère auxiliaire) : (wkid 3857) : −13241108.95 m, 6663624.36 m
Pour notre test, nous utiliserons le parc communautaire Don Fink en Colombie-Britannique.
Nous effectuerons des requêtes de géocodage inversé à partir de deux points situés à proximité de cette adresse :
Requête 1 : dans un rayon de 50 mètres
- URL
- Localisation dans WGS84 : (wkid 4326) : −118.9468428°, 51.2389609°
- Localisation dans Web Mercator (sphère auxiliaire) : (wkid 3857) : -13241108.95 m, 6663624.36 m
- Distance par rapport à l’adresse du point : 48,63 mètres (calculés à l’aide du théorème de Pythagore ou d’un outil en ligne)
Résultat
L’API renvoie l’entité d’adresse de point du parc et un type d’adresse PointAddress (adresse de point), comme prévu.
Résultats de requête de géocodage inversé pour un lieu situé à moins de 50 mètres de l’emplacement de notre parc d’essai.
Requête 2 : au-delà de 50 mètres
- URL
- Localisation dans WGS84 : (wkid 4326) : −118.9466242°, 51.2397049°
- Localisation dans Web Mercator (sphère auxiliaire) : (wkid 3857) : -13241077.64 m, 6663804.78 m
- Distance par rapport à l’adresse du point : 183,12 mètres
Résultat
Il est peut-être surprenant de constater que cette deuxième requête renvoie toujours l’entité d’adresse du parc, même si la distance entre le lieu de recherche et l’emplacement du parc est supérieure à 50 mètres :
Résultats de requête de géocodage inversé pour un lieu situé à plus de 50 mètres de l’emplacement de notre parc d’essai.
Examen de la divergence
Pour comprendre pourquoi cela se produit, ajustons la valeur attribuée au paramètre featureType dans nos requêtes :
Requêtes ajustées
- Point proche :https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?featureTypes=PointAddress,POI&location=-118.9468428,51.2389609&outSR=3857&f=pjson
- Point éloigné :https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?featureTypes=PointAddress,POI&location=-118.9466242,51.2397049&outSR=3857&f=pjson
Lorsque deux valeurs (PointAddress et POI) sont incluses dans le paramètre featureType, les résultats s’alignent sur les tolérances de recherche décrites dans la table :
- Point proche : renvoie l’adresse du parc.
- Point éloigné : aucun résultat n’est renvoyé (car la tolérance de 50 mètres est dépassée).
Les requêtes de géocodage inversé affichent l’adresse du parc pour un lieu situé à plus de 50 mètres de l’emplacement du parc lorsque plusieurs valeurs sont utilisées dans le paramètre locationType.
Cela révèle un aspect crucial : le nombre de valeurs du paramètre featureType affecte le comportement des tolérances de recherche.
Les trois scénarios pour le paramètre featureType
Il s’avère que le paramètre featureType peut fonctionner de trois manières différentes, en fonction du nombre de valeurs transmises :
- Aucune valeur n’est indiquée :
- La requête utilise les tolérances de recherche de la table de hiérarchie.
- Les résultats peuvent inclure des entités de n’importe quel type (à l’exception de StreetInt, qui doit être inclus explicitement en incluant featureTypes=StreetInt dans la requête reverseGeocode).
- Une seule valeur est indiquée :
- Une tolérance de recherche fixe de 500 mètres est appliquée au type d’entité précisé, remplaçant la valeur de tolérance de recherche de ce type dans la table de hiérarchie.
- Plusieurs valeurs sont indiquées :
- La requête utilise les tolérances de recherche associées à chaque valeur de la table de hiérarchie.
Si nous revenons à l’exemple ci-dessus, nous pouvons maintenant voir pour quelle raison le fait d’indiquer uniquement la valeur Adresse du point dans le paramètre featureType a appliqué une tolérance de recherche de 500 mètres au lieu de la tolérance de 50 mètres indiquée dans la table, ce qui explique pourquoi le point le plus éloigné a renvoyé l’adresse du parc. En ajoutant une deuxième valeur (POI), les tolérances de recherche indiquées dans la table de hiérarchie ont été utilisées.
Meilleures pratiques pour les requêtes de géocodage inversé
Pour vous assurer que vos requêtes de géocodage inversé respectent les tolérances de recherche dans la table de hiérarchie :
- N’indiquez aucune valeur ou précisez plusieurs valeurs pour le paramètre featureType.
- Évitez d’indiquer une valeur unique, à moins qu’une tolérance de recherche de 500 mètres ne réponde à vos besoins.
Si rien n’est indiqué dans le paramètre feature Type, l’API se comporte comme si tous les types d’entité étaient inclus (à l’exception de StreetInt), ce qui peut conduire à des résultats inattendus si des types d’entité non souhaités sont renvoyés.
Résumé
Comprendre les nuances du paramètre featureType peut vous aider à obtenir des résultats plus précis en matière de géocodage inversé. Que vous développiez des applications ou que vous réalisiez des analyses spatiales, n’oubliez pas :
- Utilisez plusieurs valeurs ou laissez le paramètre vide pour les tolérances de la table de hiérarchie.
- Soyez prudent avec les valeurs uniques, car elles correspondent par défaut à un rayon de recherche de 500 mètres.
- Soyez prudent si vous laissez le paramètre vide, car les résultats de la recherche utiliseront tous les types d’entités (à l’exception de StreetInt).
En suivant ces directives, vous vous assurerez que vos requêtes de géocodage inversé correspondent à vos attentes et au comportement documenté dans l’API REST d’ArcGIS.
Ce billet a été écrit en anglais par Dylan Trerise et peut être consulté ici.