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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 27 July 2009 12:20

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

problème avec map.setCenter - JQuery

Bonjour,

j'ai un souci avec la fonction map.setCenter quand cette dernière est incorporée au sein d'une fonction de type AJAX JQuery...

Un message de FireBug m'indique "map.setCenter n'est pas une fonction"

L'objectif de l'AJAX est de récupérer les X et Y de chaque point.
Ensuite, un clic sur un lien dont l'id représente les coordonnées doit permettre d'aller directement sur le point.
Lors du clic, rien ne se passe..

Voici le code, si qqn peut me dire pkoi la fonction setCenter ne marche pas...

Code:

<script type="text/JavaScript">
   $(document).ready(function(){
var map;
var tiled;
var coord;
        
(...)
                
$.PeriodicalUpdater({
                    url : 'backend.php',
                    method: 'get',
                    maxTimeout: 1000
                },
                function(xml){
                    $("#test").empty();
                     $("notification",xml).each(function(id) {
                    notification = $("notification",xml).get(id);
                        coord=$("x",notification).text()+","+$("y",notification).text();
                    $("#test").append("<li>"+date+" | "+commune+" | <a href='#' id="+coord+" class='Lien' onclick='map.setCenter(new OpenLayers.LonLat(581463,4.23015e+006),2)'>Afficher le point ("+coord+")</a></li>");


                            tiled.mergeNewParams({'random':Math.random()});
                    
            });                    
    


            
   });

(...)

 </script>

En test, j'ai imposé le centre new OpenLayers.LonLat(581463,4.23015e+006),2)


Ce qui est bizarre c'est que si je mets la fonction setCenter au sein de la fonction d'exécution AJAX, elle marche. Elle ne fonctionne pas au sein du "onclick"

une piste?

NB : Le PeriodicalUpdater est un plugin qui permet d'afficher les dernières modifications d'une base...


geodata au cerema et petits billets en géomatique

Hors ligne

 

#2 Mon 27 July 2009 13:07

René-Luc D'Hont
Participant assidu
Date d'inscription: 7 Nov 2006
Messages: 328
Site web

Re: problème avec map.setCenter - JQuery

J'ai une piste facile : extrait

Code:

var map

de

Code:

$(document).ready(function(){

Tu peux aussi extraire :

Code:

var tiled;
var coord;

Hors ligne

 

#3 Mon 27 July 2009 14:41

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: problème avec map.setCenter - JQuery

finalement, j'ai résolu mon pb:

Voici le code final:

Code:

$.PeriodicalUpdater({
                    url : 'backend.php',
                    method: 'get',
                    sendData:{premiere: $("#premiere").val(), deuxieme: $("#deuxieme").val()},
                    maxTimeout: 1000
                },
                function(xml){
                    $("#test").empty();
                    $("notification",xml).each(function(id) {
                        notification = $("notification",xml).get(id);
                        date=$("date",notification).text();
                        commune=$("commune",notification).text();
                        coord=$("x",notification).text()+","+$("y",notification).text();
                        $("#test").append("<li>"+date+" | "+commune+" | <a href='#' id="+coord+" class='allerA'>Afficher le point ("+coord+")</a></li>");
                        
                        
                        tiled.mergeNewParams({'random':Math.random()});
                    });
                    //aller au point
                    $(".allerA").click(function(){
                    X=parseFloat(this.id.substring(0,this.id.indexOf(",")));
                    Y=parseFloat(this.id.substring(this.id.indexOf(",")+1,this.id.length));
                    map.setCenter(new OpenLayers.LonLat(X,Y),3);                    
                    })
            });

geodata au cerema et petits billets en géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB