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

IGN API Géoportail Discussion :

Affichage du nombre de points dans une zone


Sujet :

IGN API Géoportail

  1. #1
    Membre éclairé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 700
    Points
    700
    Par défaut Affichage du nombre de points dans une zone
    Bonjour à tous,

    Voilà j'ai pondu une application avec l'API de l'IGN et il me manque juste une fonctionnalité.

    J'explique le cas: lorsque je dezoom ma carte un certain nombre de points très proche se retrouvent comme regroupés en paquet ( ce qui est le fonctionnement normal ) j'aimerais pouvoir afficher le nombre de points contenus dans cette zone est-ce possible ?

  2. #2
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Bonjour,

    si votre couche est une couche vecteur, la solution est à chercher de ce côté :.

    cf. http://dev.openlayers.org/releases/O...luster-js.html

    qui permet de gérer un affichage aggrégé des points trop proches à pertir d'une certaine échelle

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut
    J'ai l'impression que cette fonctionnalité a des problèmes de regroupement dans le cas de l'API cf http://mga.alwaysdata.net/geoportail..._strategy.html

    L'ensemble des points se retrouve du côté de Saint-Malo avec des coordonnées au niveau de ce feature "cluster" en wgs84.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut
    La page http://edewaele.toile-libre.org/?p=113 m'a donné le début de la réponse ...
    En calculant la distance dans la bonne projection, cela se passe nettement mieux.

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 700
    Points
    700
    Par défaut Affichage du nombre de points dans une zone
    Bonjour et merci de votre aide à tous,

    Il me reste encore un petit soucis, je n'arrive pas à appliquer le cluster...
    Voici le code coupable, 0 erreurs javacript remontées...

    Voyez-vous une erreur ? :s

    var clusterStyle = new OpenLayers.Style({
    label:"${nombre}",
    graphicWidth: 20,
    graphicHeight: 20
    }, {
    context: {
    nombre: function(feature) {
    if(feature.attributes.count>=2)
    return feature.attributes.count;
    else
    return "";
    }
    }
    });

    var clusterCat = new OpenLayers.Strategy.Cluster();

    clusterCat.shouldCluster = function(cluster,feature)
    {
    if(cluster.cluster[0].attributes.type != feature.attributes.type)
    {
    return false;
    }

    var cc = cluster.geometry.getBounds().getCenterLonLat();
    var fc = feature.geometry.getBounds().getCenterLonLat();
    var distance = (Math.sqrt(Math.pow((cc.lon - fc.lon), 2) + Math.pow((cc.lat - fc.lat), 2)) / this.resolution);
    return (distance <= 35);
    };

    var layerPOI = new OpenLayers.Layer.Vector("Points d'intérêt", {
    projection: new OpenLayers.Projection("EPSG:4326"),
    strategies: [clusterCat],
    styleMap: clusterStyle
    });

    viewer.getMap().addLayer(layerPOI);

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut
    Mon code a été amputé de nombreuses lignes !
    Il faut repartir d'une version fraiche de ma page puis appliquer les modifications une à une jusqu'à obtenir le comportement souhaité.

  7. #7
    Membre éclairé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 700
    Points
    700
    Par défaut Affichage du nombre de points dans une zone
    Je vous remercie j'ai trouvé mon bonheur, mon seul petit soucis avec cette fonctionnalité reste de pouvoir personnaliser la couleur des chiffres.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut Une url
    pour pouvoir poursuivre ...

  9. #9
    Membre éclairé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 700
    Points
    700
    Par défaut Affichage du nombre de points dans une zone
    Je n'ai malheureusement pas l'autorisation de communiquer l'url désolé

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par atlanthot Voir le message
    Je n'ai malheureusement pas l'autorisation de communiquer l'url désolé
    Il doit être possible de ne mettre sur un serveur que la partie du code avec la carte, non?

  11. #11
    Membre averti
    Femme Profil pro
    Consultante SIG
    Inscrit en
    Mars 2011
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultante SIG

    Informations forums :
    Inscription : Mars 2011
    Messages : 233
    Points : 356
    Points
    356
    Par défaut
    Bonjour,
    il me semble qu'il faut rajouter la stratégie fixed pour que le cluster fonctionne.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strategies:[
       new OpenLayers.Strategy.Fixed(),
       new OpenLayers.Strategy.Cluster({distance: 10, threshold: 3})
    ]

Discussions similaires

  1. [A-00] Compter le nombre de caractère dans une zone de texte
    Par etoileetoile dans le forum VBA Access
    Réponses: 5
    Dernier message: 23/05/2024, 17h31
  2. Réponses: 3
    Dernier message: 10/02/2010, 22h02
  3. Affichage des sauts de lignes dans une zone de texte
    Par Whombat dans le forum Langage
    Réponses: 3
    Dernier message: 25/01/2009, 02h47
  4. Réponses: 3
    Dernier message: 04/10/2007, 19h06
  5. Réponses: 3
    Dernier message: 27/09/2006, 11h35

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