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 :

Tracer un cercle.


Sujet :

IGN API Géoportail

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut Tracer un cercle.
    Bonjour,

    Quelle peut être la voie à adopter pour tracer un cercle avec un radius défini, par exemple en kilomètres.

    Doit on rechercher du coté des fonctions concernant la création des polygones ?

    J’ai bien essayé de regarder si je trouvais quelques exemples sur le net, mais mes recherches ne sont pas spécialement concluantes.

  2. #2
    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
    Sur cette page http://mga.alwaysdata.net/geoportail...rcle_gpp3.html, j'ai bien un cercle (polygone à 20 côtés) mais le rayon n'est pas bon ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Après moult essais, je ne suis pas sûr que ce soit la bonne façon mais....

    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
    	     var pointListCircle = [];		
    		var side = 80;	
    		var angle;
    		var radius = 5000;
        	        var new_lonlat, geom_point;
        	        var points = [];	
    		var lonlat = this.getMap().getLonLatFromViewPortPx(evt.xy);
    		var centerCircle = lonlat.transform(viewer.getMap().getProjection(),OpenLayers.Projection.CRS84);
    		for (var i = 0; i < side; i++) {
            	     angle = (i * 360 / side) + side;
            	     new_lonlat = OpenLayers.Util.destinationVincenty(centerCircle, angle, radius);
            	     new_lonlat.transform(OpenLayers.Projection.CRS84, viewer.getMap().getProjection());			
            	     geom_point = new OpenLayers.Geometry.Point(new_lonlat.lon, new_lonlat.lat);
            	     pointListCircle.push(geom_point);
                    }
    		var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);		
    		var style_poly = OpenLayers.Util.extend({}, layer_style); 	
    		style_poly.strokeColor = "red";
    		style_poly.fillColor = "yellow";
    		var linearRing = new    OpenLayers.Geometry.LinearRing(pointListCircle);
                    var polygonFeature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing]),null,style_poly);
    		var Poly = new OpenLayers.Layer.Vector('poly');		
    		Poly.addFeatures([polygonFeature]);
    		viewer.getMap().addLayer(Poly);

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Et tracer un cercle de rayon R en géographique (sous nos latitudes il ne devrait pas y avoir de problèmes) : fabriquer un polygone en projection plate-carrée (EPSG:4326, CRS:84) via OpenLayers.Geometry.Polygon.createRegularPolygon(), puis le reprojetter en WebMercator

    Sinon, ta méthode mériterait un exemple dans le site API

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Seulement voila, je rencontre un problème que je n’arrive pas cerner.
    Peut être au niveau des projections ??
    Le cercle est bien affiché, mais si l’on prend l’outil "Mesure de distance", en théorie j’ai un Radius de 5 kms et l’outil me donne 7 kms et des poussières.

    http://www.mides.fr/fullmapeco/full_eco.php

    *Cliquer sur carte pour afficher pointeur.

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par tarzip Voir le message
    Le cercle est bien affiché, mais si l’on prend l’outil "Mesure de distance", en théorie j’ai un Radius de 5 kms et l’outil me donne 7 kms et des poussières.
    Cf

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Ok, vu !!!!!!

    Merci

  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
    J'ai ajouté la méthode de tarzip et le cercle tracé fait effectivement un kilomètre de rayon.
    Pour le vérifier, je trace un cercle centré sur une croix Lambert I, et effectivement avec cette méthode il passe bien par 4 autres croix.

  9. #9
    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
    Et je viens d'ajouter la méthode de Didier: construction du polygone dans une projection plane (couche: cercle v2, cercle de couleur noire).
    Le cercle tracé fait bien un kilomètre de rayon avec une projection EPSG:2154 (Lambert 93).

  10. #10
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Et je viens d'ajouter la méthode de Didier: construction du polygone dans une projection plane (couche: cercle v2, cercle de couleur noire).
    Le cercle tracé fait bien un kilomètre de rayon avec une projection EPSG:2154 (Lambert 93).
    Excellent, et si tu utilises CRS:84 au lieu de EPSG:2154 (Lambert93 n'existe qu'en France Métropolitaine ...) ?

  11. #11
    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
    En CRS:84, je n'ai plus le cercle noir cf la page suite à mise à jour: http://mga.alwaysdata.net/geoportail...rcle_gpp3.html

    La géométrie est surprenante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    POLYGON((17246405.819765363 NaN,10295175.399380364 NaN,38471950.96154742 8633309.361808872,58943576.70952392 -5756525.053389698,69706147.28089432 NaN,69706147.28089432 NaN,58943576.70952392 NaN,38471950.96154742 4197382.295164942,10295175.399380364 NaN,17246405.819765363 -5492143.56793935,-17582004.161827948 -5492143.56793935,-10630773.741442908 NaN,-38807549.30360998 4197382.295164956,-59279175.051586494 NaN,-70041745.62295689 NaN,-70041745.62295689 NaN,-59279175.0515865 -5756525.053389691,-38807549.303610004 8633309.361808872,-10630773.741442977 NaN,-17582004.161827974 NaN,17246405.819765363 NaN)) { id=
    
    "OpenLayers.Geometry.Polygon_479"
    
    , components=[1],

  12. #12
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    La géométrie est surprenante:
    Oops, OpenLayers.Geometry.Polygon.createRegularPolygon() semble ne pas savoir faire tourner des longitudes/latitudes ... ensuite, c'est la catastrophe quant on reprojette

    Donc, le passage par une projection plane conforme semble obligatoire

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

Discussions similaires

  1. [infographie] tracer arc cercle
    Par orelero dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 11/08/2013, 11h40
  2. [fillOval]Tracer des cercles
    Par Fredo02 dans le forum 2D
    Réponses: 11
    Dernier message: 13/12/2006, 14h18
  3. Tracer un cercle en 3d
    Par zanouni dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/03/2006, 19h12
  4. [AS] Tracer un cercle
    Par pitchounette13 dans le forum Flash
    Réponses: 2
    Dernier message: 06/01/2006, 10h03
  5. [VB6] [Graphisme] Tracer un cercle avec pset
    Par bleuerouge dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/12/2002, 17h12

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