Pages: 1
- Sujet précédent - [Openlayers] "Markers" dynamiquement pour géolocaliser des photos - Sujet suivant
#1 Fri 30 July 2010 18:30
- heretik
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 13
[Openlayers] "Markers" dynamiquement pour géolocaliser des photos
Bonjour,
Si je fais appel à vos connaissances, c'est pour me dépêtrer d'un problème qui me fait mal à la tête :
Je suis le créateur de http://www.partir-en-vtt.com, site que je développe à mon rythme depuis quasi 2 ans.
J'ai développé sous Openlayers (en m'aidant des exemples) une zone carto pour représenter les traces de mes balades, périples... Voilà ce que ça donne : http://partir-en-vtt.com/php/gpx/openla … ;numdep=39
La seconde étape consiste à géolocaliser de façon dynamique mes photos.
Pour se faire, j'ai utilisé ce qu'on appelle les données "EXIF" des photos. J'y récupère le datetime (date et heure) de la prise de la photo. A côté de tout ceci, durant mes balades un GPS récupère ma trace sous forme de points contenant également un datetime. J'ai ensuite fait un script php pour trouver les images qui peuvent se raccrocher aux points GPS.
Ma table (MySQL) contient donc :
id | latitude| longitude | elevation | image | id_balade |
En faisant une requête, je trouve donc les points GPS contenants une image :
Code:
$retour = mysql_query('SELECT id_balade, lon, lat,image FROM pts_gpx WHERE image != "" AND id_balade=\'' . $id_balade . '\'') or die (mysql_error());
Avec une boucle while, je peux ainsi récupérer toutes les latitudes et longitude et images à créer.
Code:
while ($donnees = mysql_fetch_array($retour)) { $lon = $donnees['lon']; $lat = $donnees['lat']; $image = $donnees['image']; }
La suite des événements doit faire en sorte de créer tous les points sur la carte. Alors j'ai bien réussi à créer un point sous openlayers :
Code:
var lat=46.6388 var lon=5.5084 layerMarkers = new OpenLayers.Layer.Markers("Markers"); map.addLayer(layerMarkers); var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); var size = new OpenLayers.Size(21,25); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); var icon = new OpenLayers.Icon('http://www.openstreetmap.org/openlayers/img/marker.png',size,offset); layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
La première question est comment faire en sorte de créer tous les points ?
Voici ce que j'ai tenté qui ne fonctionne pas :
a) côté php :
Code:
echo '<script langage=javascript> var INDICE =0; var tableau = Array(); </script>'; while ($donnees = mysql_fetch_array($retour)) { $lon = $donnees['lon']; $lat = $donnees['lat']; echo '<script langage=javascript> var lat ='.$lat.'; var lon = '.$lon.'; tableau[INDICE][0] = lat; tableau[INDICE][1]= lon; INDICE ++; </script>'; }
b) Côté openlayers :
Code:
function ajoute_point(var lat, var lon) { var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); var size = new OpenLayers.Size(21,25); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); var icon = new OpenLayers.Icon('http://www.openstreetmap.org/openlayers/img/marker.png',size,offset); layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon)); }
Code:
for(i=0, max=tableau.lenght; i<max; i++){ ajoute_point(tableau[i][0],tableau[i][1]); }
La seconde question est comment faire un popup qui montrerai l'image en question ?
Je vous remercie énormément par avance si vous pouvez m'aider ou me donner des axes de réflexions!
N'hésitez pas à me demander plus de précisions au besoin.
Amicalement, Loïc
Dernière modification par heretik (Fri 30 July 2010 21:40)
On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...
Hors ligne
#2 Sat 31 July 2010 10:58
Re: [Openlayers] "Markers" dynamiquement pour géolocaliser des photos
bonjour,
inspire toi de l'exemple openlayers
http://dev.openlayers.org/releases/Open … Layer.html
- génère un fichier texte comme dans l'exemple http://dev.openlayers.org/releases/Open … xtfile.txt
- ajoute une couche OpenLayers.Layer.Text
Le click sur le popup sera géré
Bon courage
Laurent
Hors ligne
#3 Sun 01 August 2010 19:18
- heretik
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 13
Re: [Openlayers] "Markers" dynamiquement pour géolocaliser des photos
Bonjour,
Merci pour l'exemple fourni!
La question est : ne peut t-on pas faire ceci sans passer par l'écriture d'un fichier ?
Ne peut-on pas boucler les données côté php pour par la suite générer à la volée les points (côté javascript)?
Merci.
Loïc
On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...
Hors ligne
#4 Mon 02 August 2010 18:53
- heretik
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 13
Re: [Openlayers] "Markers" dynamiquement pour géolocaliser des photos
Bonjour,
J'ai finalement réussi quelque chose avec de l'aide.
Le résultat : http://partir-en-vtt.com/php/gpx/openla … ;numdep=39
Enjoy!
On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...
Hors ligne
#5 Tue 03 August 2010 09:23
Re: [Openlayers] "Markers" dynamiquement pour géolocaliser des photos
La seconde étape consiste à géolocaliser de façon dynamique mes photos.
Pour se faire, j'ai utilisé ce qu'on appelle les données "EXIF" des photos. J'y récupère le datetime (date et heure) de la prise de la photo. A côté de tout ceci, durant mes balades un GPS récupère ma trace sous forme de points contenant également un datetime. J'ai ensuite fait un script php pour trouver les images qui peuvent se raccrocher aux points GPS.
Au passage un p'tit lien, des fois que ça puisse aider : http://georezo.net/forum/viewtopic.php?id=63788
Hors ligne
#6 Tue 03 August 2010 17:35
- heretik
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 13
Re: [Openlayers] "Markers" dynamiquement pour géolocaliser des photos
Bonjour et merci pour le lien, toujours intéressant!
On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...
Hors ligne
#7 Wed 04 August 2010 09:26
- heretik
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 13
Re: [Openlayers] "Markers" dynamiquement pour géolocaliser des photos
Pour les périples : http://partir-en-vtt.com/periples_vtt/v … riples=131 !
Dernière modification par heretik (Fri 06 August 2010 15:49)
On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...
Hors ligne
Pages: 1
- Sujet précédent - [Openlayers] "Markers" dynamiquement pour géolocaliser des photos - Sujet suivant