Rechercher dans le blog

Places, le nouveau service de localisation d'Esri pour les développeurs

Le 11 mai 2023, Esri a annoncé l'ajout en bêta d'un nouveau service de localisation pour les développeurs  à sa collection, le service places. Il avait été présenté lors de la plénière de l'Esri Developer Summit en mars dernier.
Les places, ou points d'intérêts (POI) sont définies comme des emplacements géographiques que vous pouvez découvrir dans le monde entier. Ce nouveau service permettra de :
  • rechercher des places proche d'une localisation ;
  • rechercher des places à l'intérieur de l'étendue d'une carte ;
  • utiliser plus de 1000 catégories pour filtrer les places proposées par le service ;
  • rechercher des places en utilisant des mots-clés ;
  • obtenir des information attributaires détaillées sur une place, comme son nom, sa catégorie, son adresse, des informations de contact, un site web et des réseaux sociaux associés, les heures d'ouverture, les prix, les notes des utilisateurs.

Comment utiliser ce service ?

Vous pouvez d'ores et déjà tester la bêta de ce nouveau service en vous inscrivant  au programme Early Adopters
Pour cela, vous aurez besoin d'un compte ArcGIS Developer (les comptes ArcGIS Online ne sont pas supportés pour la version bêta). Si besoin, vous pouvez vous créer un compte gratuit ici. Vous devrez ensuite créer une clé d'API dans votre tableau de bord développeur et y ajouter la capacité "Places (Beta)".
Dans la suite de cet article, nous allons voir quelques exemples d'utilisation de ce service.

Rechercher des places à proximité

Le service de places permet de trouver facilement les points d'intérêt à proximité d'une localisation. Vous devez spécifier les coordonnées de la localisation, un rayon de recherche, et utiliser des catégories et/ou un texte de recherche pour affiner votre recherche.
Le service retourne chaque place trouvée avec un nombre d'attributs tels que le nom, l'identifiant de la catégorie, la distance, et la localisation. Si vous avez besoin de d'informations plus détaillées sur les attributs des places, vous pouvez utiliser la méthode getPlaceDetails (voir la section Obtenir des informations détaillées sur une place ci-dessous).
arcgisRest.findPlacesNearPoint({
  x: 24.938,
  y: 60.169,
  categoryIds: ["16026", "16041", "10027"],
  radius: 500,
  authentication,
}).then(results => {
  console.log(JSON.stringify(results.places, null, 2));
});

Pour apprendre comment réaliser ce type de recherche, rendez-vous dans la section Nearby Search de la documentation.

Rechercher des places selon une étendue

Si vous souhaitez rechercher des lieux à l'intérieur d'une zone plus large ou d'une étendue de carte actuelle, vous pouvez utiliser une recherche dans la zone de délimitation. Comme pour la recherche à proximité, vous devez spécifier les valeurs géométriques et utiliser des catégories et/ou un texte de recherche pour affiner votre recherche. 
A nouveau, le service retourne chaque place trouvée avec un nombre d'attributs tels que le nom, l'identifiant de la catégorie, la distance, et la localisation.
arcgisRest.findPlacesWithinExtent({
  xmin: 24.897,
  ymin: 60.159,
  xmax: 24.979,
  ymax: 60.178,
  categoryIds: ["16026", "10027", "16032"],
  authentication,
}).then(response => {
  console.log(JSON.stringify(response.results, null, 2));
});
Pour apprendre comment réaliser ce type de recherche, rendez-vous dans la section Bounding box search de la documentation.

Parcourir les résultats

Une caractéristique intéressante du nouveau service de recherche de places est la possibilité de parcourir les résultats. Une seule recherche peut renvoyer jusqu'à 20 places, mais s'il y en a plus, vous pouvez utiliser l'attribut nextPage pour renvoyer jusqu'à 200 places. Cette fonctionnalité est particulièrement utile lorsque vous souhaitez afficher tous les résultats d'une recherche à proximité ou d'une recherche dans les limites d'une zone.

  // Initial search 
  let lastResponse = await arcgisRest.findPlacesNearPoint({
    x: 174.778,
    y: -41.292,
    radius: 250,
    authentication,
  });
  console.log(JSON.stringify(lastResponse.results, null, 2));

  // Page through results
  while (lastResponse.nextPage) {
      lastResponse = await lastResponse.nextPage();
      console.log(JSON.stringify(lastResponse.results, null, 2));
  }

Obtenir des informations détaillées sur une place

Après avoir effectué une recherche de place comme dans les exemples ci-dessus, vous pouvez demander des informations supplémentaires sur les attributs afin de mieux connaître chaque lieu. Vous pouvez demander des champs individuels ou tous les champs disponibles. Vous obtiendrez ainsi des attributs tels que le nom, l'adresse, le lieu, le téléphone, l'adresse électronique, le site web, les informations des réseaux sociaux, ainsi que les évaluations des utilisateurs et des prix.

arcgisRest
  .getPlaceDetails({
    placeId: "bd5f5dfa788b7c5f59f3bfe2cc3d9c60",
    requestedFields: [
      "name", 
      "categories"
      "address:adminRegion",
      "address:censusBlockId",
      "address:country",
      "address:designatedMarketArea",
      "address:extended",
      "address:locality",
      "address:neighborhood",
      "address:poBox",
      "address:postcode",
      "address:postTown",
      "address:region",
      "address:streetAddress",
      "contactInfo:telephone",
      "contactInfo:website",
      "contactInfo:fax",
      "contactInfo:email",
      "socialMedia:facebookId",
      "socialMedia:instagram",
      "socialMedia:twitter",
      "chains",
      "description",
      "rating:user",
      "rating:price",
      "hours:opening",
      "hours:popular",
      "hours:openingText",
    ],
    authentication,
  })
  .then(results => {
    console.log(JSON.stringify(results, null, 2));
  });

Pour apprendre comment réaliser ce type de recherche, rendez-vous dans la section Get place details de la documentation

Les nouvelles ressources 

Pour aller plus loin dans la prise en main ce nouveau service, notez qu'il s'accompagne de la sortie d'un nouveau chapitre dédié au sein du guide développeurs d'Esri dédié aux APIs cartographique et aux services de localisation. Il inclut des démos avec l'API REST JS et l'API REST, des extraits de code, et des tutoriels. Vous pourrez également retrouver une nouvelle section  pour ce service dans la documentation de référence de l'API REST.

Aucun commentaire:

Enregistrer un commentaire