Partager via


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.

  1. 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.

  2. 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
    
  3. Cliquez sur le bouton Créer.

  4. 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.

  5. Dans la section Params, remplacez la touche query par 400 Broad, Seattle, puis sélectionnez le bouton Exécuter.

    Rechercher une adresse

  6. Ensuite, essayez de définir la touche query sur 400 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 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.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 valeur US. La définition de la clé countrySet sur US liera les résultats aux États-Unis.

     Rechercher le mot pizza 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.

  5. 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ètre limit 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
  6. Sélectionnez Exécuter. La réponse comprend des résultats pour les pizzerias situées à proximité de la Space Needle de Seattle.

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.

  1. 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.

  2. 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
    
  3. 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.

  4. À 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.

    Recherche inversée.

  5. Sélectionnez le bouton Exécuter et examinez le corps de la réponse.

  6. Ensuite, ajoutez la clé entityType et définissez sa valeur sur Municipality. La clé entityType remplace la clé returnMatchType de l’étape précédente. returnSpeedLimit et returnRoadUse 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.

    Recherche d’entityType inversée.

  7. 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 valeur geometryId 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.

Dans cet exemple, nous allons rechercher une intersection en nous basant sur les coordonnées d’une adresse.

  1. 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.

  2. 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
    
  3. Sélectionnez le bouton Exécuter et examinez le corps de la réponse. Vous remarquerez que la réponse contient une valeur crossStreet pour South Atlantic Street.

Étapes suivantes