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 :

API Minimum & baseLayer & Originators


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut API Minimum & baseLayer & Originators
    Bonjour,

    Juste pour signaler que si j'utilise une couche en mode baseLayer, les zooms définis dans les "originators" issus du catalogue ne sont pas bon vu qu'il sont en scope global.
    Je suis obliger de les transformés par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (o.minZoomLevel)
      o.minZoomLevel -= 5;
    if (o.maxZoomLevel)
      o.maxZoomLevel -= 5;

  2. #2
    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 shama Voir le message
    Bonjour,

    Juste pour signaler que si j'utilise une couche en mode baseLayer, les zooms définis dans les "originators" issus du catalogue ne sont pas bon vu qu'il sont en scope global.
    Je suis obliger de les transformés par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (o.minZoomLevel)
      o.minZoomLevel -= 5;
    if (o.maxZoomLevel)
      o.maxZoomLevel -= 5;
    Effectivement, les cinq premiers niveaux correspondent aux échelles Monde

    Quel est le but d'utiliser une couche en mode baseLayer ?

    Je m'explique :

    les baseLayers OpenLayers ne sont là que pour supporter un système de coordonnées sur une emprise - rien de plus. Une carte (OpenLayers.Map) peut donc changer de couche de base. Généralement, il est utilisé pour substituer une couche à une autre dans la même projection ...
    Le choix effectué dans l'API est de revenir au fondamentaux de la cartographie avec une "planche mère" qui porte les informations de base (projection, emprise). Les autres couches additionnelles se plaquent dessus.
    Je ne suis pas sûr qu'avec OpenLayers 3.0 cette notion de baseLayer subsiste telle que ... d'où ma question !

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Quel est le but d'utiliser une couche en mode baseLayer ?

    Je m'explique :

    les baseLayers OpenLayers ne sont là que pour supporter un système de coordonnées sur une emprise - rien de plus. Une carte (OpenLayers.Map) peut donc changer de couche de base. Généralement, il est utilisé pour substituer une couche à une autre dans la même projection ...
    Le choix effectué dans l'API est de revenir au fondamentaux de la cartographie avec une "planche mère" qui porte les informations de base (projection, emprise). Les autres couches additionnelles se plaquent dessus.
    Je ne suis pas sûr qu'avec OpenLayers 3.0 cette notion de baseLayer subsiste telle que ... d'où ma question !
    A ben c'est que moi je ne suis pas cartographe et je ne connais pas du tout les fondamentaux de la cartographie.
    En revanche je suis pas trop mauvais en conception de modèle de données informatique et j'ai fait le choix inverse: Un OpenLayers.Map n'a ni emprise ni projection et retourne nécessairement celle de sa baseLayer. Ce qui permet de changer de fond de carte et de conserver la projection naturelle de la carte sans reprojection. J'ai juste une "alerte" a fournir lorsqu'on sélectionne un fond de carte non compatible avec l'emprise précédente et laisser le choix à l'utilisateur de poursuivre ou non.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    1. Affichage de la couche OSM avec emprise visible sur le monde entier
    2. Selection de la couche IGN de l'ile de la réunion 
      => message d'alerte et l'utilisateur décide de poursuivre
      => affichage de la couche IGN REU avec emprise visible par défaut de la couche
    3. Selection de la couche OSM
      => pas de message d'alerte car OSM couvre l'emprise visible
      => affichage de la couche OSM avec emprise visible la plus proche englobante l'ancienne emprise visible
    Je vais bientôt publier un béta de mon application où vous pourrez voir ce principe à l'oeuvre.

  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
    Citation Envoyé par shama Voir le message
    En revanche je suis pas trop mauvais en conception de modèle de données informatique et j'ai fait le choix inverse: Un OpenLayers.Map n'a ni emprise ni projection et retourne nécessairement celle de sa baseLayer. Ce qui permet de changer de fond de carte et de conserver la projection naturelle de la carte sans reprojection.
    OpenLayers.Map.projection= EPSG:4326 : une map a une projection par défaut si aucune baseLayer n'est définie ...
    OpenLayers.Map.maxExtent= [-180,-90,180,90] : une map couvre la terre complètement par défaut si aucune baseLayer n'est définie ...

    Ton choix est directement lié à l'affichage des baseLayer, le mien au "non" affichage des baseLayers, mais ils sont conceptuellement identiques (baseLayer supporte projection et emprise => map aussi), techniquement différents !

    Quant à la reprojection, tu n'y échappes pas si tes overlays (couches qui ne sont pas des baseLayers) ne sont pas dans la projection de la baseLayer (que ce soit côté serveur ou client).
    Il y a quelques temps, il existait un service OSM tuilé en EPSG:4326 qui permettait de superposer sans reprojection les couches Géoportail et OSM ...

    Mais, tout le monde préfère la (non-)projection Google (qui elle ne couvrent pas le monde entier ... les zones au-delà des 81° de latitude n'étant pas couvertes) plus jolie (conforme: conserve les angles).

    Dans un avenir plus ou moins proche, il est possible que les couches Géoportail soient aussi en projection Mercator Sphérique ...

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    OpenLayers.Map.projection= EPSG:4326 : une map a une projection par défaut si aucune baseLayer n'est définie ...
    OpenLayers.Map.maxExtent= [-180,-90,180,90] : une map couvre la terre complètement par défaut si aucune baseLayer n'est définie ...
    Super et du coup si j'ai uniquement la couche IGN de la réunion je peux potentiellement me balader partout dans le monde avec une emprise d'affichage qui me donne que des "tuiles cassées".
    Mon choix et de ce rapprocher de la "réalité humaine" et proposer une affichage de cette carte de la réunion à l'identique de la carte papier qui lui serait proposé.
    Mais je ne prétend absolument pas que ce soit le meilleur, ni le plus logique "cartographiquement" parlant. Pour avoir tester les 2 avec ma fille de 12 ans, elle préfère la version où on ne repasse pas en carte monde lorsqu'on a décidé de bosser sur la carte de la réunion... Mais bon c'est ma fille alors elle est pas trop objective

    Citation Envoyé par dgrichard Voir le message
    Ton choix est directement lié à l'affichage des baseLayer, le mien au "non" affichage des baseLayers, mais ils sont conceptuellement identiques (baseLayer supporte projection et emprise => map aussi), techniquement différents !
    Pour continuer dans les analogies, dans ma version on peut assimilé l'objet "Map" à la table sur laquelle on pause la carte papier que l'on veux regarder et cette carte à une emprise et une projection propre non modifiable.
    Dans votre choix la table correspond nécessairement à la couverture entière du monde et avec des échelles graduées sur le bords en EPSG:4326 par défaut. Lorsque je veux y déposer une carte je suis obliger de la photocopier avec agrandissement ou réduction pour qu'elle puisse prendre sa place sur l'échelle mondiale de la table (et également de reconfigurer les échelles des bords de tables). Mais bon ça tombe bien, dans le monde virtuel de l'informatique les table se redimensionne bien mieux que dans le monde réel.

    Bref, le concept n'est donc pas, pour moi, identique même si l’intention fonctionnel est la même.

    Citation Envoyé par dgrichard Voir le message
    Quant à la reprojection, tu n'y échappes pas si tes overlays (couches qui ne sont pas des baseLayers) ne sont pas dans la projection de la baseLayer (que ce soit côté serveur ou client).
    Il y a quelques temps, il existait un service OSM tuilé en EPSG:4326 qui permettait de superposer sans reprojection les couches Géoportail et OSM ...
    Tout dépends de la nature des overlays. Les miens ne peuvent être que vectoriel (donc reprojetable sans en modifier la nature) car j'ai proscris l'hérésie de la reprojection des image bitmap avec transformation sans conservation de l'échelle. Je me prive effectivement de toute fonctionnalité de surimpression de couche bitmap, mais là encore il s'agit d'un choix.

    Citation Envoyé par dgrichard Voir le message
    Mais, tout le monde préfère la (non-)projection Google (qui elle ne couvrent pas le monde entier ... les zones au-delà des 81° de latitude n'étant pas couvertes) plus jolie (conforme: conserve les angles).
    Dans un avenir plus ou moins proche, il est possible que les couches Géoportail soient aussi en projection Mercator Sphérique ...
    beurk Autant je suis pour la normalisation de tout un tas de choses autant si les cartes ne sont pas réellement ré-éditer et que ça donne le truc bizzard de votre exemple des l'api minimale re-beurk

    Discussion passionnante...

    Pour finir en ouvrant un peu j'ai fait ce choix car je voudrais éventuellement supporter également les cartes des région polaires (ou la plate-carré ne fera pas le job) et pourquoi pas de vielles cartes. Mon système, avec ses défauts me semble prêt pour ce genre de chose...

  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 shama Voir le message
    Super et du coup si j'ai uniquement la couche IGN de la réunion je peux potentiellement me balader partout dans le monde avec une emprise d'affichage qui me donne que des "tuiles cassées".
    Tu exagères légèrement . Je peux aussi utiliser restrictedExtended pour ne jamais sortir de l'Ile de la Réunion ...

    Citation Envoyé par shama Voir le message
    Pour continuer dans les analogies, dans ma version on peut assimilé l'objet "Map" à la table sur laquelle on pause la carte papier que l'on veux regarder et cette carte à une emprise et une projection propre non modifiable.
    Ok, donc on change de table à chaque fois que l'on change de projection ou d'emprise

    Citation Envoyé par shama Voir le message
    Dans votre choix la table correspond nécessairement à la couverture entière du monde et avec des échelles graduées sur le bords en EPSG:4326 par défaut. Lorsque je veux y déposer une carte je suis obliger de la photocopier avec agrandissement ou réduction pour qu'elle puisse prendre sa place sur l'échelle mondiale de la table (et également de reconfigurer les échelles des bords de tables). Mais bon ça tombe bien, dans le monde virtuel de l'informatique les table se redimensionne bien mieux que dans le monde réel.
    Tu devrais relire le code d'Openlayers, les constantes que j'ai donné sont celles d'OpenLayers, pas de l'API ...

    Mon choix correspond à changer la nappe de la table ... après tout c'est juste un changement de visualisation du même objet : la terre

    Citation Envoyé par shama Voir le message
    Bref, le concept n'est donc pas, pour moi, identique même si l’intention fonctionnel est la même.
    Je ne cherche pas à te convaincre, mais à comprendre ...

    Citation Envoyé par shama Voir le message
    Tout dépends de la nature des overlays. Les miens ne peuvent être que vectoriel (donc reprojetable sans en modifier la nature) car j'ai proscris l'hérésie de la reprojection des image bitmap avec transformation sans conservation de l'échelle. Je me prive effectivement de toute fonctionnalité de surimpression de couche bitmap, mais là encore il s'agit d'un choix.
    C'est ton choix qui est limite forcément le nombre d'objets vectorielles dans la carte (sauf à passer par les WMS qui assureront le calcul de la couche en bitmap avec ou sans reprojection).


    Citation Envoyé par shama Voir le message
    beurk Autant je suis pour la normalisation de tout un tas de choses autant si les cartes ne sont pas réellement ré-éditer et que ça donne le truc bizzard de votre exemple des l'api minimale re-beurk
    Là, je ne comprends pas


    Citation Envoyé par shama Voir le message
    Pour finir en ouvrant un peu j'ai fait ce choix car je voudrais éventuellement supporter également les cartes des région polaires (ou la plate-carré ne fera pas le job) et pourquoi pas de vielles cartes. Mon système, avec ses défauts me semble prêt pour ce genre de chose...
    Désolé, mais la plate-carré fera bien mieux le job que la Mercator sphérique ... même si les angles/distances sont écrasés/distendues au pôle (ce n'est pas une projection conforme).

    On a monté la Terre Adélie depuis peu dans l'API (mi-juillet) dans la projection stéréo-polaire (différente donc des deux autres).

    Au final:

    * 3 baselayers qui s'affichent dans 3 projections pour toi (je compte le pôle sud);
    * 3 baselayers qui ne s'affichent pas dans 3 projections pour moi (idem);
    * une gestion des couches dynamiques (par reprojection si possible) et continue (emprise) pour moi;
    * idem, mais limité aux couches vectorielles si j'ai bien compris pour toi.

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Tu exagères légèrement . Je peux aussi utiliser restrictedExtended pour ne jamais sortir de l'Ile de la Réunion ...
    Oui et il est définit au niveau des layers et reporté sur l'objet map (comme ses résolutions etc.) non ?

    Citation Envoyé par dgrichard Voir le message
    Ok, donc on change de table à chaque fois que l'on change de projection ou d'emprise
    Tiens un peu de mauvais esprit presque comme moi
    La table reste toujours la même puisque la carte papier que je pose dessus contient son emprise et son système de projection. Là j'ai vraiment du mal à comprendre la remarque

    Citation Envoyé par dgrichard Voir le message
    Tu devrais relire le code d'Openlayers, les constantes que j'ai donné sont celles d'OpenLayers, pas de l'API ...
    Citation Envoyé par OpenLayers.Doc
    If you set map.allOverlays to true, then you cannot use map.setBaseLayer or layer.setIsBaseLayer. With allOverlays true, the lowest layer in the draw layer is the base layer. So, to change the base layer, use setLayerIndex or raiseLayer to set the layer index to 0.
    Si j'ai bien compris plutôt que d'avoir un baseLayer on change l'ordre des calques...

    Citation Envoyé par dgrichard Voir le message
    Mon choix correspond à changer la nappe de la table ... après tout c'est juste un changement de visualisation du même objet : la terre
    Très belle analogie et bien plus proche de la réalité que ce que j'avais dis. Bon il faut quand même avoir une nappe pour chaque carte ayant une emprise et projection différente.

    Citation Envoyé par dgrichard Voir le message
    Je ne cherche pas à te convaincre, mais à comprendre ...

    C'est ton choix qui est limite forcément le nombre d'objets vectorielles dans la carte (sauf à passer par les WMS qui assureront le calcul de la couche en bitmap avec ou sans reprojection).
    Pour ces 2 points nous sommes parfaitement d'accord.

    Citation Envoyé par dgrichard Voir le message
    Là, je ne comprends pas
    Je parle de cet exemple http://api.ign.fr/geoportail/api/doc...alMinimum.html et je suis encore de mauvaise fois car je viens de revisité et a part le côté "surprenant" c'est bien lisible.

    Citation Envoyé par dgrichard Voir le message
    Désolé, mais la plate-carré fera bien mieux le job que la Mercator sphérique ... même si les angles/distances sont écrasés/distendues au pôle (ce n'est pas une projection conforme).
    Je me suis trompé je voulais bien parler de la Mercator sphérique

    Citation Envoyé par dgrichard Voir le message
    Au final:
    * 3 baselayers qui s'affichent dans 3 projections pour toi (je compte le pôle sud);
    * 3 baselayers qui ne s'affichent pas dans 3 projections pour moi (idem);
    * une gestion des couches dynamiques (par reprojection si possible) et continue (emprise) pour moi;
    * idem, mais limité aux couches vectorielles si j'ai bien compris pour toi.
    C'est tout à fait ça.

Discussions similaires

  1. API minimum en local : GeoportalMin.js ?
    Par Max_B dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 24/05/2009, 12h01

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