Rechercher un emplacement à l’aide des services Search d’Azure Maps
Service Search est un ensemble d’API RESTful conçu pour aider les développeurs à rechercher des adresses, des lieux et des listes d’entreprises par nom, catégorie et autres informations géographiques. En plus de prendre en charge le géocodage traditionnel, les services peuvent aussi géocoder en sens inverse les adresses et intersections en fonction des latitudes et longitudes. Les valeurs de latitude et de longitude renvoyées par la recherche peuvent être utilisées comme paramètres dans d’autres services d’Azure Maps, tels que l’Itinéraire et la Météo.
Cet article montre comment :
- Demandez les coordonnées de latitude et de longitude d’une adresse (emplacement de l’adresse géocode) à l’aide de Recherche d’adresse.
- Rechercher une adresse ou un point d’intérêt (POI) à l’aide de Recherche approximative.
- Utilisez Recherche d’adresse inversée pour traduire les coordonnées du lieu en adresse postale.
- Convertissez le lieu des coordonnées en une intersection compréhensible par l’homme en utilisant Recherche d’intersection d’adresse inversée, le plus souvent nécessaire pour les applications de suivi qui reçoivent un flux GPS d’un appareil ou d’une ressource et souhaitent savoir où se trouve la coordonnée.
Prérequis
Important
Dans les exemples d’URL de cet article, vous devez remplacer {Your-Azure-Maps-Subscription-key}
par votre clé d’abonnement Azure Maps.
Cet article utilise l’application bruno, mais vous pouvez vous choisir un autre environnement de développement d’API.
Demander la latitude et la longitude d’une adresse (géocodage)
L’exemple de cette section utilise Obtenir une adresse de recherche pour convertir une adresse en coordonnées de latitude et de longitude. Ce processus est également appelé géocodage. En plus de retourner les coordonnées, la réponse retourne également des propriétés détaillées de l’adresse telles que la rue, le code postal, la commune et les informations relatives au pays ou à la région.
Conseil
Si vous avez un ensemble d’adresses à géocoder, vous pouvez utiliser Post Search Address Batch pour envoyer un lot de requêtes dans une seule requête.
Ouvrez l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer une requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.
Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :
https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109
Cliquez sur le bouton Créer.
Sélectionnez le bouton d’exécution.
Cette demande recherche une adresse spécifique :
400 Broad St, Seattle, WA 98109
. À présent, nous allons rechercher une adresse qui a plusieurs emplacements possibles.Dans la section Params, remplacez la touche
query
par400 Broad, Seattle
, puis sélectionnez le bouton Exécuter.Ensuite, essayez de définir la touche
query
sur400 Broa
, puis sélectionnez le bouton Exécuter.La réponse inclut les résultats de plusieurs pays/régions. Pour adapter des résultats geobias en fonction de la zone pertinente pour vos utilisateurs, ajoutez toujours un maximum de détails sur l’emplacement dans la requête.
Recherche approximative
Recherche approximative prend en charge les recherches standard à ligne unique et à forme libre. Nous vous recommandons d’utiliser l’API de recherche approximative d’Azure Maps lorsque vous ne connaissez pas votre type d’entrée utilisateur pour une demande de recherche. L’entrée de requête peut être une adresse complète ou partielle. Il peut également s’agir d’un jeton de point d’intérêt (POI), comme un nom de POI, une catégorie de POI ou un nom de marque. En outre, pour améliorer la pertinence des résultats de votre recherche, les résultats de la requête peuvent être limités par un emplacement et un rayon de coordonnées ou par la définition d’un cadre de délimitation.
Conseil
La plupart des requêtes de recherche utilisent par défaut le paramétrage maxFuzzyLevel=1
pour optimiser les performances et réduire les résultats inhabituels. Vous pouvez ajuster les niveaux d’approximation à l’aide des paramètres maxFuzzyLevel
ou minFuzzyLevel
. Pour plus d’informations sur maxFuzzyLevel
et pour obtenir la liste complète de tous les paramètres facultatifs, consultez Paramètres d’URI de recherche approximative.
Rechercher une adresse à l’aide de Fuzzy Search
L’exemple dans cette section utilise Fuzzy Search
pour rechercher le mot pizza dans le monde entier, puis recherche dans l’étendue d’un pays/une région spécifique. Enfin, nous allons vous montrer comment utiliser un emplacement et un rayon de coordonnées pour étendre la recherche sur une zone spécifique et limiter le nombre de résultats renvoyés.
Important
Pour adapter les résultats géographiques en fonction de la zone pertinente pour vos utilisateurs, ajoutez toujours un maximum de détails sur l’emplacement. Pour plus d’informations, consultez les meilleures pratiques pour la recherche.
Ouvrez l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer une requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.
Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :
https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
Remarque
L’attribut json dans le chemin de l’URL détermine le format de la réponse. Cet article utilise json pour faciliter l’utilisation et la lisibilité. Pour trouver d’autres formats de réponse pris en charge, consultez la définition de paramètre
format
dans la documentation de Référence sur les paramètres d’URI.Sélectionnez le bouton Exécuter, puis passez en revue le corps de la réponse.
La chaîne de requête ambiguë « pizza » a retourné 10 résultats de POI (point d’intérêt) dans les catégories « pizza » et « restaurant ». Chaque résultat comprend des détails tels que l’adresse postale, les valeurs de latitude et longitude, le port d’affichage et les points d’entrée pour l’emplacement. Les résultats peuvent désormais varier pour cette requête et ne sont pas liés à un emplacement de référence.
À l’étape suivante, nous allons utiliser le paramètre
countrySet
pour spécifier uniquement les pays/régions pour lesquels votre application a besoin d’une couverture. Pour obtenir la liste complète des pays/régions pris en charge, consultez couverture du géocodage Azure Maps.Le comportement par défaut consiste à faire porter la recherche sur le monde entier, avec le risque de renvoyer des résultats superflus. Ensuite, nous chercherons le mot pizza uniquement aux États-Unis. Ajoutez la clé
countrySet
à la section Params et attribuez-lui la valeurUS
. La définition de la clécountrySet
surUS
liera les résultats aux États-Unis.Les résultats sont désormais délimités par le code de pays ; en l’occurrence, la requête retourne des pizzerias aux États-Unis.
Pour obtenir une recherche encore plus ciblée, vous pouvez effectuer une recherche dans l’étendue d’une paire de coordonnées. L’exemple suivant utilise les coordonnées lat/lon de la Seattle Space Needle. Comme nous voulons uniquement retourner les résultats qui se trouvent dans un rayon de 400 mètres, nous allons ajouter le paramètre
radius
. Nous allons également ajouter le paramètrelimit
pour limiter les résultats aux cinq pizzerias les plus proches.Dans la section Params, ajoutez les paires clé-valeur suivantes :
Clé Valeur lat 47.620525 lon -122.349274 radius 400 limit 5 Sélectionnez Exécuter. La réponse comprend des résultats pour les pizzerias situées à proximité de la Space Needle de Seattle.
Rechercher une adresse postale à l’aide d’une recherche d’adresse inverse
Obtenir des adresses de recherche inversée traduit les coordonnées en adresses lisibles. Cette API est souvent utilisée pour les applications qui utilisent des flux GPS et qui souhaitent découvrir les adresses de points de coordonnées spécifiques.
Important
Pour adapter les résultats geobias en fonction de la zone pertinente pour vos utilisateurs, ajoutez toujours un maximum de détails sur l’emplacement. Pour plus d’informations, consultez les meilleures pratiques pour la recherche.
Conseil
Si vous avez un ensemble de coordonnées pour lequel vous voulez inverser le géocode pour obtenir l’adresse correspondante, vous pouvez utiliser Post Search Address Reverse Batch pour envoyer un lot de requêtes dans une seule requête.
Dans cet exemple, nous allons effectuer des recherches inversées à l’aide de quelques-uns des paramètres facultatifs disponibles. Pour obtenir la liste complète des paramètres facultatifs, consultez Paramètres de recherche inversée.
Ouvrez l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer une requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.
Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :
https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Sélectionnez le bouton Exécuter et examinez le corps de la réponse. Vous devez voir un résultat de requête. La réponse inclut des informations d’adresse clés sur Safeco Field.
À présent, nous allons ajouter les paires clé-valeur suivantes à la section Params :
Clé Valeur Retours nombre 1 La réponse peut inclure le côté de la rue (gauche/droite) et également une position décalée pour le numéro. returnSpeedLimit true Retourne la limite de vitesse à l’adresse. returnRoadUse true Retourne les types d’utilisation de la route à l’adresse. Pour tous les types d’utilisation routière possibles, consultez Types d’utilisation routière. returnMatchType true Retourne le type de correspondance. Pour toutes les valeurs possibles, consultez Résultats de la recherche d’adresse inversée. Sélectionnez le bouton Exécuter et examinez le corps de la réponse.
Ensuite, ajoutez la clé
entityType
et définissez sa valeur surMunicipality
. La cléentityType
remplace la cléreturnMatchType
de l’étape précédente.returnSpeedLimit
etreturnRoadUse
doivent également être supprimés puisque vous demandez des renseignements sur la municipalité. Pour tous les types d’entités possibles, consultez Types d’entités.Sélectionnez le bouton d’exécution. Comparez les résultats à ceux retournés à l’étape 5. Étant donné que le type d’entité demandé est désormais
municipality
, la réponse n’inclut pas d’informations sur l’adresse. En outre, la valeurgeometryId
retournée peut être utilisée pour demander un polygone de délimitation par le biais de l’API Get Search Polygon d’Azure Maps.
Conseil
Pour plus d’informations sur ces paramètres, ainsi que sur d’autres paramètres, consultez Paramètres de recherche inversée.
Rechercher une intersection à l’aide d’une recherche d’intersection d’adresse inverse
Dans cet exemple, nous allons rechercher une intersection en nous basant sur les coordonnées d’une adresse.
Ouvrez l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer une requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.
Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :
https://atlas.microsoft.com/search/address/reverse/crossstreet/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Sélectionnez le bouton Exécuter et examinez le corps de la réponse. Vous remarquerez que la réponse contient une valeur
crossStreet
pourSouth Atlantic Street
.