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

GeoDataDays 2025

#1 Tue 04 May 2010 15:16

Geomatikman
Juste Inscrit !
Date d'inscription: 27 Jul 2009
Messages: 6

OpenLayers+Markers dynamique

salut,
Maintenant j'ai un petit souci.Je veux afficher les markers dynamiquement en fonctions de coordonnées; et voila ce que j'ai fait;
je remplace coordonnée manuelle en lonlat.lon et lonlat.lat existant dans une page PHP et je l'appel come ca:
document.write('<?php include ("resultat.php"); ?>');

Le fichier .js dans une page;

Code:

function PINIZE() {
var lonlat='<?php echo ($lonlat); ?>';

var gphys = new OpenLayers.Layer.Google(
                "Relief",
                {'type': G_PHYSICAL_MAP , 'transparent': true, 'sphericalMercator': true}
map = new OpenLayers.Map( 'map_canvas');
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addLayers([gphys]);
//Creation du layer Marker
     markers = new OpenLayers.Layer.Markers("Marker");
     map.addLayer(markers);
    //Creation du Marker
       feature = new OpenLayers.Feature(gphys, new  OpenLayers.LonLat(lonlat.lon,lonlat.lat));
       marker = feature.createMarker();
       markers.addMarker(marker);
     marker.events.register("mousedown", marker, mousedown);
    //Gestion des evenements
     function mousedown(evt) {
       popup = feature.createPopup(true);
          popup.setContentHTML("Exemple de PopUp sur un marqueur");
            popup.setBackgroundColor("Yellow");
          popup.setOpacity(0.6);
       markers.map.addPopup(popup);
     }
         );

if(!map.getZoom()) {
        map.setCenter(new OpenLayers.LonLat(lonlat.lon,lonlat.lat));
        map.zoomTo(6);
    }
}

La page resultat.php:

Code:

include ("connexion.php");
$rechNomCom = $_GET['rechNomCom'];
$result = mysql_query("select nom, id, x, y, statut from localite where nom like '%".$rechNomCom."%' ;");

while($tabRes = mysql_fetch_array($result)) { 

    if ($tabRes['statut'] == 'AME') {
        $nomRes[] = "AME".$tabRes['nom'];
        $zoomRes[] = "5"; 
       $departementRes[] = "";

$xRes[] = $tabRes['x'];
$yRes[] = $tabRes['y'];
}
    } 
for($i=0; $i<sizeof($nomRes); $i++) {
echo "<li style='margin-top:10px; list-style-type:none;'><div style='color:#005a9f; text-decoration:underline; cursor:pointer;' onclick='

var lonlat = OpenLayers.Layer.SphericalMercator.forwardMercator(".$xRes[$i].", ".$yRes[$i].");

map.setCenter(new OpenLayers.LonLat(lonlat.lon, lonlat.lat), ".$zoomRes[$i].");

PINIZE();

'>".$nomRes[$i].($departementRes[$i] != "" ? " - ".$departementRes[$i] : "")."</div></li>";

 }

le souci je crois est que lonlat.lon /lat ne sont pas reconnu dans pinize()??
Y-a t il quelqu'un pour aide?

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo