Points of Interest
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.
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égorie | Identifiant de catégorie de POI |
|---|---|
| Aéroports | airports |
| Commerces d'alcool | alcohol |
| Art, culture et science | art_culture_science |
| Banques | banks |
| Arrêts d'autobus | bus_stops |
| Cafés | cafes |
| Postes d'essence | car_fueling_stations |
| Casinos | casinos |
| Commerces de vêtements | clothing |
| Commerces de besoins courants | common_needs |
| Centres de congrès | conference_centers |
| Dépanneurs | convenience_stores |
| Garderies | daycares |
| Grands magasins | department_stores |
| Divertissement | entertainment |
| Conditionnement physique | fitness |
| Commerces alimentaires | food_shops |
| Épiceries (générales) | groceries |
| Épiceries (spécialisées) | groceries_specialized |
| Soins de santé | health_care |
| Rénovation | home_improvement |
| Hôpitaux | hospitals |
| Bibliothèques | libraries |
| Vie nocturne | nightlife |
| Commerces non alimentaires | non_food_shops |
| Parcs | parks |
| Soins personnels | personal_care |
| Soins pour animaux | pet_care |
| Pharmacies | pharmacies |
| Stations de transport rapide | rapid_transit_stations |
| Restaurants | restaurants |
| Commerce de détail | retail |
| Commerces et services | shops_and_services |
| Installations sportives | sport_facilities |
| Supermarchés | supermarkets |
| Gares ferroviaires | train_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.
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ête | Statut | Description |
|---|---|---|
| Authorization | requis | Votre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci... |
| Accept | requis | Le 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
- La chaîne de requête du polygone est limitée à 5000 caractères.
- 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.
- 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.
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 | État | Description |
|---|---|---|
| lat | optionnel | Un nombre décimal entre -90 et 90 (latitude) |
| lng | optionnel | Un nombre décimal entre -180 et 180 (longitude) |
| radius | optionnel | Un nombre décimal positif (rayon du cercle) |
| polygon | optionnel | Liste de points lng/lat en 2D qui définissent un polygone 2D, à l'aide de la représentation WKT |
| categories | optionnel | Une 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. |
| brands | optionnel | Une 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. |
| tags | optionnel | Une 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. |
| limit | optionnel | La limite de POI améliorés retournés. Par défaut : 500 Maximum : 500 |
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
- NodeJS
- Python
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)
})
import requests
response = requests.get(
"https://api.locallogic.co/v3/enhanced-pois",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={
"lat": 41.855306,
"lng": -87.668732,
"categories": 'cafes,car_fueling_stations',
"radius": 3000,
"limit": 10
}
)
print(response.json())
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ête | Statut | Description |
|---|---|---|
| Authorization | requis | Votre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci... |
| Accept | requis | Le 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 | État | Description |
|---|---|---|
| buffer | optionnel | La 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_unit | optionnel | L'unité de distance au-delà des limites de la géographie pour rechercher des POI. Soit meter, soit mile.Par défaut : meter |
| categories | optionnel | Une 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. |
| brands | optionnel | Une 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. |
| tags | optionnel | Une 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. |
| limit | optionnel | La limite de POI améliorés retournés. Par défaut : 500 Maximum : 500 |
Exemples d'utilisation
- NodeJS
- Python
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)
})
import requests
response = requests.get(
"https://api.locallogic.co/v3/enhanced-pois/g37_9zh9deu6",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={
"categories": 'hospitals'
}
)
print(response.json())
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
- Python
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
- Python
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
- Python
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égorie | Nom de catégorie de POI |
|---|---|
| Art, culture et science | art_culture_science |
| Aéroports | airports |
| Arrêts d'autobus | bus_stops |
| Cafés | cafes |
| Postes d'essence | car_fueling_stations |
| Garderies | daycares |
| Conditionnement physique | fitness |
| Épiceries (générales) | groceries |
| Épiceries (spécialisées) | groceries_specialized |
| Soins de santé | health_care |
| Restaurants santé | healthy_restaurants |
| Rénovation | home_improvement |
| Vie nocturne | nightlife |
| Parcs | parks |
| Soins personnels | personal_care |
| Soins pour animaux | pet_care |
| Stations de transport rapide | rapid_transit_stations |
| Restaurants | restaurants |
| Magasinage | shopping |
| Installations sportives | sport_facilities |
| Gares ferroviaires | train_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ête | Statut | Description |
|---|---|---|
| Authorization | requis | Votre jeton porteur récupéré depuis notre API d'autorisation, ex. Bearer eyJhbGci... |
| Accept | requis | Le 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
- La chaîne de requête du polygone est limitée à 5000 caractères.
- 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.
- 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.
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 | État | Description |
|---|---|---|
| lat | optionnel | Un nombre décimal entre -90 et 90 (latitude) |
| lng | optionnel | Un nombre décimal entre -180 et 180 (longitude) |
| radius | optionnel | Un nombre décimal positif (rayon du cercle) |
| polygon | optionnel | Liste de points lng/lat en 2D qui définissent un polygone 2D, à l'aide de la représentation WKT |
| include | requis | Une 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. |
| limit | optionnel | La 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
- NodeJS
- Python
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)
})
import requests
response = requests.get(
"https://api.locallogic.co/v3/pois",
headers={
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJ..."},
params={
"lat": 43.593611,
"lng": -79.536194,
"include": 'cafes,bus_stops',
"radius": 3000,
"limit": 10
}
)
print(response.json())
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 :
| SDK | Description |
|---|---|
| Local Content SDK | Récupère les POI à proximité d'un emplacement donné. |
| NeighborhoodMap SDK | Ré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"
}