IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

[Mapquest] Regroupement de marqueurs


Sujet :

Bibliothèques & Frameworks

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [Mapquest] Regroupement de marqueurs
    Bonjour à tous,

    J'ai un soucis pour grouper des marqueurs sur MapQuest

    Mon problème :

    J'insère sur ma map MapQuest des marqueurs, tout fonctionne correctement. Cependant j'en ai énormément et je voudrais les grouper pour que ce soit plus propre.

    Rendu :
    Nom : map.PNG
Affichages : 468
Taille : 587,6 Ko

    Ce que j'aimerais que ça fasse :
    Nom : map1.png
Affichages : 466
Taille : 473,5 Ko

    Et quand on clique sur un marqueur, ca fait un zoom puis ca affiche ceux qui étaient groupés dans ce point là et ainsi de suite jusqu'à arriver à un seul marqueur.

    J'ai essayé de chercher sur la doc mapquest mais rien trouvé
    Avez vous une idée ?

    Voici mon code (les marqueurs proviennent d'une api):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    window.onload = function() {
        L.mapquest.key = 'MA_CLEF';
     
        var map = L.mapquest.map('map', {
    	    center: [45.75, 4.85],
    	    layers: L.mapquest.tileLayer('map'),
    	    zoom: 12
        });
     
        ajaxGet("https://api.jcdecaux.com/vls/v1/stations?contract=Lyon&apiKey=Ma_CLEF", function (reponse) {
            // Transforme la réponse en un tableau d'articles
            var listePoints = JSON.parse(reponse);    
     
    	   for (var i = listePoints.length - 1; i >= 0; i--) {
    	    	L.marker([listePoints[i].position.lat, listePoints[i].position.lng], {
    	        	icon: L.mapquest.icons.marker(),
    	        	draggable: false
    	        }).bindPopup(listePoints[i].address).addTo(map);
    	    };
    	});
     
    };
    Merci d'avance !


    EDIT :

    Forcément quand je poste le message que je trouve la solution
    pour ceux que ça intéresse : https://developer.mapquest.com/docum...rker-clusters/

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Bon finalement j'ai un autre soucis

    J'ai réussi a stacker mes marqueurs, simplement je n'arrive pas a récupérer les infos dessus (au click)

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    window.onload = function() {
        L.mapquest.key = 'Ma clef';
        var baseLayer = L.mapquest.tileLayer('map');
     
        var map = L.mapquest.map('map', {
          center: L.latLng(45.75, 4.85),
          layers: baseLayer,
          zoom: 12
        });
     
        ajaxGet("https://api.jcdecaux.com/vls/v1/stations?contract=Lyon&apiKey=Ma clef", function (reponse) {
        	var addressPoints = JSON.parse(reponse);	
     
            var markers = L.markerClusterGroup();
     
            for (var i = 0; i < addressPoints.length; i++) {
              var title = addressPoints[i].name;
              var id = addressPoints[i].number;
              var marker = L.marker(new L.LatLng(addressPoints[i].position.lat, addressPoints[i].position.lng), {
                title: title,
                alt: id,
                icon: L.mapquest.icons.marker()
              });
              marker.bindPopup(title);
              markers.addLayer(marker);
            }
     
            map.addLayer(markers);
    	});
    }

    donc ce que j'aimerai récupérer c'est le alt

    j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("img").click(function(){	
    	var titre = this.alt;
    	console.log(titre);
    });
    mais ca ne fonctionne pas
    Si vous avez une idée de comment je pourrais faire pour récupérer les infos merci

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    marker.bindPopup(title);
    c'est ta variable title qui doit contenir les infos que tu souhaites afficher, ou alors il te faut faire un marker.bindPopup(id);.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    mapquest utilise leaflet donc vous trouverez la documentation d'utilisation là :
    https://leafletjs.com/reference-1.3.0.html#marker

    et par exemple pour l'évènement du clic, vous pouvez essayer cela dans la boucle qui crée les marqueurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
              marker.on("click", function (e) {
     
              		console.log(this["options"]);
     
              });

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    j'ai trouvé du coup en faisant un console.log(this) ca m'a donné toutes les infos du marker et il se trouve que ma valeur est dans 'options' du coup :

    var identifiant = this.options.alt;

    Merci bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Regroupement de marqueurs personnalisés Google Maps pour iOS
    Par Pikkoro359 dans le forum Développement iOS
    Réponses: 1
    Dernier message: 31/07/2017, 21h22
  2. Regrouper les marqueurs
    Par A.keita dans le forum Android
    Réponses: 1
    Dernier message: 24/01/2017, 17h56
  3. [Google Maps] jquery ui map les marqueurs regroupés (avec markerclusterer) ne s'affichent pas
    Par xillibit dans le forum APIs Google
    Réponses: 4
    Dernier message: 21/07/2014, 18h03
  4. [Google Maps] V3 : Regrouper plusieurs infobulles qui ont un marqueur commun
    Par Pierrick81 dans le forum APIs Google
    Réponses: 1
    Dernier message: 02/09/2011, 13h06
  5. regrouper deux tables
    Par Shabata dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/05/2003, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo