Commit 91c5abd5 authored by ZettaScript's avatar ZettaScript

Add GET params

parent f43315cd
# WorldWotMap
WorldWotMap v0.1.1, © 2018 Pascal Engélibert, Licence GNU AGPL v3
WorldWotMap v0.2.0, © 2018 Pascal Engélibert, Licence GNU AGPL v3
Ceci est une carte affichant les comptes Ğ1 et leurs certifications. La carte peut être incomplète, car il est facultatif de renseigner sa position géographique sur Cesium+.
......@@ -30,8 +30,20 @@ Chaque ligne reliant deux points rouges représente une certification.
Vous pouvez sélectionner une personne en cliquant sur son point. Les certifications qu'elle a reçues s'affichent en rouges, celles qu'elle a émises en vert. (si il y a un chevauchement entre une certification reçue et une émise, une seule couleur peut apparaître **(bug à corriger)**) Pour n'afficher que les certifications liées à cette personne, cochez la case "_Afficher uniquement ses certifications_".
### Paramètres GET
* **lat**, **lon** : Latitude et longitude au centre de la carte (en degrés)
* exemples :
Zoom sur Bordeaux https://zettascript.org/tux/g1/worldwotmap.html?lat=44.82543879996824&lon=-0.5458831787109376&zoom=13
Zoom sur Toulouse https://zettascript.org/tux/g1/worldwotmap.html?lat=43.595559991515586&lon=1.4560317993164065&zoom=12
* **pubkey** : Clé publique du compte à sélectionner (ne se déplace pas vers lui)
* **only** : Mettre à "_1_" pour n'afficher que les certifications de ce compte
* exemple :
Zoom sur _tuxmain_ https://zettascript.org/tux/g1/worldwotmap.html?lat=44.82543879996824&lon=-0.5458831787109376&zoom=13&pubkey=45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ&only=1
## Contribuer
* Pouvoir afficher uniquement les certifications à _n_ niveaux autour du compte sélectionné. Pouvoir représenter la distance au compte sélectionné en faisant varier la couleur ou l'opacité des lignes.
* Changer d'époque (afficher la wotmap à un temps donné) (à voir avec les données Cesium+)
* Définir la position dans l'URL (par ex. _?lat=123&lon=456_) et dans un champ de formulaire (nom de ville ?)
* Se déplacer vers le compte sélectionné avec un paramètre GET
* Afficher le lien avec les paramètres GET correspondants à côté de la carte
......@@ -81,7 +81,7 @@ a, a:visited {
<div id="header-text">
<h1>WorldWotMap</h1>
<a href="#map">&#11015; Voir la map &#11015;</a>
<p>WorldWotMap v0.1.1, &copy; 2018 <a href="https://zettascript.org/contact.php">Pascal Engélibert</a> (<a href="https://www.gnu.org/licenses/agpl.html">Licence GNU AGPL v3</a>)<br />
<p>WorldWotMap v0.2.0, &copy; 2018 <a href="https://zettascript.org/contact.php">Pascal Engélibert</a> (<a href="https://www.gnu.org/licenses/agpl.html">Licence GNU AGPL v3</a>)<br />
Dépôts Git&nbsp;: <a href="https://framagit.org/ZettaScript/worldwotmap/">Framagit</a> et <a href="https://git.duniter.org/tuxmain/worldwotmap">Duniter</a></p>
<p>Ceci est une carte affichant les comptes Ğ1 et leurs certifications. La carte peut être incomplète, car il est facultatif de renseigner sa position géographique sur Cesium+.</p>
<a href="gencache.py">Programme Python pour exporter les données de duniter.db</a>
......@@ -113,6 +113,16 @@ a, a:visited {
</div>
</div>
<script type="text/javascript">
function getParam(param, def=null) {
var result = def, tmp = [];
var items = location.search.substr(1).split("&");
for(var i = 0; i < items.length; i++) {
tmp = items[i].split("=");
if(tmp[0] === param) result = decodeURIComponent(tmp[1]);
}
return result;
}
class Account {
constructor(pubkey, title, pos, address, city, point) {
this.pubkey = pubkey;
......@@ -215,7 +225,7 @@ var ncerts = 0;
var active_certs = [];
var active_ncerts = [];
var active_account = null;
var map = L.map("map").setView([46.725, 2.834], 6);
var map = L.map("map").setView([getParam("lat",46.725), getParam("lon",2.834)], getParam("zoom",6));
//var map = L.map("map").setView([44.82543879996824, -0.5458831787109376], 13);// for testing (Bordeaux)
L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'}).addTo(map);
var p_certlines = map.createPane("certlines");
......@@ -268,6 +278,18 @@ $.post("https://g1.data.duniter.fr/user/profile/_search", '{"query":{"bool":{"mu
ncerts ++;
}
}
// Select account given in URL
var url_account = getParam("pubkey");
if(url_account != null && url_account in accounts) {
active_account = url_account;
accounts[active_account].point.fire("popupopen");
if(getParam("only") == 1) {
$("#mapmenu-idcard-onlycertsofsel").attr("checked", "checked");
$("#mapmenu-idcard-onlycertsofsel-n").attr("value", "1");
onlyShowCertsOfSelected();
}
}
});
});
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment