Aller au contenu principal

Points of Interest

Stable
É.-U. 🇺🇸 et Canada 🇨🇦

Description

Les points d'intérêt (POI) à proximité d'un emplacement sont accessibles par le point de terminaison POI de Local Logic, documenté ci-dessous. Nos POI représentent des commerces, des services, des arrêts de transport en commun, des parcs et tout autre emplacement qui a généralement une incidence sur la qualité de vie et l'accessibilité d'un secteur.

info

Le point de terminaison POI amélioré est maintenant accessible à tous les utilisateurs ayant accès à /v3/pois!

Ce point de terminaison est un nouveau point de terminaison Local Logic qui offre de nouvelles fonctionnalités pour interroger et accéder aux points d'intérêt, y compris le filtrage par marques et par étiquettes. Il contient les mêmes points d'intérêt que le point de terminaison /v3/pois et son utilisation est optionnelle. Essayez-le dès aujourd'hui!

GET /v3/enhanced-pois

Les points d'intérêt à proximité d'un emplacement sont accessibles par le point de terminaison POI amélioré de Local Logic, documenté ci-dessous. Les POI accessibles par ce point de terminaison sont les mêmes que ceux offerts par le point de terminaison /v3/pois ci-dessous. Toutefois, un point d'intérêt amélioré (POI amélioré) comprendra aussi une ou plusieurs categories, zéro ou plusieurs brands et zéro ou plusieurs tags. Le point de terminaison POI amélioré peut être filtré par n'importe quelle combinaison de categories, brands et tags, ou par aucun d'entre eux. La liste des catégories diffère légèrement entre les deux points de terminaison de POI. Les marques peuvent être utilisées pour rechercher ou repérer des types de commerces précis en fonction du nom de la marque. Par exemple : Starbucks, Whole Foods ou Canadian Tire. Les étiquettes servent à préciser davantage les types de restaurants (santé, "malsain" et type de cuisine), et servent aussi à indiquer si un commerce est indépendant ou une chaîne. Les POI améliorés seront retournés en ordre croissant de linear_distance_m par rapport au lat/lng précisé (ou au centre du polygon précisé).

GET /v3/enhanced-pois

Catégories de POI

Voici les catégories de POI améliorés proposées. Cette liste est aussi accessible par le point de terminaison /v3/enhanced-pois/categories documenté ci-dessous.

CatégorieIdentifiant de catégorie de POI
Aéroportsairports
Commerces d'alcoolalcohol
Art, culture et scienceart_culture_science
Banquesbanks
Arrêts d'autobusbus_stops
Caféscafes
Postes d'essencecar_fueling_stations
Casinoscasinos
Commerces de vêtementsclothing
Commerces de besoins courantscommon_needs
Centres de congrèsconference_centers
Dépanneursconvenience_stores
Garderiesdaycares
Grands magasinsdepartment_stores
Divertissemententertainment
Conditionnement physiquefitness
Commerces alimentairesfood_shops
Épiceries (générales)groceries
Épiceries (spécialisées)groceries_specialized
Soins de santéhealth_care
Rénovationhome_improvement
Hôpitauxhospitals
Bibliothèqueslibraries
Vie nocturnenightlife
Commerces non alimentairesnon_food_shops
Parcsparks
Soins personnelspersonal_care
Soins pour animauxpet_care
Pharmaciespharmacies
Stations de transport rapiderapid_transit_stations
Restaurantsrestaurants
Commerce de détailretail
Commerces et servicesshops_and_services
Installations sportivessport_facilities
Supermarchéssupermarkets
Gares ferroviairestrain_stations

Un POI amélioré peut appartenir à plus d'une catégorie, mais il n'apparaîtra pas plus d'une fois dans la réponse.

Les POI améliorés peuvent aussi être filtrés par brands et tags. La liste complète des brands et des tags proposés est très longue et s'allongera avec le temps à mesure que d'autres données seront ajoutées. Pour connaître les brands et les tags proposés, vous pouvez interroger les points de terminaison /v3/enhanced-pois/brands et /v3/enhanced-pois/tags.

Cette API utilise l'authentification par jeton JWT. Ce jeton porteur (Bearer) JWT est ce qui est utilisé pour remplir l'en-tête Authorization ci-dessous.

Les instructions pour récupérer ce jeton se trouvent dans Premiers pas.

En-têteStatutDescription
AuthorizationrequisVotre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci...
AcceptrequisLe type de données demandé; cette API retournera application/json.

Chaîne de requête

La région interrogée par le point de terminaison peut être définie de deux façons : (1) en spécifiant une coordonnée lat/lng, avec des paramètres radius optionnels, (2) ou en fournissant un paramètre polygon.

Lorsque vous utilisez la méthode de requête par coordonnées lat/lng sans spécifier le paramètre radius, le point de terminaison retournera les points d'intérêt situés dans un rayon de 5 km des coordonnées. Lorsque vous incluez des paramètres radius, la zone circulaire résultante autour de la coordonnée lat/lng sera interrogée.

Lorsque vous utilisez la méthode de requête par polygon, les points d'intérêt retournés seront contenus dans la région définie par la zone du polygone. Les polygones sont spécifiés à l'aide du format WKT. Le seul type accepté est POLYGON, et les trous ne sont pas pris en charge. Chaque point du polygone doit être défini comme une coordonnée lng/lat.

Limitations de l'API

  1. La chaîne de requête du polygone est limitée à 5000 caractères.
  2. Le polygone doit tenir à l'intérieur d'un rectangle englobant dont la distance diagonale entre ses coins sud-ouest et nord-est est inférieure à 70 km.
  3. Le rayon est limité à 25 km.

Jusqu'à 500 POI seront retournés.

Les données proximity.linear_distance_m sont fournies dans la réponse en mètres.

attention

WKT fonctionne sur des plans x/y. Par conséquent, les coordonnées doivent être envoyées sous la forme lng/lat plutôt que lat/lng.

ParamètreÉtatDescription
latoptionnelUn nombre décimal entre -90 et 90 (latitude)
lngoptionnelUn nombre décimal entre -180 et 180 (longitude)
radiusoptionnelUn nombre décimal positif (rayon du cercle)
polygonoptionnelListe de points lng/lat en 2D qui définissent un polygone 2D, à l'aide de la représentation WKT
categoriesoptionnelUne liste d'identifiants de catégorie de POI amélioré séparés par des virgules. Consultez la colonne Identifiant de catégorie de POI du tableau ci-dessus pour la liste complète des catégories proposées, ou consultez /v3/enhanced-pois/categories. Par défaut, toutes les catégories sont incluses.
brandsoptionnelUne liste d'identifiants de marque séparés par des virgules. Consultez /v3/enhanced-pois/brands pour la liste complète des marques proposées. Par défaut, toutes les marques sont incluses.
tagsoptionnelUne liste d'identifiants d'étiquette séparés par des virgules. Consultez /v3/enhanced-pois/tags pour la liste complète des marques proposées. Par défaut, toutes les étiquettes sont incluses.
limitoptionnelLa limite de POI améliorés retournés.
Par défaut : 500
Maximum : 500
attention

Vous devez fournir soit polygon, soit à la fois lat et lng, mais pas les deux.

Si categories est fourni, un POI amélioré sera retourné s'il appartient à au moins une des catégories.

Exemples d'utilisation

require('node-fetch')('https://api.locallogic.co/v3/enhanced-pois?' + new URLSearchParams({
lat: 41.855306,
lng: -87.668732,
categories: 'cafes,car_fueling_stations',
radius: 3000,
limit: 10
}), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: 'Bearer eyJhbGciOiJ...'
}
})
.then(response => response.json())
.then(body => {
console.log(body)
})
.catch(error => {
console.log(error)
})

Exemple de réponse

{
"data": {
"results": [
{
"name": "Electric Charging Station",
"address": "1924 N Paulina St",
"city": "Chicago",
"state": "Illinois",
"country": "USA",
"postal_code": "60622-1127",
"lat": 41.855286,
"lng": -87.668752,
"proximity": {
"linear_distance_m": 2
},
"categories": [
"car_fueling_stations",
"retail",
"shops_and_services"
],
"brands": [],
"tags": [
"independent"
]
},
{
"name": "Brew Brew Coffee & Tea",
"address": "1641 W 18th St",
"city": "Chicago",
"state": "Illinois",
"country": "USA",
"postal_code": "60608-5356",
"phone": "(312) 796-3151",
"url": "http://brewbrewcoffeeandtea.com"
"lat": 41.857638,
"lng": -87.66784,
"proximity": {
"linear_distance_m": 269
},
"categories": [
"cafes",
"nightlife",
"shops_and_services"
],
"brands": [],
"tags": [
"independent",
"unhealthy"
],
},
{
"name": "Dunkin'",
"address": "1659 W 18th St",
"city": "Chicago",
"state": "Illinois",
"country": "USA",
"postal_code": "60608-2835",
"phone": "(312) 846-6141",
"url": "https://www.dunkindonuts.com"
"lat": 41.857674,
"lng": -87.667786,
"proximity": {
"linear_distance_m": 274
},
"categories": [
"cafes",
"shops_and_services"
],
"brands": [
"dunkin"
],
"tags": [
"chain",
"unhealthy"
],
},
// Autres cafés et postes d'essence
]
},
"meta": {
"message": "Successfully called v3/enhanced-pois API.",
"type": "LocalLogic.API.Success",
"statusCode": 200,
"counts": {
"returned_by_category": {
"cafes": 6,
"car_fueling_stations": 4
},
"returned_count": 10,
"total_by_category": {
"cafes": 41,
"car_fueling_stations": 35
},
"total_count": 76
}
}
}

Comme le montre l'exemple, tous les POI améliorés n'incluront pas nécessairement tous les champs possibles. name, country, lat, lng, categories, brands et tags seront toujours inclus. total_by_category et total_count incluront toujours le nombre total de POI correspondant aux critères de recherche.

Si un POI amélioré appartient à plusieurs catégories demandées, la somme des valeurs sous returned_by_category et total_by_category dépassera returned_count et total_count.

GET /v3/enhanced-pois/{geog_id}

Les points d'intérêt à l'intérieur et à proximité d'une géographie Local Logic sont accessibles par le point de terminaison POI amélioré de Local Logic, documenté ci-dessous.

Les valeurs acceptées pour geog_id sont toute géographie correspondant à g10_*, g20_*, g30_*, g32_*, g35_*, g37_* et g38_* (toutes les géographies sous le niveau d'une région métropolitaine). Pour obtenir un geog_id, vous pouvez utiliser le point de terminaison Local Logic Geographies

Les POI améliorés seront retournés en ordre croissant de linear_distance_m par rapport au centroïde calculé de la géographie.

GET /v3/enhanced-pois/{geog_id}

En-tête

Cette API utilise l'authentification par jeton JWT. Ce jeton porteur (Bearer) JWT est ce qui est utilisé pour remplir l'en-tête Authorization ci-dessous.

Les instructions pour récupérer ce jeton se trouvent dans Premiers pas.

En-têteStatutDescription
AuthorizationrequisVotre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci...
AcceptrequisLe type de données demandé; cette API retournera application/json.

Chaîne de requête

Jusqu'à 500 POI seront retournés.

Les données proximity.linear_distance_m sont fournies dans la réponse en mètres, soit la distance par rapport au centroïde de la géographie.

ParamètreÉtatDescription
bufferoptionnelLa distance au-delà des limites de la géographie pour rechercher des POI. Ceci est utile lorsque l'utilisateur de l'API souhaite effectuer une recherche au-delà des limites d'une géographie, par exemple pour trouver des écoles dans un rayon de 2 km d'un quartier, ou des hôpitaux dans un rayon de 8 km des limites de la ville.
Par défaut : 0
Maximum : 10000 mètres (ou 6 milles)
buffer_unitoptionnelL'unité de distance au-delà des limites de la géographie pour rechercher des POI. Soit meter, soit mile.
Par défaut : meter
categoriesoptionnelUne liste d'identifiants de catégorie de POI amélioré séparés par des virgules. Consultez la colonne Identifiant de catégorie de POI du tableau ci-dessus pour la liste complète des catégories proposées, ou consultez /v3/enhanced-pois/categories. Par défaut, toutes les catégories sont incluses.
brandsoptionnelUne liste d'identifiants de marque séparés par des virgules. Consultez /v3/enhanced-pois/brands pour la liste complète des marques proposées. Par défaut, toutes les marques sont incluses.
tagsoptionnelUne liste d'identifiants d'étiquette séparés par des virgules. Consultez /v3/enhanced-pois/tags pour la liste complète des marques proposées. Par défaut, toutes les étiquettes sont incluses.
limitoptionnelLa limite de POI améliorés retournés.
Par défaut : 500
Maximum : 500

Exemples d'utilisation

require('node-fetch')('https://api.locallogic.co/v3/enhanced-pois/g37_9zh9deu6' + new URLSearchParams({
categories: 'hospitals'
}), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: 'Bearer eyJhbGciOiJ...'
}
})
.then(response => response.json())
.then(body => {
console.log(body)
})
.catch(error => {
console.log(error)
})

Exemple de réponse

{
"data": {
"results": [
{
"name": "Mosaic Life Care at St Joseph-Cardiovascular Care",
"country": "USA",
"state": "Missouri",
"lat": 39.753294,
"lng": -94.766919,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 10912
},
"city": "Saint Joseph",
"address": "5514 Corporate Dr",
"postal_code": "64507-7763",
"url": "https://www.mymlc.com/Main/Location/st-joseph-mo/Cardiovascular-Care/",
"phone": "(816) 271-1221",
"suite": ""
},
{
"name": "Heartland Hospital",
"country": "USA",
"state": "Missouri",
"lat": 39.77027,
"lng": -94.77054,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 12641
},
"city": "Saint Joseph",
"address": "5325 Faraon St",
"postal_code": "64506-3398",
"url": "http://mymosaiclifecare.org",
"phone": "(816) 271-6000",
"suite": ""
},
{
"name": "Emergency Dept, Mosaic Life Care at St Joseph-Medical Center",
"country": "USA",
"state": "Missouri",
"lat": 39.772706,
"lng": -94.77065,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 12902
},
"city": "Saint Joseph",
"address": "5325 Faraon St",
"postal_code": "64506-3488",
"url": "https://www.mymlc.com/Main/Location/st-joseph-mo/mosaic-life-care-at-st.-joseph-medical-center/main-medical-center/mosaic-life-care-at-st.-joseph---emergency-room/",
"phone": "(816) 271-6122",
"suite": ""
},
{
"name": "Heartland Regional Medical Center",
"country": "USA",
"state": "Missouri",
"lat": 39.772706,
"lng": -94.77065,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 12902
},
"city": "Saint Joseph",
"address": "5325 Faraon St",
"postal_code": "64506-3488",
"phone": "(816) 271-7524",
"suite": ""
},
{
"name": "Long-Term Acute Care Hospital Mosaic Life Care at St Joseph",
"country": "USA",
"state": "Missouri",
"lat": 39.772706,
"lng": -94.77065,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 12902
},
"city": "Saint Joseph",
"address": "5325 Faraon St",
"postal_code": "64506-3488",
"url": "https://www.mymlc.com/General/Long-Term-Acute-Care-Hospital",
"phone": "(816) 271-4076",
"suite": ""
},
{
"name": "Mosaic Life Care at St Joseph-Medical Center",
"country": "USA",
"state": "Missouri",
"lat": 39.772706,
"lng": -94.77065,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 12902
},
"city": "Saint Joseph",
"address": "5325 Faraon St",
"postal_code": "64506-3488",
"url": "https://www.mymlc.com/Main/Location/st-joseph-mo/mosaic-life-care-at-st.-joseph-medical-center",
"phone": "(816) 271-6000",
"suite": ""
},
{
"name": "Mosaic Medical Center-Heart Center",
"country": "USA",
"state": "Missouri",
"lat": 39.772706,
"lng": -94.77065,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 12902
},
"city": "Saint Joseph",
"address": "5325 Faraon St",
"postal_code": "64506-3488",
"url": "https://www.mymlc.com/Main/Location/st-joseph-mo/mosaic-medical-center-st.-joseph/",
"phone": "(816) 271-6563",
"suite": ""
},
{
"name": "Northwest Missouri Psychiatric Rehabilitation Center",
"country": "USA",
"state": "Missouri",
"lat": 39.778852,
"lng": -94.811947,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 13234
},
"city": "Saint Joseph",
"address": "3505 Frederick Ave",
"postal_code": "64506-2914",
"url": "http://dmh.mo.gov/nmprc",
"phone": "(816) 387-2300",
"suite": ""
},
{
"name": "The University of Kansas Health System Cardiovascular Medicine, Advanced Maternal and Fetal Care",
"country": "USA",
"state": "Missouri",
"lat": 39.781023,
"lng": -94.798455,
"categories": [
"health_care",
"hospitals",
"shops_and_services"
],
"tags": [
"independent"
],
"brands": [

],
"proximity": {
"linear_distance_m": 13481
},
"city": "Saint Joseph",
"address": "3943 Sherman Ave",
"postal_code": "64506-3649",
"url": "http://www.kansashealthsystem.com/care/specialties/heart-care",
"phone": "(913) 588-1227",
"suite": ""
}
]
},
"meta": {
"message": "Successfully called v3/enhanced_pois API.",
"type": "LocalLogic.API.Success",
"statusCode": 200,
"counts": {
"returned_count": 9,
"total_count": 9,
"returned_by_category": {
"hospitals": 9
},
"total_by_category": {
"hospitals": 9
}
}
}
}

GET /v3/enhanced-pois/categories

Ce point de terminaison retournera une liste de toutes les categories proposées. Il ne prend aucun paramètre de requête et requiert la même autorisation que /v3/enhanced-pois.

GET /v3/enhanced-pois/categories

Exemples d'utilisation

import requests

response = requests.get(
"https://api.locallogic.co/v3/enhanced-pois/categories",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={}
)

print(response.json())

Exemple de réponse

{
"data": {
"categories": [
"alcohol",
"groceries_specialized",
"cafes",
"car_fueling_stations",
// autres catégories
]
},
"meta": {
"message": "Successfully called v3/enhanced-pois/categories API.",
"type": "LocalLogic.API.Success",
"statusCode": 200
}
}

GET /v3/enhanced-pois/brands

Ce point de terminaison retournera une liste de toutes les brands proposées. Il en existe plus de 2000. Il ne prend aucun paramètre de requête et requiert la même autorisation que /v3/enhanced-pois.

GET /v3/enhanced-pois/brands

Exemples d'utilisation

import requests

response = requests.get(
"https://api.locallogic.co/v3/enhanced-pois/brands",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={}
)

print(response.json())

Exemple de réponse

{
"data": {
"brands": [
"16_handles",
"18_8_fine_mens_salons",
"1_800_dryclean",
// en sautant plus loin...
"staples",
"starbucks",
"starlight_cinemas",
"steak_n_shake",
// autres marques
]
},
"meta": {
"message": "Successfully called v3/enhanced-pois/brands API.",
"type": "LocalLogic.API.Success",
"statusCode": 200
}
}

GET /v3/enhanced-pois/tags

Ce point de terminaison retournera une liste de toutes les tags proposées. Il ne prend aucun paramètre de requête et requiert la même autorisation que /v3/enhanced-pois.

GET /v3/enhanced-pois/tags

Exemples d'utilisation

import requests

response = requests.get(
"https://api.locallogic.co/v3/enhanced-pois/tags",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={}
)

print(response.json())

Exemple de réponse

{
"data": {
"tags": [
"american",
"asian",
"asian_fusion",
"bakery",
"bbq",
"breakfast_brunch",
"chain",
"independent"
// autres étiquettes
]
},
"meta": {
"message": "Successfully called v3/enhanced-pois/tags API.",
"type": "LocalLogic.API.Success",
"statusCode": 200
}
}

GET /v3/pois

Les POI seront retournés en ordre croissant de linear_distance par rapport au lat/lng précisé (ou au centre du polygon précisé), pour chaque catégorie de POI respective.

GET /v3/pois

Catégories de POI

Voici les catégories de POI proposées.

CatégorieNom de catégorie de POI
Art, culture et scienceart_culture_science
Aéroportsairports
Arrêts d'autobusbus_stops
Caféscafes
Postes d'essencecar_fueling_stations
Garderiesdaycares
Conditionnement physiquefitness
Épiceries (générales)groceries
Épiceries (spécialisées)groceries_specialized
Soins de santéhealth_care
Restaurants santéhealthy_restaurants
Rénovationhome_improvement
Vie nocturnenightlife
Parcsparks
Soins personnelspersonal_care
Soins pour animauxpet_care
Stations de transport rapiderapid_transit_stations
Restaurantsrestaurants
Magasinageshopping
Installations sportivessport_facilities
Gares ferroviairestrain_stations

En-tête

Cette API utilise l'authentification par jeton JWT. Ce jeton porteur (Bearer) JWT est ce qui est utilisé pour remplir l'en-tête Authorization ci-dessous.

Les instructions pour récupérer ce jeton se trouvent dans Premiers pas.

En-têteStatutDescription
AuthorizationrequisVotre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci...
AcceptrequisLe type de données demandé; cette API retournera application/json.

Chaîne de requête

La région interrogée par le point de terminaison peut être définie de deux façons : (1) en spécifiant une coordonnée lat/lng, avec des paramètres radius optionnels, (2) ou en fournissant un paramètre polygon.

Lorsque vous utilisez la méthode de requête par coordonnées lat/lng sans spécifier le paramètre radius, le point de terminaison retournera les points d'intérêt situés dans un rayon de 5 km des coordonnées. Lorsque vous incluez des paramètres radius, la zone circulaire résultante autour de la coordonnée lat/lng sera interrogée.

Lorsque vous utilisez la méthode de requête par polygon, les points d'intérêt retournés seront contenus dans la région définie par la zone du polygone. Les polygones sont spécifiés à l'aide du format WKT. Le seul type accepté est POLYGON, et les trous ne sont pas pris en charge. Chaque point du polygone doit être défini comme une coordonnée lng/lat.

Limitations de l'API

  1. La chaîne de requête du polygone est limitée à 5000 caractères.
  2. Le polygone doit tenir à l'intérieur d'un rectangle englobant dont la distance diagonale entre ses coins sud-ouest et nord-est est inférieure à 70 km.
  3. Le rayon est limité à 25 km.

Jusqu'à 30 POI peuvent être obtenus par catégorie lorsque plusieurs catégories sont demandées par l'API. Lorsqu'une seule catégorie de POI est demandée dans les paramètres, jusqu'à 500 POI seront retournés.

Les données proximity.linear_distance sont fournies dans la réponse en mètres.

attention

WKT fonctionne sur des plans x/y. Par conséquent, les coordonnées doivent être envoyées sous la forme lng/lat plutôt que lat/lng.

ParamètreÉtatDescription
latoptionnelUn nombre décimal entre -90 et 90 (latitude)
lngoptionnelUn nombre décimal entre -180 et 180 (longitude)
radiusoptionnelUn nombre décimal positif (rayon du cercle)
polygonoptionnelListe de points lng/lat en 2D qui définissent un polygone 2D, à l'aide de la représentation WKT
includerequisUne liste de noms de catégorie de POI séparés par des virgules. Consultez la colonne Nom de catégorie de POI du tableau ci-dessus pour la liste complète des catégories proposées.
limitoptionnelLa limite de POI retournés par catégorie de POI.

valeur par défaut : 30

maximum : 30 si plusieurs catégories de POI sont précisées dans le paramètre include, sinon 500 si une seule catégorie de POI est précisée

Exemples d'utilisation

require('node-fetch')('https://api.locallogic.co/v3/pois?' + new URLSearchParams({
lat: 41.847206,
lng: -87.668825,
include: 'cafes,bus_stops',
radius: 3000,
limit: 10
}), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: 'Bearer eyJhbGciOiJ...'
}
})
.then(response => response.json())
.then(body => {
console.log(body)
})
.catch(error => {
console.log(error)
})

Exemple de réponse

{
"data": {
"cafes": [
{
"name": "Tim Hortons",
"address": "11940 111 Ave Nw",
"city": "Edmonton",
"province": "AB",
"postalcode": "T5G0E5",
"country": "Canada",
"lat": 53.559654,
"lng": -113.528046,
"url": "http://timhortons.com/ca",
"proximity": {
"linear_distance": 0.491,
"walking": {
"quality": "calculated",
"distance": 0.522,
"travel_time": 6
}
}
},
{
"name": "European Sweetness Ltd",
"address": "12212 107 Ave Nw",
"city": "Edmonton",
"province": "AB",
"postalcode": "T5M4A8",
"country": "Canada",
"lat": 53.551163,
"lng": -113.53287,
"proximity": {
"linear_distance": 0.613,
"walking": {
"quality": "calculated",
"distance": 1.001,
"travel_time": 12
}
}
},
{
"name": "Second Cup",
"address": "11640 104 Ave Nw",
"city": "Edmonton",
"province": "AB",
"postalcode": "T5K2T7",
"country": "Canada",
"lat": 53.547203,
"lng": -113.52228,
"url": "http://secondcup.com",
"proximity": {
"linear_distance": 0.95,
"walking": {
"quality": "calculated",
"distance": 1.029,
"travel_time": 12
}
}
},
// Autres cafés
],
"bus_stops": [
{
"name": "119 Street & 111 Avenue",
"country": "Canada",
"lat": 53.558764,
"lng": -113.526336,
"routes": [
{
"short_name": "125",
"long_name": "Belvedere - Jasper Place",
"route_color": "#FFFFFF",
"text_color": "#000000"
}
],
"proximity": {
"linear_distance": 0.386
}
},
// Autres arrêts d'autobus
]
},
"meta": {
"message": "Successfully called v3/pois API.",
"type": "LocalLogic.API.Success",
"statusCode": 200,
"counts": {
"cafes": 10,
"bus_stops": 10
}
}
}

Implémentations du SDK

Les POI sont utilisés par deux SDK Local Logic :

SDKDescription
Local Content SDKRécupère les POI à proximité d'un emplacement donné.
NeighborhoodMap SDKRécupère les POI à l'intérieur et à proximité du quartier.

Codes de réponse

Lorsque vous appelez l'API de Local Logic, vous pouvez recevoir un code de réponse HTTP indiquant une erreur ou une absence de données. Ces erreurs sont expliquées ci-dessous.

En général, les codes d'erreur commençant par « 4 » sont dus à un appel d'API invalide et peuvent être corrigés de votre côté, alors que les codes d'erreur commençant par « 5 » sont dus à des erreurs de serveur (c'est-à-dire des problèmes de notre côté). Si vous recevez quelque chose qui n'est pas décrit ici, veuillez communiquer avec nous à support@locallogic.co.

204 - No Content

Ce « code d'erreur » n'en est pas un et se produit lorsque nous n'avons pas les données requises pour un emplacement précis. Par exemple, si vous envoyez une paire lat/lng pour obtenir des scores dans des régions inhabitées du nord du Canada, nous pouvons retourner une réponse 204 vide, car nous reconnaissons l'emplacement, mais nous ne calculons pas de scores dans des endroits aussi éloignés, donc il n'y a rien à retourner.

400 - BadRequest

Ce code d'erreur se produit lorsque les données saisies dans la requête sont incorrectes. Utilisez le champ detail de la réponse pour obtenir des précisions. Exemple :

{
"code": "LocalLogic.API.BadRequest",
"detail": "ValidationErrors: AroundEndpoint is invalid:\n\tinclude is invalid: \"bad_input\" is not an acceptable value: \"groceries\", \"restaurants\", \"nightlife\", \"cafes\", \"shopping\", \"daycares\", \"primary_schools\", \"high_schools\""
}

401 - Unauthorized

Ce code d'erreur se produit lorsque votre clé API ne peut pas accéder à certaines ressources ou à certains emplacements. Par exemple, certaines clés API ne peuvent accéder qu'à certains pays, états ou provinces. N'hésitez pas à communiquer avec nous pour plus d'information.

{
"code": "LocalLogic.API.Unauthorized",
"detail": "Your API KEY doesn't support this region"
}

403 - Forbidden

Ce code d'erreur se produit lorsque vous avez oublié d'inclure les identifiants de sécurité dans votre requête ou lorsque vous demandez un paramètre auquel vous n'avez pas accès.

{
"message": "Forbidden"
}

404 - NotFound

Ce code d'erreur se produit lorsque nous n'avons pas de données pour l'emplacement demandé. Par exemple, si vous envoyez une paire lat/lng pour un emplacement en Antarctique, nous retournerons cette erreur, car nous n'avons pas (encore!) de données pour l'Antarctique.

{
"code": "LocalLogic.API.NotFound",
"detail": "No Location Scores found for this location."
}

422 - Unprocessable Entity

Ce code d'erreur est retourné lorsque les bons paramètres ont été envoyés, mais que les données qu'ils contiennent ne sont pas valides. Par exemple, si vous envoyez une paire lat/lng et que la latitude est invalide (c.-à-d. hors de la plage [-90, 90]) ou que la longitude est invalide (c.-à-d. hors de la plage [-180, 180]). Le message retourné expliquera le problème précis avec vos paramètres qui les rend invalides.

{
"message": "Latitude must be within [-90, 90], Longitude must be within [-180, 180], Requires at least lat/lng pair, or geography_ids. None supplied.",
"code": "LocalLogic.API.BadRequest",
"statusCode": 422
}

429 - Too Many Requests

Ce code d'erreur peut être retourné lorsque vous devez limiter le débit de vos requêtes. À l'interne, nous établissons des limites qui dépassent toutes les limites contractuelles pouvant entraîner le retour de ce code d'erreur. Si vous avez des questions ou si vous voyez cette erreur, veuillez communiquer avec nous à support@locallogic.co.

500 - ServerError

Ce code d'erreur signifie qu'une erreur s'est produite de notre côté. N'hésitez pas à réessayer la même requête pour voir si le problème persiste. Si vous recevez beaucoup de ces erreurs, veuillez communiquer avec nous à support@locallogic.co.

{
"code": "LocalLogic.API.ServerError",
"detail": "No Location Scores found for this location."
}

502 - BadGateway

Ce code d'erreur signifie qu'une erreur provient de notre fournisseur infonuagique. N'hésitez pas à réessayer la même requête pour voir si le problème persiste.

{
"message": "Internal server error"
}