Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 21 August 2014 09:34

Neogeekette
Juste Inscrit !
Date d'inscription: 21 Aug 2014
Messages: 4

Bind un marker Openlayer et le déplacer dynamiquement

Bonjour à vous,

Je suis étudiante et actuellement en stage professionnel pour valider mon titre de développeuse. Durant ce stage, j'ai été affectée sur un projet qui utilise Openlayers sur lequel je suis bloquée. sad

J'aurais deux questions principales :

1- Puis je binder les propriétés d'un Marker Openlayer avec un modèle Knockout que j'ai déjà de manière  à faire afficher les coordonnées en temps réel sur mon IHM ?

2- Comment dois je m'y prendre pour faire déplacer  un Marker Openlayer de manière dynamique et automatique ? Car tout ce que j'ai vu permet de déplacer  un Marker  à la souris ou des choses du genre, pour ma part je dois vraiment simuler le déplacement de ce marker.


J'espère que j'aurais été  assez claire pour vous faire comprendre mes soucis. sad

Je vous remercie de m'avoir lue.

Bonne journée à vous

Flo, Neogeekette bloquée, snif

Hors ligne

 

#2 Fri 22 August 2014 05:08

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Bind un marker Openlayer et le déplacer dynamiquement

Bonjour,
Ton modèle est un algo javascript, c'est ca ?

Pour deplacer le marker, il te suffit t'utiliser sa méthode moveTo (cf. la doc)

Donc, si tu as déjà un algo javascript pour ton modele Knockout, il te suffit de rajouter à chaque deplacement un moveTo sur le marker.

Si tu as des résultats de modèle sous forme de liste (les n positions), il te faut faire une fonction récursive avec un timer (voir la fonction javascript setTimeout : http://www.w3schools.com/jsref/met_win_settimeout.asp) et qu'à chaque appel de la fonction tu incrémente un compteur et déplace le marker à cette postion dans ta liste de positions.


Bonne journée (euh nuit pour toi, je suis à l'autre bout de la terre) !

Hors ligne

 

#3 Fri 22 August 2014 08:20

Neogeekette
Juste Inscrit !
Date d'inscription: 21 Aug 2014
Messages: 4

Re: Bind un marker Openlayer et le déplacer dynamiquement

Bonjour Jeremie,


Tout d'abord merci à toi pour cette réponse.

Pour ma part je me lève  à peine, j'embauche qu'à 9h30 et ce sera sous la pluie en plus snif.

Au moins mon rayon de soleil sera ta réponse  à mon sujet qui va peut être me débloquer, je vais explorer ces pistes et je te tiendrais au courant.

Merci encore.

Flo, Neogeekette sous la pluie ....

Hors ligne

 

#4 Mon 25 August 2014 07:16

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Bind un marker Openlayer et le déplacer dynamiquement

Bonjour Flo,
Sous quelle forme se présente ton modèle knockout ?
Il est en javascript ? Les positions sont déjà calculées ou calculées à la volée ?

Pour déplacer ton marker de manière automatique, il va te falloir le faire par code, à priori en le calquant sur ton modèle (reste à savoir sous quelle forme il s'exprime).


Exemple de déplacement de 10 metres vers l'est et 5 metres vers le sud toutes les 5 secondes du marker (variable marker) existant, le tout 10 x maximum

Code:

//Fonction de deplacement du marker (variable marker)
function deplaceMarker(lon, lat){
    var newLonLat = new OpenLayers.LonLat(lon, lat);
    var newPx = map.getLayerPxFromLonLat(newLonLat);
    marker.moveTo(newPx);
}

//Preparation de la fonction de deplacement constant régulier du marker
function deplaceAndDelay(delta_x, delta_y, delay, current_iteration, max_iterations){
   if(current_iteration >= max_iterations)
     return; //On sort si on est arrivé au nombre max d'itération
   
   current_iteration += 1; //On incrémente le compteur

   //On deplace le marker
   var lonLat = marker.lonlat;
   deplaceMarker(lonLat.lon + delta, lonLat.lat + delta_y);

   //On relance la fonction elle-même (appel récursif) au bout du timer (grace à setTimeout)
   setTimeout(
      function(){deplaceAndDelay(delta_x, delta_y, delay, current_iteration, max_iterations)},
      delay
   );
}


//On lance : 10 mètres vers l'est (delta_x), 5 mètres vers le sud (delta_y), 5000 millisecondes (delay), iteration 0 et nombre d'itération maximum 10
deplaceAndDelay(10, -5, 5000, 0, 10);

Dernière modification par Cornet Jérémie (Mon 25 August 2014 07:18)

Hors ligne

 

#5 Mon 25 August 2014 11:28

Neogeekette
Juste Inscrit !
Date d'inscription: 21 Aug 2014
Messages: 4

Re: Bind un marker Openlayer et le déplacer dynamiquement

Bonjour Jérémie,

Je ne travaille pas aujourd'hui mais je peux tester ton exemple de chez moi.

Je te tiens au courant de l'évolution de mon souci.

Bon lundi.

Ps : tu as eu mon mail en privé ?

Neogeekette en weekend  à rallonge.

Hors ligne

 

#6 Tue 26 August 2014 06:26

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Bind un marker Openlayer et le déplacer dynamiquement

Bonjour Neogeekette,
je t'ai répondu en privé ;-)

N'hésites pas, sans dévoiler ton code source, à expliquer un peu l'organisation de ton code et comment s'articule ton modèle avec ta page web.

Jérémie

PS : quand tu as écris ton message, mon lundi était déjà bien entamé ;-) (20h30 dans mon coin du monde)

Dernière modification par Cornet Jérémie (Tue 26 August 2014 06:26)

Hors ligne

 

#7 Tue 26 August 2014 08:11

Neogeekette
Juste Inscrit !
Date d'inscription: 21 Aug 2014
Messages: 4

Re: Bind un marker Openlayer et le déplacer dynamiquement

Bonjour ou bonsoir Jérémie,

En effet je n'avais pas fais attention que tu étais Nouméa, jolie ile. Moi et mon sens de l'observation .....

Ok j'ai essayé ta solution hier chez moi, mais pas réussie  à l'adapter, mon coté blonde sûrement  ou mon manque de connaissances.
Je te donne plus de détail en privé pour les raisons que j'ai évoqué.

Une chose est sûre c'est que je te remercie pour ton aide.

Neogeekette, qui réembauche à 9h, pfff..........

Hors ligne

 

Pied de page des forums

Powered by FluxBB