Bibliothèque d'accès
- Mise en oeuvre
- Utilisation
- Géocoder des adresses, toponymes et parcelles cadastrales
- Obtenir des suggestions d’adresses ou de toponymes à partir de textes incomplets
- Obtenir des localisants (adresses, toponymes, parcelles cadastrales) proches d’une position donnée (géocodage inverse)
- Obtenir des altitudes en un ou plusieurs points ou calculer des profils altimétriques
- Calculer un itinéraire piéton ou routier
- Calculer des isochrones / isodistances autour d’un point
- Obtenir des informations relatives à un contrat d’accès à la Géoplateforme
Table des matières
Titre
Mise en oeuvre
Vous pouvez récupérer la bibliothèque d’accès soit en la téléchargeant directement, soit en utilisant le gestionnaire de dépendances javascript NPM.
Une documentation technique (jsdoc) et un testeur sont disponibles ici.
Téléchargement direct
Vous pouvez récupérer ici la version compilée et autonome de la bibliothèque d’accès : GpServices.js, dans la partie "Downloads".
Récupération avec NPM
La bibliothèque d’accès est aussi disponible dans les dépôts NPM.
Prérequis : NodeJS et NPM installés.
npm install geoportal-access-lib
Accès direct
Vous pouvez aussi choisir d'utiliser des fichiers hébergés en ligne, pour y accéder directement, lors de vos tests par exemple. Cependant, pour une utilisation en production, nous vous conseillons de télécharger ces fichiers et de les héberger vous-même, sur le même serveur qui héberge votre application.
Par exemple sur Github Pages :
https://ignf.github.io/geoportal-access-lib/latest/dist/GpServices.js
https://ignf.github.io/geoportal-access-lib/latest/dist/GpServices-src.js
Intégration dans une page web
Intégrez la bibliothèque d’accès dans votre page WEB classiquement à l’aide d’une balise script.
<script src="chemin/vers/GpServices.js"></script>
Intégration dans NodeJS
Intégrez la bibliothèque d’accès dans votre script à l’aide de la fonction require.
var Gp = require("chemin/vers/GpServices.js");
Note : Par défaut, les services sont interrogés en HTTP. On a la possibilité de forcer le HTTPS avec l’option ssl. Ce comportement est ignoré dans les environnements clients (navigateur). Les services sont alors interrogés suivant le même protocole que la page en cours.
var Gp = require("chemin/vers/GpServices.js");
Gp.Services.geocode({
ssl : true,
location : "...",
onSuccess : function (result) {
...
}
});
Note : Dans un environnement NodeJS, il faut installer les 2 dépendances suivantes dans votre projet :
- xmldom
- request
Intégration dans un module ES6
Intégrez la bibliothèque d’accès dans votre page WEB à l’aide d’une balise script de type module.
<script type="module">
import * as Gp from "chemin/vers/GpServices.js";
// puis, utilisation de la variable globale 'Gp' dans le module ES6...
</script>
Intégration dans un front-end type Angular ou React
Intégrez la bibliothèque d’accès dans votre module à l’aide de la fonction import.
import * as Gp from "chemin/vers/GpServices.js";
Note : Dans un environnement Front-End, il faut installer les 2 dépendances suivantes dans votre projet :
- xmldom
- request
Titre
Utilisation
Le chargement de la bibliothèque d’accès vous donne accès au namespace Gp.Services à partir duquel vous pouvez utiliser les différentes fonctions proposées.
Titre
Géocoder des adresses, toponymes et parcelles cadastrales
La fonction Gp.Services.geocode permet d’utiliser le service de géocodage de la Géoplateforme pour obtenir la position d’une adresse, d'un toponyme ou d’une parcelle cadastrale. Elle prend en paramètres :
-
le localisant dont on veut obtenir les coordonnées.
-
le type de localisant : adresse (“StreetAddress”), toponyme (“PositionOfInterest”) ou parcelle cadastrale (“CadastralParcel”). Choix multiple possible. Par défaut les adresses seront utilisées.
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.GeocodeResponse.
Gp.Services.geocode({
location : "tour eiffel", // localisant à géocoder
filterOptions : {
type : ["PositionOfInterest"] // type de localisant
},
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.GeocodeResponse
...
}
});
Titre
Obtenir des suggestions d’adresses ou de toponymes à partir de textes incomplets
La fonction Gp.Services.autoComplete permet d’utiliser le service d’autocomplétion de la Géoplateforme pour obtenir des suggestions de localisants (adresse ou toponyme) à partir d’un texte incomplet. Elle prend en paramètres :
-
le texte pour lequel on souhaite obtenir des suggestions.
-
le type de localisant : adresse (“StreetAddress”) ou toponyme (“PositionOfInterest”). Choix multiple possible. Par défaut les adresses seront utilisées.
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.AutoCompleteResponse.
Gp.Services.autoComplete({
text : "23 rue de l'", // texte à compléter
filterOptions : {
type : ["StreetAddress"] // type de texte
},
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.AutoCompleteResponse
...
}
});
Titre
Obtenir des localisants (adresses, toponymes, parcelles cadastrales) proches d’une position donnée (géocodage inverse)
La fonction Gp.Services.reverseGeocode permet d’utiliser le service de géocodage inverse de la Géoplateforme pour trouver des adresses, toponymes ou parcelles cadastrales proches d’une position donnée. Elle prend en paramètres :
-
une position donnée.
-
le type de localisant : adresse (“StreetAddress”), toponyme (“PositionOfInterest”) ou parcelle cadastrale (“CadastralParcel”). Choix multiple possible. Par défaut les adresses seront utilisées.
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.GeocodeResponse.
Gp.Services.reverseGeocode({
position : { // position de recherche
x: 2.29,
y: 48.85
},
filterOptions : {
type : ["PositionOfInterest"] // type de localisant
},
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.ReverseGeocodeResponse
...
}
});
Exemple d’utilisation :
Titre
Obtenir des altitudes en un ou plusieurs points ou calculer des profils altimétriques
La fonction Gp.Services.getAltitude() permet d’utiliser le service d’altimétrie de la Géoplateforme pour obtenir les altitudes de une ou plusieurs positions données ou calculer un profil altimétrique le long d’une liste de positions. Elle prend en paramètres :
-
une liste de positions données.
-
un éventuel paramètre (sampling) indiquant le nombre de points intermédiaires à utiliser dans le cas du calcul d’un profil altimétrique.
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.AltiResponse.
Gp.Services.getAltitude({
positions : [ // positions pour le calcul alti
{ lon: 2.29, lat: 48.85 },
{ lon: 2.3, lat: 48.9 },
{ lon: 2.4, lat: 49 }
],
sampling : 50, // nombre de points pour le profil
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.AltiResponse
...
}
});
Exemple d’utilisation :
Titre
Calculer un itinéraire piéton ou routier
La fonction Gp.Services.route() permet d’utiliser le service de calcul d’itinéraires de la Géoplateforme. Elle prend en paramètres :
-
des points de départ, d’arrivée et éventuellement intermédiaires.
-
le graphe utilisé pour le calcul correspondant au profil de véhicule (piéton ou routier)
-
la ressource utilisée pour le calcul d'itinéraire
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.RouteResponse.
Gp.Services.route({
startPoint : { x: 2, y: 45}, // point de départ
viaPoints : [ // points intermédiaires
{ x: 3, y: 46 },
{ x: 3.5, y: 46 }
],
endPoint : { x: 4, y: 47}, // point d'arrivée
graph : "Voiture", // grapĥe utilisé
resource : "bdtopo-pgr", //ressource utilisée
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.RouteResponse
...
}
});
Exemple d’utilisation :
Titre
Calculer des isochrones / isodistances autour d’un point
La fonction Gp.Services.isoCurve() permet d’utiliser le service de calcul d’isochrones / isodistances de la Géoplateforme. Elle prend en paramètres :
-
une position de référence (départ ou arrivée) pour le calcul.
-
la limite de temps ou distance pour le calcul.
-
le type de calcul (isochrone ou isodistance).
-
le graphe utilisé pour le calcul correspondant au profil de véhicule (piéton ou routier).
-
la ressource utilisée pour le calcul d'isochrone (valhalla ou bdtopo-iso)
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.IsoCurveResponse.
Gp.Services.isoCurve({
position : { x: 2, y: 45}, // point de référence
method : "time", // méthode de calcul (isochrone)
time : 1000, // limite de temps (isochrone)
graph : "Pieton", // grapĥe utilisé
resource : "valhalla", //ressource utilisée
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.IsoCurveResponse
...
}
});
Exemple d’utilisation :
Titre
Obtenir des informations relatives à un contrat d’accès à la Géoplateforme
La fonction Gp.Services.getConfig() permet de consulter, via le service d’autoconfiguration de la Géoplateforme, les ressources disponibles pour une thématique Géoplateforme et d’avoir les paramètres permettant leur utilisation. Elle prend en paramètres :
-
une (ou plusieurs) thématiques Geoplateforme obtenue sur le site geoservices.ign.fr dont on veut consulter les droits.
-
d’autres paramètres éventuels à passer au service…
-
la fonction de traitement des résultats qui sera appelée lorsqu’ils seront reçus. Cette fonction prend en paramètres un objet de type : Gp.Services.GetConfigResponse. Les informations portées par cet objet sont aussi enregistrées en variable globale de l’application sous le nom : Gp.Config.
Gp.Services.getConfig({
apiKey : "carte", // thématique d'accès à la plateforme
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.GetConfigResponse
...
}
});
Exemple d’utilisation :