Migration vers OpenStreetMap

Donnez votre avis et proposez ici les axes d’amélioration pour le site Lufop et ses fonctionnalités
damiengg
Contributeur
Contributeur
Messages : 7
Enregistré le : 04 février 2019, 03:06
Vehicule(s) : Nissan Xtrail, Fiat 500, Fazer FZ6
GPS : Garmin

Migration vers OpenStreetMap

Message par damiengg » 09 juillet 2019, 11:38

Bonjour,

Google map étant devenu payant, pour une utilisation sur un site de façon interactive, la solution retenu à court terme semble être le fait de payer des royalties à notre Google pour maintenir en l'état le fonctionnement du site (https://lufop.net/carte-lufop-google-map-payantes/).

Je pense qu'à moyen-long terme, une migration vers un système ouvert serait la bonne solution, pour plusieurs raisons :
- le prix
- la garantie de préservation de fonctionnement (les radars étant une source d'argent important pour les états et Google n'étant pas toujours totalement neutre en fonction des pressions des autorités locales)
- l'esprit d'ouverture et de partage (partage des informations de la positions radars se rapproche de l'esprit des solutions à codes sources ouverts).

Il existe des solutions "faciles à mettre en œuvre" pour migrer vers ces nouvelles technologies ouvertes (par exemple https://asmaloney.com/2014/01/code/crea ... streetmap/).

C'est un sujet, sur lequel je peux aider Lufop s'il le souhaite.

De plus, est-ce qu'une API d'accès temps réelle à la base de donnée des radars existe ?
Cela pourrait être un moyen de financer le site, car les développeurs d'applications anti-radar pourraient s'abonner à ce service et contribuer à la vie du site de ce fait ?

Dam
Modifié en dernier par damiengg le 11 juillet 2019, 23:10, modifié 1 fois.

Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 957
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: Migration vers OpenStreetMap

Message par Lufop » 10 juillet 2019, 07:14

Merci pour ta proposition d aide!

Oui la migration vers open street map est une option serieuse que je regarde.
La premiere page a migrer serai lufop.net/map tu peux regareder le code si on veux garder toutes les fonctionnalités il y a un peu de taff juste avec le js et html... (le php ca devrait aller..)

Pour l api oui elle existe et elle est gratuite comme le reste du site api.lufop.net

Lufop
Aidez nous à faire connaitre le site Lufop :
sur Facebook
sur Tweeter
:merci:

damiengg
Contributeur
Contributeur
Messages : 7
Enregistré le : 04 février 2019, 03:06
Vehicule(s) : Nissan Xtrail, Fiat 500, Fazer FZ6
GPS : Garmin

Re: Migration vers OpenStreetMap

Message par damiengg » 11 juillet 2019, 21:59

Bonsoir,

J'ai fait quelques essais et une première carte qui semble fonctionner de manière assez fluide grâce à OpenStreetMap, du moins avec quelques POI que je peux faire changer dynamiquement en fonction du pays choisi : https://gofile.io/?c=7zWDSr

Concernant les données sur la carte actuelle, j'ai cru voir qu'elles étaient directement stockées dans une carte Google Map et non pas ajoutées dynamiquement par le site au chargement de la carte ? Pour cette nouvelle version, j'en aurai bien profité pour utiliser ton API, aussi pour le site, afin de placer les radars directement sur la carte. Un chargement dynamique devrait être plus souple que de mettre tous les radars "en dur" dans un système de cartographie tiers et plus rapide que de devoir recharger toute la page à chaque changement de zone/pays. Utiliser la même API que pour les autres systèmes utilisant tes données me semble également élégant (puisqu'elle existe déjà, autant ré-utiliser une brique existante pour ça).

Qu'en penses-tu ?

Si tu es ok, il me faudrait une clé de ton API pour pouvoir avancer et faire mes tests.

De plus j'aimerai bien faire charger au fur et à mesure les POI en fonction en la position sur la carte, il faut que je vois si cela est possible avec Leaftlet, et dans ce cas de figure, on verra si ton API pourrait être améliorée pour gérer l'envoie de POI dans un périmètre donné.

Dam

Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 957
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: Migration vers OpenStreetMap

Message par Lufop » 13 juillet 2019, 08:34

Salut Dam !

API Key envoyé via MP.
J'ai commencé a regardé la map avec OSM que tu as envoyé c'est top !
On retrouve bien les POI et leur type c'est vraiment super.

La carte sur lufop.net/map a vraiment beaucoup de fonctionnalité, c'est devenu au fil des années une usine a gaz je dois le reconnaître !
Tu as du la voir je pense, la page principale utilise la page phpsqlajax_xxx.php qui est quasi identique à la page de lAPI et qui fournie les données en fonction des paramètres fournis.
phpsqlajax_genxml4.php est un peu plus complète car tu peux lui placer en paramètre des coordonnées GPS q=48.866488,2.268774 voir par exemple la carte ici : https://lufop.net/detail-poi/?action=Si ... PID=178302

Mais je viens juste de rajouter l'option q=<lat,lon> sur api.lufop.net donc tu devrait pouvoir l’utiliser aussi maintenant...

Je charge tous les POIs d'un pays en fonction des urls utilisée https://lufop.net/MAP/?pays=FR au contraire de m.lufop.net qui ne charge que les POI dans un rayon (plus exactement un carré) autour du POI.



Il y a 2 fonctionnalités critiques pour le site :
- la première c'est de pouvoir cliquer sur un sur un marker et afficher l'infowindow qui contien 2 lien : un pour afficher les detail du POI et le second pour le modifier.

- la seconde c'est addMarkerAtCenterModifPoi, qui permet quand on l'affiche (via onclick="javascript:afficher_cacher('adPOI');") d'afficher les fonctionnalités pour placer un marker dans le but d'ajouter un POI.

Tu penses qu'il est facile de les intégrer ?
J'ai pas encore eu le temps de me plonger dans l'API MAP OSM mais je pense qu'on doit y retrouver les mêmes fonctionnalités


Merci en tout cas pour ton aide sur le sujet, je vais essayer de me libérer un peu de temps pour pouvoir travailler sur ces points de mon coté également.


PS : je t'ai ajouté en tant que contributeur VIP du site :)

Lufop
Aidez nous à faire connaitre le site Lufop :
sur Facebook
sur Tweeter
:merci:

damiengg
Contributeur
Contributeur
Messages : 7
Enregistré le : 04 février 2019, 03:06
Vehicule(s) : Nissan Xtrail, Fiat 500, Fazer FZ6
GPS : Garmin

Re: Migration vers OpenStreetMap

Message par damiengg » 17 juillet 2019, 02:06

Salut Lufop,

> phpsqlajax_xxx
Oui oui, j'avais bien vu ça mais je sais pas pourquoi, j'avais supposé que c'était un script de chez Google Map sans même regarder vers quel serveur allaient les requêtes ; au temps pour moi.

Super pour l'API ! Désolé de revenir à la charge, mais je t'aurais bien demandé également d'ajouter la possibilité de passer le "rayon" / la "marge" de la zone autour de laquelle on renvoie les coordonnées (GPS) car je suis parti sur un chargement dynamique des POI (comme sur le site m.lufop.net) afin que la carte soit en web adaptatif et donc directement conçu pour tout type de terminal.
(À propos de la découpe en "carrée" : c'est assez astucieux je trouve, car 1. les écrans sont carrés et 2. une addition et une comparaison sont plus beaucoup efficients qu'un calcul de rayon - avec des racines carrées - lors d'une requête en base).

Voici une seconde version avec le chargement dynamique grâce à ton API et un mécanisme de mise en cache : https://gofile.io/?c=HhkCst
Note 1 : j'ai retiré ma clé API donc il faut en saisir une pour tester, il n'y aura que toi qui pourra voir comment ça marche sur cette version
Note 2 : cela ne fonctionnera sûrement pas en local à cause d'une sécurité (le Access-Control-Allow-Origin) mais marcherait si c'était en ligne (sinon il y a des plugin de tests pour les développeurs web sur Firefox comme Allow CORS)
Note 3 : tu verras sûrement que cela ne fonctionne pas bien lorsque tu dé-zoom, c'est dû au fait que ton API actuel utilise une "marge" / un "rayon" fixe autour du point GPS, là où en dé-zoomant, on devrait changer cette valeur afin d'élargir la zone

L'ajout d'une info-bulle et d'un mécanisme d'ajout de POI ne me semble pas très complexe par rapport à ce que j'ai déjà fait, j'essaie d'intégrer ça pour la prochaine version.

Et merci pour le statut ! :thumbup:

Dam

Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 957
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: Migration vers OpenStreetMap

Message par Lufop » 17 juillet 2019, 07:31

Genial! Je vais regarder pour la marge c est pas trop compliqué faut juste trouver les bonne valeurs mais au besoin on ajustrera...
Effectivement le mode carré etait bien plus simple a mettre ne place que le mode rayon meme si c est moins "joli" sur un grand écran... je pense que je vais garder comme ça pour eviter les calculs fastidieux en php ou sql à chaque chargement...


Je te tiens au courant dès que j ai mis à jour l'api et je te fais un retour de mes tests sur le nouveau fichier...

Bonne journée !
Lufop
Aidez nous à faire connaitre le site Lufop :
sur Facebook
sur Tweeter
:merci:

damiengg
Contributeur
Contributeur
Messages : 7
Enregistré le : 04 février 2019, 03:06
Vehicule(s) : Nissan Xtrail, Fiat 500, Fazer FZ6
GPS : Garmin

Re: Migration vers OpenStreetMap

Message par damiengg » 17 juillet 2019, 10:49

Pour faire au plus simple de mon coté, je calcule la marge en valeur d'unité "GPS", donc aucune conversion (km ou autre) coté serveur.

La modification être relativement légère sur le PHP je pense, ça doit donner un truc ressemblant de près ou de loin à ça (il y a probablement des coquilles, j'écris ça en direct sur le forum :roll:) :

Code : Tout sélectionner

<?php

// [...]

$m = 0.15;
if (isset($_GET['m']) && is_numeric($_GET['m']))
{
    $m = $_GET['m'];
}

$q = false;
if (isset($_GET['q']))
{
    $q_get = explode(',', $_GET['q']);
    if ((count($q_get) >= 2) && is_numeric($q_get[0]) && is_numeric($q_get[1]))
    {
        $q = $q_get;
    }
}

$nbr = 10;
if (isset($_GET['nbr']) && is_numeric($_GET['nbr']))
{
    $nbr = round($_GET['nbr']);
}

// [...]

if ($q)
{
    // mode coordonnées
    $req = $db->prepare('select * from zones where lat >= :minlat && lng >= :minlng && lat <= :maxlat && lng <= :maxlng limit :nbr ;');
    $req->execute(array(':minlat' => ($q[0]-$m), ':minlng' => ($q[1]-$m), ':maxlat' => ($q[0]+$m), ':maxlng' => ($q[1]+$m), ':nbr'  => $nbr));
}
else
{
    // [...]
}
?>

Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 957
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: Migration vers OpenStreetMap

Message par Lufop » 17 juillet 2019, 19:57

Done ! API mis à jour en mode "carré" :)

Ajust area zoom factor for POI selection (work only with q set) :
q=lat,lon&m=[1 to 10000] ex : q=44.866488,2.268774&m=100
default : 10

dis moi si ça fait le job ..

je regarde le reste dès que possible !
Aidez nous à faire connaitre le site Lufop :
sur Facebook
sur Tweeter
:merci:

damiengg
Contributeur
Contributeur
Messages : 7
Enregistré le : 04 février 2019, 03:06
Vehicule(s) : Nissan Xtrail, Fiat 500, Fazer FZ6
GPS : Garmin

Re: Migration vers OpenStreetMap

Message par damiengg » 19 juillet 2019, 12:58

Salut,

Merci ! Ça fonctionne bien même si j'ai constaté un bogue sur la borne supérieure de la longitude.
Pour une valeur mini (10) car exemple, l'API me renvoit ces POIs :
Image

Je pense que tu as omis le coefficient qui semble être un facteur de 0,15.

À ce propos, est-ce que la valeur de ce facteur est important de ton coté (historique à cause de l'application mobile ou autre) ?
Si ce n'est pas le cas, je t'aurais proposé de peut être de passer sur une unité métrique, si on ne travaille pas en unité GPS :

Par exemple, si tu divises par la valeur de m par 111,319 (taille en kilomètre d'une unité GPS à la surface du globe terrestre), le paramètre m devient directement la distance en kilomètres (à vol d'oiseau) autour de laquelle on renvois les POIs.

Ça pourrait être plus précis comme définition du paramètre m au niveau de l'API. Qu'en penses-tu ?
Pour l'instant j'ai intègré la carte avec le coefficient de 0,15.

Autrement, c'est dommage que l'API ne renvoie les coordonnées des POI que pour la zone FR si on utilise les coordonnées :(
En cas d'utilisation des coordonnées GPS, pour ma part il ne devrait pas y avoir besoin de spécifier le pays sur l'API.

Une nouvelle version avec amélioration des performances (mise en cache maintenant basé sur LayerGroup), gestion des popup d'information, gestion de l'ajout des POI : https://gofile.io/?c=1Yn239

Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 957
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: Migration vers OpenStreetMap

Message par Lufop » 22 juillet 2019, 14:43

Et voila la premier version de la MAP Lufop avec Leaflet est en ligne et remplace désormais l'encienne MAP (google map) sur la page https://lufop.net/MAP


Il manque quelques fonctionnalités encore mais rien de critique...
Un énorme merci à toi damiengg pour ton aide qui m'a permis de mettre le pied a l’étrier de OSM et de leaflet...
Il me reste encore du boulot mais aujourd'hui un gros morceau est fait...


Lufop
Aidez nous à faire connaitre le site Lufop :
sur Facebook
sur Tweeter
:merci:

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 10 invités