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 :

Comment créer des repères vectoriels de diamètre différents suivant les données


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Comment créer des repères vectoriels de diamètre différents suivant les données
    Bonjour à tous,
    mon petit projet avance et je me dis que ça serait bien de présenter les repères que je place sur la carte (couche vectorielle) non pas simplement comme repères géographiques, mais en indiquant aussi pour chaque repère la valeur, donc en faisant varier son diamètre proportionnellement à cette valeur.

    Comme un dessin vaut mieux qu'un long discours, voilà ce que j'ai actuellement, et ce que j'aimerais avoir, si c'est possible. (j'ai simulé ce que je voulais sur la deuxième carte avec photoshop)






    Ci-dessous, la partie du code qui crée mes repères actuels. (les points KML sont créés à la volée en PHP et envoyés directement lors de l'appel à la fonction addLayer(), d'où la présence d'un .php dans la fonction...) )
    Qu'en pensez vous ? Faut-il créer plusieurs calques ? Ou peut-on faire varier la taille des points sur le même calque ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var myStyleMap = new OpenLayers.StyleMap({
    	"default": new OpenLayers.Style({ 'pointRadius': 10, 'fillOpacity': 0.6, 'strokeWidth': 1, 'fillColor': '#ff0000' }),
    	"select": new OpenLayers.Style({ 'pointRadius': 15, 'fillColor': '#ff0077' })
    	});
    
    viewer.getMap().addLayer(	
    
    		"KML",																
    		'Carabes',															
    		"loadkml.php",
    		{	visibility:true, styleMap:myStyleMap	},
    		{	formatOptions:{extractStyles :false}	}
    		);

  2. #2
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Première réponse: voir cette page http://vivlig.free.fr/indexIGN.htm et étudier son js

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Peut-être une version plus lisible que celle de Christian : http://mga.alwaysdata.net/geoportail.../maillage.html
    La bataille est dans ces lignes :
    var styleRadius = new OpenLayers.Style({
    'pointRadius': "${radius}",
    'fillColor': "red",
    'fillOpacity': 0.8,
    'strokeColor': "#ff5555",
    'strokeWidth': 2,
    'strokeOpacity': 0.8
    }, {
    context: {
    radius: function(feature) {
    return feature.attributes.description/10;
    }
    }
    });
    Le champ "description" contient une valeur qui est utilisée pour calculer le diamètre du cercle.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci à tous les deux, ça parait un peu compliqué au début avec ces objets, mais en fait c'est assez simple et ça marche.
    Ça me gène toujours un peu, en l'absence de doc détaillée ou de tutoriaux progressifs, de me servir d'objets sans en connaître tous les tenants et aboutissants, mais tant pis...

    Maintenant que j'ai compris ça, le plus compliqué est de trouver la bonne fonction mathématique pour afficher ces données de la manière la plus pertinente en fonction du zoom de la carte.
    Ça a l'air de rien, mais c'est pas gagné d'avance : pour l'instant, je trouve que les point sont un coup trop gros, un coup trop petits...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/09/2005, 22h41
  2. Réponses: 2
    Dernier message: 04/08/2005, 20h00
  3. Comment créer des onglets "glissants"
    Par miniil dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/06/2005, 23h24
  4. [DOM] Comment créer des flux XML en java ?
    Par nean_j dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/04/2004, 13h00
  5. Comment créer des barres de Menu ?
    Par MoKo dans le forum IHM
    Réponses: 5
    Dernier message: 30/07/2003, 15h58

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