[FAIT] Carte avec recherche de lieux
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
[FAIT] Carte avec recherche de lieux
Plus qu'un long discours, l'essayer c'est l'adopter :
ça se passe en haut à gauche ici :
http://layers.openstreetmap.fr/
discret, efficace (ou presque), permet de chercher ce qui est hors refuges.info afin de se déplacer plus rapidement sur la carte.
Tu penses que ça serait intégrable chez nous ?
ça se passe en haut à gauche ici :
http://layers.openstreetmap.fr/
discret, efficace (ou presque), permet de chercher ce qui est hors refuges.info afin de se déplacer plus rapidement sur la carte.
Tu penses que ça serait intégrable chez nous ?
Modifié en dernier par sly le 16 oct. 2012, 20:18, modifié 3 fois.
-
- Messages : 3704
- Enregistré le : 08 avr. 2006, 21:58
Oui, ce sont les fonctions de geotagging
J'ai fait piteusement impasse jusqu'à maintenant sans grande raison valable mais j'y pense car c'est très utile
Elles ne sont pas directement liées à OpenLayers mais à l'exploitation de sources d'infos données par les fournisseur de cartes. De sorte qu'il faut réinterfacer chaque carte
D’habitude, ces fonctions sont facilement disponibles dans l'API du fournisseur mais, comme je m'en passe, je dois refaire l'interface
Je n'ai pas vraiment regardé, mais ça ne devrait pas être insurmontable
J'ai fait piteusement impasse jusqu'à maintenant sans grande raison valable mais j'y pense car c'est très utile
Elles ne sont pas directement liées à OpenLayers mais à l'exploitation de sources d'infos données par les fournisseur de cartes. De sorte qu'il faut réinterfacer chaque carte
D’habitude, ces fonctions sont facilement disponibles dans l'API du fournisseur mais, comme je m'en passe, je dois refaire l'interface
Je n'ai pas vraiment regardé, mais ça ne devrait pas être insurmontable
Dominique http://chemineur.fr
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Pour ma part, je ne pense pas qu'il soit nécessaire d'adapter toutes les apis de recherche de tous les fournisseurs de carte (surtout qu'un jour ça va couper en face et que ça en fait plein à interfacer)
Ce que je proposais de faire c'était plutôt de repiquer le code (libre) de la page précédement citée, pour intégrer le chercheur "nominatim"
soit un minimum (je l'espère) de boulot pour un résultat acceptable
Ce que je proposais de faire c'était plutôt de repiquer le code (libre) de la page précédement citée, pour intégrer le chercheur "nominatim"
soit un minimum (je l'espère) de boulot pour un résultat acceptable
-
- Messages : 3704
- Enregistré le : 08 avr. 2006, 21:58
Voilà. C'est fait
En fait, il n'y a pas de lien avec la carte : on peut rechercher dans la base d'un fournisseur, ce qui donne un lon-lat et afficher sur n'importe quelle carte
Puisqu'on est libre, j'ai interfacé nominatim.openstreetmap.org
- saisie de la recherche dans le champ recherche (dispo en haut de toutes les pages)
- restitution dans la page de résultat des recherches
- choix -> on va sur la carte
A essayer
P.S. si tu pouvais mettre la main sur cette fonction PHP qui permet de transcoder de l'unicode 4 digit en iso-8859-1, tu m'arrangerais
En fait, il n'y a pas de lien avec la carte : on peut rechercher dans la base d'un fournisseur, ce qui donne un lon-lat et afficher sur n'importe quelle carte
Puisqu'on est libre, j'ai interfacé nominatim.openstreetmap.org
- saisie de la recherche dans le champ recherche (dispo en haut de toutes les pages)
- restitution dans la page de résultat des recherches
- choix -> on va sur la carte
A essayer
P.S. si tu pouvais mettre la main sur cette fonction PHP qui permet de transcoder de l'unicode 4 digit en iso-8859-1, tu m'arrangerais
Modifié en dernier par Dominique le 14 oct. 2012, 16:45, modifié 1 fois.
Dominique http://chemineur.fr
-
- Messages : 4233
- Enregistré le : 16 févr. 2005, 01:00
- Localisation : Isére
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Pas mal du tout, et je n'avais pas pensé à fusionner ça avec notre propre recherche.Dominique a écrit :Voilà. C'est fait :D
Tant que les résultats sont bien clairement séparés entre notre base et des points "bases de tiers", ça me va.
J'ai même ré-insisté sur le point pour le cas où la recherche ne trouve rien dans notre base afin de bien préciser qu'il n'y a rien chez nous, mais que les choix proposés viennent d'ailleurs.
ça ne peut pas exister, il n'y a pas bijection entre les deux ensembles.P.S. si tu pouvais mettre la main sur cette :blue: :blue: fonction PHP qui permet de transcoder de l'unicode 4 digit en iso-8859-1, tu m'arrangerais
Au mieux il existe des conversions partielles, mais le cyrillique ne passera jamais.
unicode 32 dis-tu ? qui a tu trouvé qui te balance de l'unicode 32 ? nominatim ? ça m'étonnerais terriblement, la base OSM étant en UTF-8
Si, comme je le crois, je ne me suis pas trompé, ton bonheur est là :
http://php.net/manual/fr/function.utf8-decode.php
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Pas sûr que pour trouver "tataouine" ça t'aide pour autant... argh, quoi, ça existe en tunisie ! On en apprend tous les jours...Claude Mauguier a écrit :Génial : plus besoin de ramer sur les cartes pour trouver Tataouine ou Trou-les-Bains :D
http://www.refuges.info/nav.php?zoom=13 ... n=10.44152
-
- Messages : 4233
- Enregistré le : 16 févr. 2005, 01:00
- Localisation : Isére
J'ai fait un essai pour trouver "Mettelhorn" (au-dessus de Zermatt) : ça marche ! bien que le point n'existe pas sur WRI. Pareil pour Similaun.
Par contre "Grossvenediger" ne marche pas... probablement une question d'orthographe sur OSM/Map Refuges.info, où les deux "s" du nom apparaissent avec la vieille graphie germanique (une sorte de B majuscule sans la barre du milieu). Mais c'est marginal.
Par contre "Grossvenediger" ne marche pas... probablement une question d'orthographe sur OSM/Map Refuges.info, où les deux "s" du nom apparaissent avec la vieille graphie germanique (une sorte de B majuscule sans la barre du milieu). Mais c'est marginal.
-
- Messages : 3704
- Enregistré le : 08 avr. 2006, 21:58
ne cherche pas, j'ai bu. C'est bien de utf8, mais sous forme java (dans le JSON que je cherche à interpréter en PHP !)sly a écrit :unicode 32 dis-tu ? qui a tu trouvé qui te balance de l'unicode 32 ? nominatim ? ça m'étonnerais terriblement, la base OSM étant en UTF-8
Si on remplace \u00 par &#x ça s'affiche direct
Dominique http://chemineur.fr
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Ok, je me suis gourré
C'est même pas de l'utf-16, c'est de l'utf-16 dans une représentation ascii hexadécidmal échappée par \u
J'ai jamais entendu parlé de cette bidouille.
Ils peuvent pas faire de l'utf8 comme tout le monde.
J'ai vérifié avec &format=xml et là, tout est "normal" dans le sens où c'est bien de l'utf8
J'en perd mon latin-1 et je ne vois pas comment faire ça proprement à part juste bidouiller salement
utf-8 et utf-16 semblent avoir une compatibilité pour les caractères latins, il faudrait donc d'abord convertir les "\uXYZT" en UTF-8
Voici la bidouille sale trouvée sur le net :
http://www.avoid.org/?p=67
un truc style ça :
function from_json_to_utf8($json)
{
return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", $json);
}
puis :
print(utf8_decode(from_json_to_utf8($text)));
semble faire l'affaire.
Pfffff, c'est quoi ce caca de json !Dominique a écrit : \u00a9
J'ai bien essayé utf8, mais c'est utf16 qu'il faudrait !
C'est même pas de l'utf-16, c'est de l'utf-16 dans une représentation ascii hexadécidmal échappée par \u
J'ai jamais entendu parlé de cette bidouille.
Ils peuvent pas faire de l'utf8 comme tout le monde.
J'ai vérifié avec &format=xml et là, tout est "normal" dans le sens où c'est bien de l'utf8
J'en perd mon latin-1 et je ne vois pas comment faire ça proprement à part juste bidouiller salement
utf-8 et utf-16 semblent avoir une compatibilité pour les caractères latins, il faudrait donc d'abord convertir les "\uXYZT" en UTF-8
Voici la bidouille sale trouvée sur le net :
http://www.avoid.org/?p=67
un truc style ça :
function from_json_to_utf8($json)
{
return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", $json);
}
puis :
print(utf8_decode(from_json_to_utf8($text)));
semble faire l'affaire.
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Sauf deuxième erreur, d'après les docs que j'ai lu c'est bien de l'utf-16.Dominique a écrit : :oops: :oops: :oops: ne cherche pas, j'ai bu. C'est bien de utf8, mais sous forme java (dans le JSON que je cherche à interpréter en PHP !)
Si on remplace \u00 par &#x ça s'affiche direct :idea:
Toutefois, l'utf-16 semble intégrer comme sous ensemble ISO9660-1
C'est à dire que un é (dont la représentation hexadécimal en ISOtruc est 0xC9) sera en UTF-16 : 0x00C9
En clair, si tu vire les 00 du début, et que tu prétends que c'est de l'iso, hop ça marche par magie.
Par contre, le code &#xXY; étant interprété par le navigateur uniquement, ça ne te permettra pas d'envoyer email ni stoquer en base.
Bon, tout ça me fait penser doucement que le choix initial de refuges.info de tout faire en ISO9660-15 commence à devenir un handicap à l'heure d'un UTF8 qui se répand de partout.
La transition ne s'avère pas simple, mais il va peut-être falloir y passer...
-
- Messages : 3704
- Enregistré le : 08 avr. 2006, 21:58
Par contre, &xe8 ne marche pas si le code est suivi par une lettre hexa
Il faut une expression régulière pour rajouter le ; à la fin &xe8;
Il faut une expression régulière pour rajouter le ; à la fin &xe8;
Dominique http://chemineur.fr
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Une entité html étant au format &*; tu ne peux y échapper si tu veux suivre ce chemin. Mais pour la pérénité, je te suggère ma proposition ci-avant qui évite de passer par les entités HTML, qui, il me semble, nous péterons dans la g... tôt ou tard.Dominique a écrit :Par contre, &xe8 ne marche pas si le code est suivi par une lettre hexa
Il faut une expression régulière pour rajouter le ; à la fin &xe8; :(
Ou encore mieux : utiliser le xml
-
- Messages : 3704
- Enregistré le : 08 avr. 2006, 21:58
J'ai viré ma conversion burlesque de JSON en PHP et je suis passé par XML: ça marche nickel
Par contre, en PHP 5.2.0, je ne sais pas détecter simplement qu'il n'y a pas de fils à un SimpleXMLElement
Serait il envisageable d'upgrader le PHP STP ? (en 5.3, on a SimpleXMLElement->count())
Par contre, en PHP 5.2.0, je ne sais pas détecter simplement qu'il n'y a pas de fils à un SimpleXMLElement
Serait il envisageable d'upgrader le PHP STP ? (en 5.3, on a SimpleXMLElement->count())
Dominique http://chemineur.fr
-
- Messages : 5041
- Enregistré le : 29 févr. 2004, 17:59
- Localisation : Chambéry - Savoie
Dans l'immédiat (je veux dire : quelques jours) aucune chance, sur le moyen terme pourquoi pas, mais de nombreux tests devront d'abord être faits pour valider la compatibilité du site avec php 5.3Dominique a écrit : Serait il envisageable d'upgrader le PHP STP ? (en 5.3, on a SimpleXMLElement->count())