Service Azure qui fournit des API géospatiales pour ajouter des cartes, des solutions d’analyse spatiale et de mobilité aux applications.
Bonjour, Ouellet Francis,
Merci pour cette explication détaillée et pour avoir partagé l'exemple de réponse.
Je comprends tout à fait votre préoccupation à ce sujet. D'après votre exemple, le comportement que vous observez est lié à la manière dont Azure Maps gère la recherche floue (fuzzy search) et l'attribution des scores.
Dans Azure Maps, le score indique dans quelle mesure une partie de la requête correspond à un lieu connu ; il ne sert pas à valider la cohérence logique de l'intégralité de la saisie. Dans votre cas, bien que la requête elle-même ne soit pas valide, le terme « Cambodia » est mis en correspondance avec « Cambodge », qui constitue un nom de rue valide dans plusieurs localités. Étant donné que cette correspondance partielle est forte, le service renvoie un score élevé (~0,87), même si la requête globale n'a aucun sens.
Ce comportement diffère de celui de Bing Maps, où des saisies similaires n'auraient peut-être renvoyé aucun résultat. Azure Maps est conçu pour renvoyer systématiquement la correspondance la plus proche possible, plutôt que de rejeter la requête.
Pour des scénarios tels que le vôtre (validation ou rejet d'adresses incorrectes), se fier uniquement au score peut s'avérer insuffisant. Il peut être nécessaire d'appliquer des vérifications supplémentaires une fois la réponse reçue. Voici quelques approches recommandées :
Réduire le niveau de correspondance floue : Par défaut, le paramètre fuzzyLevel est défini sur 2 (niveau plus tolérant). Vous pouvez le définir sur 1 ou 0 pour rendre la correspondance plus stricte et réduire le nombre de résultats approximatifs.
Restreindre le périmètre de recherche : Utilisez des paramètres tels que countrySet=CA (ou le code ISO pertinent) pour limiter les résultats à un pays spécifique. Vous pouvez également utiliser des paramètres de cadre englobant (bounding box) ou de vue (view) pour circonscrire géographiquement les résultats.
Appliquer votre propre seuil de score : Une fois la réponse reçue, filtrez les résultats en fonction de la valeur matchConfidence.score (par exemple, rejetez les résultats inférieurs à un seuil prédéfini). Il s'agit d'une pratique courante pour les cas d'usage liés à la validation.
Valider les champs d'adresse renvoyés : Comparez le pays, la région ou la municipalité renvoyés avec les données attendues en entrée (par exemple, si la saisie fait référence au Québec, rejetez les résultats situés en dehors du Canada).
Utiliser l'API appropriée : Pour les scénarios de géocodage d'adresses complètes, l'API SearchAddress est généralement privilégiée par rapport à des points de terminaison plus flexibles tels que SearchFuzzy.
Concernant vos remarques sur le SDK .NET, nous comprenons vos préoccupations quant à son statut bêta et à l'absence de mises à jour récentes. En attendant, le recours à une désérialisation personnalisée (par exemple, via JsonDocument) constitue une solution de contournement valide. Si ce n'est pas déjà fait, nous vous recommandons également de signaler ou de soumettre vos problèmes sur le dépôt GitHub du SDK Azure, car il s'agit du canal principal utilisé par l'équipe produit.
Dans l'ensemble, le comportement que vous observez est conforme aux attentes, compte tenu de la conception actuelle de la fonctionnalité de recherche d'Azure Maps. Toutefois, l'application des contraintes et de la logique de validation mentionnées ci-dessus devrait vous permettre d'obtenir le comportement plus strict que vous recherchez.
Veuillez consulter la référence suivante.
Best practices pour Azure Maps Search : https://docs.microsoft.com/azure/azure-maps/how-to-use-best-practices-for-search
Recherche d’adresse avec countrySet, boundingBox, fuzzyLevel : https://docs.microsoft.com/azure/azure-maps/how-to-search-for-address
Couverture géographique Azure Maps Search : https://docs.microsoft.com/azure/azure-maps/geocoding-coverage
Feedback tool (ajout/édition d’adresses et POI) : https://docs.microsoft.com/azure/azure-maps/how-to-use-feedback-tool
Migration Bing → Azure Maps : https://docs.microsoft.com/azure/azure-maps/migrate-from-bing-maps
J'espère que cela vous sera utile. N'hésitez pas à me faire savoir si vous avez d'autres questions.
Merci !