Géolocalisation

More
2 months 3 weeks ago #157144 by Cefaliyon
Cefaliyon created the topic: Géolocalisation
Bonjour,

Je cherche urgemment un code JavaScript me permettant de récuperer ma position dans une question (lattitude, longitude) à partir de l'api JavaScript de google map. Quelqu'un peut-il m'aider ?

Please Log in to join the conversation.

More
2 months 3 weeks ago #157147 by Nickko
Nickko replied the topic: Géolocalisation
Dans ton cas "urgemment" je te conseille de te tourner vers un développeur professionnel ou d'introduire une demande de feature payante auprès de l'équipe de Limesurvey (menu en haut de la page, communauté, Bugtracker).

Sinon, tu peux nous poser la question, ici sur le forum d'entraide entre utilisateur mais dans ce cas, il est préférable d'être courtois et patient, les terms comme urgents, sont malvenus.

Tu as regardé dans le manuel ?
Tu as essayé le type de question "carte" ?

Nickko
Ergonome / Usability expert
The following user(s) said Thank You: LouisGac

Please Log in to join the conversation.

More
2 months 3 weeks ago #157148 by Cefaliyon
Cefaliyon replied the topic: Géolocalisation
Bonjour Nickko,

Je m'excuse d'avoir été maladroit. Je ne m'attendais pas à une réponse aussi rapide et je t'en remercie.

J'ai essayé la carte mais elle ne me convient pas. Avec la carte, je dois connaître ma position, la chercher dans la carte et cliquer dessus pour qu'elle me renvoie mes coordonnées. Ce que je souhaite faire c'est plutôt l'inverse, c'est à dire récupérer automatiquement mes coordonnés (latitude, longitude) et afficher ma position mais pas nécessairement sur la carte.

J'ai fait quelques rechercher et j'ai vu que tu avais traité un sujet semblable et vous étiez allez plus loin d'ailleurs. Je ne m'y connaît pas trop en JavaScript et je te serai reconnaissant de m'aider à résoudre mon souci.
D'avance merci.

Please Log in to join the conversation.

More
2 months 3 weeks ago #157149 by Nickko
Nickko replied the topic: Géolocalisation
Je ne pense pas que ce soit moi qui ai été plus loin, j'avoue, maintenant que je comprends ta demande que je ne sais pas trop quoi te proposer. Je pense que Denis, Louis ou Benoît devraient t'être plus utiles que moi.

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
2 months 3 weeks ago #157195 by Ben_V
Ben_V replied the topic: Géolocalisation
Salut,


Le code javascript contenu dans la discussion suivante, bien qu'assez ancien semble toujours valide...
www.limesurvey.org/forum/can-i-do-this-w...ving-gps-coordinates

Sinon essaie de demander de l'aide ici dans le forum anglais car @MSMSEVN semble avoir réussi il y a peu à obtenir ce que tu recherches en se basant sur cette même discussion ;)

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The following user(s) said Thank You: LouisGac

Please Log in to join the conversation.

More
2 months 3 weeks ago #157240 by Cefaliyon
Cefaliyon replied the topic: Géolocalisation
Merci Ben_V.
C'est une solution qui doit marcher je pense. Je n'ai pas vu ta réponse plus tôt et je me suis démerdé tout seul pour apprendre les bases du JavaScript en 2 jours et résoudre mon problème. Je suis arrivé à un résultat satisfaisant et je le partage avec vous.
Ma solution permet de récupérer les coordonnées géographiques, de les insérer directement dans la réponse d'une question de type zone de texte court ou long et d'afficher la position récupérée sur une carte. Je vous laisse découvrir :
<script type="text/javascript" charset="utf-8">
 
var xlat ; var xlng ;
  function getLocation() {
   if(navigator.geolocation)
{
    navigator.geolocation.getCurrentPosition(showLocation, errorHandler);
}
else
{
    alert('Votre navigateur ne prend malheureusement pas en charge la géolocalisation.');
}
}
function showLocation(position)
{
    alert('Latitude : '+ position.coords.latitude +' - Longitude : '+ position.coords.longitude,"Votre position a été localisée avec succès");
           xlat = position.coords.latitude ;
           xlng = position.coords.longitude;
           var Idt = "{SGQ}";
           document.getElementById("answer"+Idt).value= xlat+", "+xlng;
}
 
function errorHandler(error)
{
    // On log l'erreur sans l'afficher, permet simplement de débugger.
    alert('Geolocation error : code '+ error.code +' - '+ error.message);
 
    // Affichage d'un message d'erreur plus "user friendly" pour l'utilisateur.
   // alert('Une erreur est survenue durant la géolocalisation. Veuillez réessayer plus tard ou contacter le support.');
}
 
function maPosition(){
  if(xlat==null && xlng==null) {
    alert("Vous devez vous géolocaliser d'abord !");
  }
  else {
     alert("Longitude : "+xlng, "Latitude : "+xlat);
  }
}
 
function afficherCarte(){
   if(xlat==null && xlng==null) {
    alert("Vous devez vous géolocaliser d'abord !");
  }
  else {
    myMap(xlat,xlng);
  }
}
</script>
 
<p id="paragraphe_01">
  <input id="Geolocaliser" onclick="getLocation()" type="button" value="Geolocaliser" /> 
  <input id="Coordonnees" onclick="maPosition()" type="button" value="Voir Coordonnés" /> 
  <input id="Carte" onclick="afficherCarte()" type="button" value="Afficher sur la carte" />
</p>
 
<script type="text/javascript" charset="utf-8">
  document.getElementById("Geolocaliser").style.color = "black";
  document.getElementById("Coordonnees").style.color = "black";
  document.getElementById("Carte").style.color = "black";
</script>
 
<div id="googleMap" style="width:100%;height:400px;"> </div>
<script>
function myMap(nlat,nlng) {
  var myLatlng = new google.maps.LatLng(nlat,nlng);
  var mapOptions = {
    zoom: 16,
    center: myLatlng
  }
  var map = new google.maps.Map(document.getElementById("googleMap"), mapOptions);
 
  var marker = new google.maps.Marker({
    position: myLatlng,
    title:"Ma Position"
  });
 
  // To add the marker to the map, call setMap();
  marker.setMap(map);
}
 
</script> <script src="https://maps.googleapis.com/maps/api/js?key=VotreCléGoogleMap&callback=myMap"></script>

Please Log in to join the conversation.

More
2 months 3 weeks ago #157241 by Cefaliyon
Cefaliyon replied the topic: Géolocalisation
Bon à savoir :

- Vous devez remplacer "VotreCléGoogleMap" par votre propre clé dans le code que j'ai posté précédemment ;
- Si vous êtes en http (donc site pas sécurisé) le navigateur Chrome refusera de laisser récupérer votre position ;
- LimeSurvey est tout simplement magic et on peut aller loin avec le fameux et puissant outil "Expression Manager" et du JavaScript si nécessaire...

Merci à tous et excellente soirée !
The following user(s) said Thank You: Ben_V

Please Log in to join the conversation.

More
2 months 3 weeks ago #157246 by DenisChenu
DenisChenu replied the topic: Géolocalisation
Salut,

En fait à la base : si tu n'as besoin que de la latitude et la longitude : le script de tpartner est tout à fait celui qu'il te faut.
Après j'ai bien un mini projet (c'est à dire, même sans financement) de proposer un plugin pour l'ajouter automatiquement au questions de type cartos de LimeSurvey.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
An error happen ? Before make a new topic : remind the Debug mode .
The following user(s) said Thank You: Cefaliyon

Please Log in to join the conversation.

Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now