banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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 :smile

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

gronux
Juste Inscrit !
Lieu: Quétigny
Date d'inscription: 7 Jul 2010
Messages: 1
Site web

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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 !



smile

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

 

Pied de page des forums

Powered by FluxBB