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 :

Déterminer si un dessin est entièrement visible


Sujet :

IGN API Géoportail

  1. #1
    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 Déterminer si un dessin est entièrement visible
    Dans un viewer j'affiche une couche layerCadre = new OpenLayers.Layer.Vector(....); qui contient une figure featureRectangle.
    Comment savoir si featureRectangle est visible en entier sur l'écran du visiteur?
    Y a-t-il un paramètre adéquat (ou fonction) soit dans layerCadre, soit dans featureRectangle à tester?
    Comment feriez-vous?

  2. #2
    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 fonction ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    Bonjour,
    Tu peux récupérer l'étendue de ta carte (viewer.getMap().getExtent()) et l'étendue de ton objet (feature.geometry.getBounds())
    Et ensuite tu peux comparer ces 2 objets de type OpenLayers.Bounds en utilisant la fonction containsBounds()

  4. #4
    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
    Merci à vous deux pour vos pistes que j'explore parallèlement...
    Pour la solution de Sylvain, j'ai réalisé cette page de test mais dont le résultat n'est pas probant pour moi, car je n'arrive pas bien à comprendre les retours de containsBounds() en fonction des event ! Et la doc n'est pas très explicite pour moi!

    L'idée est bien d'afficher "Visible : true" dans le fond jaune tant que le rectangle rouge est entièrement visible.

  5. #5
    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
    Sur la proposition de Marc, j'ai cette page de test qui ne répond pas exactement à ma demande car "Visible : true" est affiché tant qu'on voit une partie du cadre rouge.

    Ce que je veux c'est "Visible : true" quand on voit seulement TOUT le cadre rouge (et non une partie)...

    Si vous avez des idées...

  6. #6
    Membre confirmé Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Points : 522
    Points
    522
    Par défaut
    Bonjour,

    est-ce qu'en remplaçant le "moveend" en "move", dans la méthode de sylvaingeo, le comportement te conviendrait mieux ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par cmail Voir le message
    Merci à vous deux pour vos pistes que j'explore parallèlement...
    Pour la solution de Sylvain, j'ai réalisé cette page de test mais dont le résultat n'est pas probant pour moi, car je n'arrive pas bien à comprendre les retours de containsBounds() en fonction des event ! Et la doc n'est pas très explicite pour moi!

    L'idée est bien d'afficher "Visible : true" dans le fond jaune tant que le rectangle rouge est entièrement visible.
    Sur ta page ça ne fonctionne pas parce que tu ne recalcules pas mapExtent à chaque déplacement.

    Il faut que tu recalcules l'emprise de la carte dans la fonction déclenchée au "moveend", au moment ou tu vas exécuter containsBounds en fait.

  8. #8
    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
    Snif, je ne suis pas meilleur que Christian ... http://mga.alwaysdata.net/geoportail...ns_dehors.html

    J'ai un problème de projection pour la comparaison.

  9. #9
    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
    OK Sylvain. Effectivement dans ces conditions, c'est opérationnel. Merci.

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

Discussions similaires

  1. Déterminer si un fichier est encodé en unicode
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/01/2007, 18h40
  2. Comment déterminer si un .class est un nombre ?
    Par kisame dans le forum Langage
    Réponses: 9
    Dernier message: 10/04/2006, 15h14
  3. [CF][C#]Comment déterminer si mon PPC est bien connecté?
    Par royrremi dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 07/03/2006, 16h35
  4. Déterminer si un nombre est premier
    Par Fandefruit dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2005, 11h52
  5. Comment déterminer si un composant est d'un type "TMonT
    Par DanielR dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/03/2004, 19h22

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