#1 Mon 27 July 2009 12:20
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
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