Skip to content

Commit

Permalink
release 3.0.6
Browse files Browse the repository at this point in the history
  • Loading branch information
elias75015 committed Jan 25, 2022
2 parents 19e61f9 + 13dd7a5 commit 4eda4ac
Show file tree
Hide file tree
Showing 8 changed files with 339 additions and 100 deletions.
11 changes: 7 additions & 4 deletions DRAFT_CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
# Bibliothèque d'accès aux services Géoportail, version 3.0.5
# Bibliothèque d'accès aux services Géoportail, version 3.0.6

**03/12/2021 : 3.0.5**
**25/01/2022 : 3.0.6**

> release of geoportal access library
## Summary

Mise à jour de la documentation pour utilisation de clefs génériques multiples

## Changelog

* [Added]

- En options en entrée de l'autoconf, il y a possibilité désormais de passer une liste de clés sous forme de string. ex. "key1,key2,key3" (#77)

* [Changed]

- refactorisation de la page de documentation pour récupérer l'autoconf en local (#78)
- mise à jour du readme et de la jsdoc (#79 et #80)

* [Removed]

* [Fixed]
Expand Down
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Le chargement de la bibliothèque d'accès vous donne accès au namespace [Gp.Se

La fonction [Gp.Services.geocode](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~geocode) permet d'utiliser le service de géocodage de la plateforme Géoportail pour obtenir la position d'un toponyme, d'une adresse ou d'une parcelle cadastrale. Elle prend en paramètres :

* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) ayant les droits sur les ressources de recherche OpenLS du Géoportail.
* une (ou des) **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) ayant les droits sur les ressources de recherche OpenLS du Géoportail.

* le **localisant** dont on veut obtenir les coordonnées ;

Expand All @@ -140,7 +140,7 @@ La fonction [Gp.Services.geocode](http://ignf.github.io/geoportal-access-lib/lat

``` javascript
Gp.Services.geocode({
apiKey : "22726iz9m8ficsgf2hmiicpd", // clef d'accès à la plateforme
apiKey : "calcul", // clef d'accès à la plateforme
location : "tour eiffel", // localisant à géocoder
filterOptions : {
type : ["PositionOfInterest"] // type de localisant
Expand All @@ -162,7 +162,7 @@ Gp.Services.geocode({

La fonction [Gp.Services.autoComplete](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~autoComplete) permet d'utiliser le service d'autocomplétion de la plateforme Géoportail pour obtenir des suggestions de loclalisants (toponyme ou adresse) à partir d'un texte incomplet. Elle prend en paramètres :

* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) ayant les droits sur les ressources de recherche OpenLS du Géoportail.
* une (ou des) **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) ayant les droits sur les ressources de recherche OpenLS du Géoportail.

* le **texte** pour lequel on souhaite obtenir des suggestions

Expand All @@ -175,7 +175,7 @@ La fonction [Gp.Services.autoComplete](http://ignf.github.io/geoportal-access-li

``` javascript
Gp.Services.autoComplete({
apiKey : "22726iz9m8ficsgf2hmiicpd", // clef d'accès à la plateforme
apiKey : "calcul", // clef d'accès à la plateforme
text : "23 rue des et", // texte à compléter
filterOptions : {
type : ["StreetAddress"] // type de texte
Expand All @@ -197,7 +197,7 @@ Gp.Services.autoComplete({

La fonction [Gp.Services.reverseGeocode](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~reverseGeocode) permet d'utiliser le service de géocodage inverse de la plateforme Géoportail pour trouver des toponymes, adresses ou parcelles cadastrales proches d'une position donnée. Elle prend en paramètres :

* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) ayant les droits sur les ressources de recherche OpenLS du Géoportail.
* une (ou des) **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) ayant les droits sur les ressources de recherche OpenLS du Géoportail.

* une **position** donnée

Expand All @@ -210,7 +210,7 @@ La fonction [Gp.Services.reverseGeocode](http://ignf.github.io/geoportal-access-

``` javascript
Gp.Services.reverseGeocode({
apiKey : "22726iz9m8ficsgf2hmiicpd", // clef d'accès à la plateforme
apiKey : "calcul", // clef d'accès à la plateforme
position : { // position de recherche
x: 2.29,
y: 48.85
Expand All @@ -235,7 +235,7 @@ Gp.Services.reverseGeocode({

La fonction [Gp.Services.getAltitude()](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~getAltitude) permet d'utiliser le service d'altimétrie de la plateforme Géoportail 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 **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) ayant les droits sur les ressources altimétriques du Géoportail.
* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) ayant les droits sur les ressources altimétriques du Géoportail.

* une **liste de positions** données

Expand All @@ -248,7 +248,7 @@ La fonction [Gp.Services.getAltitude()](http://ignf.github.io/geoportal-access-l

``` javascript
Gp.Services.getAltitude({
apiKey : "22726iz9m8ficsgf2hmiicpd", // clef d'accès à la plateforme
apiKey : "carte", // clef d'accès à la plateforme
positions : [ // positions pour le calcul alti
{ lon: 2.29, lat: 48.85 },
{ lon: 2.3, lat: 48.9 },
Expand All @@ -271,7 +271,7 @@ Gp.Services.getAltitude({

La fonction [Gp.Services.route()](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~route) permet d'utiliser le service de calcul d'itinéraires de la plateforme Géoportail. Elle prend en paramètres :

* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) ayant les droits sur les ressources utilisés par le calcul d'itinéraire du Géoportail : graphe routier ou piéton.
* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) ayant les droits sur les ressources utilisés par le calcul d'itinéraire du Géoportail : graphe routier ou piéton.

* des **points de départ, d'arrivée** et éventuellement **intermédiaires**.

Expand All @@ -284,7 +284,7 @@ La fonction [Gp.Services.route()](http://ignf.github.io/geoportal-access-lib/lat

``` javascript
Gp.Services.route({
apiKey : "jhyvi0fgmnuxvfv0zjzorvdn", // clef d'accès à la plateforme
apiKey : "carte", // clef d'accès à la plateforme
startPoint : { x: 2, y: 45}, // point de départ
viaPoints : [ // points intermédiaires
{ x: 3, y: 46 },
Expand All @@ -308,7 +308,7 @@ Gp.Services.route({

La fonction [Gp.Services.isoCurve()](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~isoCurve) permet d'utiliser le service de calcul d'isochrones / isodistances de la plateforme Géoportail. Elle prend en paramètres :

* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) ayant les droits sur les ressources utilisés par le calcul d'isochrones / isodistances du Géoportail : graphe routier ou piéton.
* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) ayant les droits sur les ressources utilisés par le calcul d'isochrones / isodistances du Géoportail : graphe routier ou piéton.

* une **position de référence** (départ ou arrivée) pour le calcul.

Expand All @@ -325,7 +325,7 @@ La fonction [Gp.Services.isoCurve()](http://ignf.github.io/geoportal-access-lib/

``` javascript
Gp.Services.isoCurve({
apiKey : "jhyvi0fgmnuxvfv0zjzorvdn", // clef d'accès à la plateforme
apiKey : "carte", // clef d'accès à la plateforme
position : { x: 2, y: 45}, // point de référence
method : "time", // méthode de calcul (isochrone)
time : 1000, // limite de temps (isochrone)
Expand All @@ -346,7 +346,7 @@ Gp.Services.isoCurve({

La fonction [Gp.Services.getConfig()](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~getConfig) permet de consulter, via le service d'autoconfiguration de la plateforme Géoportail, les ressources disponibles pour une clef d'accès à la plateforme et d'avoir les paramètres permettant leur utilisation. Elle prend en paramètres :

* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [professionnels.ign.fr](http://professionnels.ign.fr/ign/contrats) dont on veut consulter les droits.
* une **clef d'accès à la plateforme Géoportail** obtenue sur le site [geoservices.ign.fr](https://geoservices.ign.fr/services-web) dont on veut consulter les droits.

* d'autres paramètres éventuels à passer au service...

Expand All @@ -355,7 +355,7 @@ La fonction [Gp.Services.getConfig()](http://ignf.github.io/geoportal-access-lib

``` javascript
Gp.Services.getConfig({
apiKey : "jhyvi0fgmnuxvfv0zjzorvdn", // clef d'accès à la plateforme
apiKey : "carte", // clef d'accès à la plateforme
onSuccess : function (result) {
// exploitation des resultats : "result" est de type Gp.Services.GetConfigResponse
...
Expand Down
174 changes: 174 additions & 0 deletions doc/tutorials/optimize-getconfig-english.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
# Optimize your geoportal access configuration

To use Geoportal resources, you need one or several access keys which can be obtained on the [geoservices.ign.fr web site](https://geoservices.ign.fr/services-web).

You can speed up your geoportal application by caching your the configuration associated to your geoportal access key(s) on your server.

Here is how you can do.


### 1. Get the configuration file

Fill the input text below with your geoportal access key ; if you want Geoportal Services to be accessed by default in https, check the "https access" check box.

Click the "Get Config File" button.

<form>
<section>
<label for="keyNumber">Number of keys : </label>
<input type="number" min="1" max="10" id="keyNumber" value="1">
</section>
<section id="keyInputSection">
<p id="keyInputPara1">
<label for="keyInput1" class="key-label">Key 1 : </label>
<input type="text" class="form-control input-sm key-value" placeholder="Geoportail access key 1"
size="30" id="apiKey1">
</p>
</section>
<section>
<input type="checkbox" id="https-cb">https access</input>
<input type="button" onclick="doIt()" id="key-button" value="Get Config File" class="key-button"></input>
</p>
</section>
</form>
<script type="text/javascript" src="../../dist/GpServices.js"></script>
<script type="text/javascript">
document.getElementById("keyNumber").addEventListener('change', createInput);
document.getElementById("keyNumber").value = 1; //reset the key number input
function removeInputAndLabel() {
var keyLabels = document.getElementsByClassName("key-label");
while (keyLabels.length > 0) {
keyLabels[0].parentNode.removeChild(keyLabels[0]);
}
// remove the keys input
var keyInputs = document.getElementsByClassName("key-value");
while (keyInputs.length > 0) {
keyInputs[0].parentNode.removeChild(keyInputs[0]);
}
};
function createInput(e) {
removeInputAndLabel();
var numberOfInput = e.target.value;
for (var i = 1; i <= numberOfInput; i++) {
// create key input div
var keyPara = document.createElement("p");
keyPara.id = "keyInputPara" + i;
// create label for key input
var keyLabel = document.createElement("div");
keyLabel.className = "key-label";
keyLabel.innerHTML = "Key " + i + " : ";
// create key input
var keyInput = document.createElement("input");
keyInput.type = "text";
keyInput.className = "form-control input-sm key-value"; // set the CSS class
keyInput.placeholder = "Geoportail access key " + i;
keyInput.size = "30";
keyInput.id = "apiKey" + i;
// add the form elements to the DOM
keyPara.appendChild(keyLabel);
keyPara.appendChild(keyInput);
document.getElementById("keyInputSection").appendChild(keyPara);
}
};
function concatKeys() {
var keyInputs = document.getElementsByClassName("key-value");
var concatenedKeys = keyInputs[0].value;
for (var i = 1; i < keyInputs.length; i++) {
concatenedKeys = concatenedKeys + "," + keyInputs[i].value;
}
return concatenedKeys;
}
function doIt() {
var firstkelem = document.getElementById("apiKey1");
var concatenedKeys = concatKeys();
if (!firstkelem.value || firstkelem.value.trim().length == 0) {
return;
}
// disable submit button
var belem = document.getElementById("key-button");
belem.setAttribute("disabled", "true");
// makes pointer wait
belem.style.cursor = "wait";
var article = document.getElementsByClassName("content")[0];
article.style.cursor = "wait";
// https access
var httpsCB = document.getElementById("https-cb");
var protocol = "http";
var resultFileName = "autoconf.json";
if (httpsCB.checked) {
protocol += "s";
resultFileName = "autoconf-https.json";
}
var getconfigUrl = protocol + "://wxs.ign.fr/" + firstkelem.value.trim() + "/autoconf/?keys=" +concatenedKeys.trim();
Gp.Services.getConfig({
serverUrl: getconfigUrl,
onBeforeParse: function (result) {
var jsonpResult = result;
if (result.indexOf("callback") < 0) {
// result en XML => needs jsonp
jsonpResult = 'callback({"http":{"status":200,"error":null},"xml":"' + result.replace(/"/g,'\\"') + '"});';
}
var a = document.createElement("a");
a.setAttribute("href", "data:text/javascript;charset=utf-8," + encodeURIComponent(jsonpResult));
a.setAttribute("download", resultFileName);
document.body.appendChild(a);
a.click();
// re-enable submit button
belem.removeAttribute("disabled");
// re-change cursor
article.style.cursor = "auto";
belem.style.cursor = "auto";
}
});
}
</script>



When prompted, save the file "autoconf.json" (or "autoconf-https.json") on your platform.


### 2. Configure geoportal functions to use that file

Be it [Geoportal access lib](https://github.com/ignf/geoportal-access-lib), [Geoportal extensions](https://github.com/IGNF/geoportal-extensions) or [Geoportal SDK](http://ignf.github.io/evolution-apigeoportail/sdk/presentation.html), you can use that file to configure your application :


#### With Geoportal access lib

Use it as a value of the **serverUrl** param of the [Gp.Services.getConfig()](http://ignf.github.io/geoportal-access-lib/latest/jsdoc/module-Services.html#~getConfig) function (instead of the **apiKey** param) :

``` javascript
the Gp.Services.getConfig({
...
serverUrl : "path/to/autoconf.json",
callbackSuffix : "",
...
}) ;
```


#### With Geoportal extensions

Use it with the **data-url** attribute of the script tag used to load the Geoportal extension (instead of the **data-key** attribute) :

``` html
<script type="text/javascript" src="path/to/GpPluginLeaflet.js" data-url="path/to/autoconf.json"></script>
<!-- or -->
<script type="text/javascript" src="path/to/GpPluginOpenLayers.js" data-url="path/to/autoconf.json"></script>
```


#### With Geoportal SDK

Use it as a value of the **configUrl** param of the Gp.MapOptions object used in the Gp.Map.load() function (instead of the **apiKey** param) :

``` javascript
Gp.Map.load(
"mapDiv",
{
...
configUrl : "path/to/autoconf.json",
...
}
) ;
```
Loading

0 comments on commit 4eda4ac

Please sign in to comment.