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 :

Souci de déplacement de fond de carte


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    102
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 102
    Points : 65
    Points
    65
    Par défaut Souci de déplacement de fond de carte
    Bonjour,
    A l'arrivée sur cette page http://www.lpivtt.fr/visu_spots.php, le déplacement du fond est inactif... Le reste semble OK (zoom à la mollette + clic sur balises opérationnels).

    Si j'ouvre le panneau d'outils, que je clique sur "déplacer le fond de carte", c'est toujours KO.
    En revanche, si je clique sur l'outil loupe "se rapprocher" puis aussitôt sur "déplacer le fond" alors là, je peux effectivement avec la souris déplacer le fond

    Dans la console, je vois des anos "this.layer.getFeatureFromEvent is not a function", certainement l'explication est-elle là, mais je ne trouve pas ce dont il retourne...

    Merci de votre aide !

  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 Heretic Voir le message
    Dans la console, je vois des anos "this.layer.getFeatureFromEvent is not a function", certainement l'explication est-elle là, mais je ne trouve pas ce dont il retourne...
    Cette méthode est appelée sur les couches qui sont des OpenLayers.Layer.Vector, il y a donc fort à parier que l'appel effectuée n'est pas sur une couche de ce type ...

    Ce n'est pas le pan qui est en cause car si tu utilises le clavier, la carte bouge

    Par contre, un clic dans la carte, lève l'erreur

    Essaie de commenter toute ta couche marker pour voir si le phénomène continue (ton code source est très long et il faut isoler le problème).

  3. #3
    Membre du Club
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    102
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 102
    Points : 65
    Points
    65
    Par défaut
    Je viens de commenter toute la génération de la couche marker et effectivement, pas de problème...
    C'est long parce que plein d'occurrences répétées x fois.

    J'ai réduit à un seul marqueur, bien sûr c'est toujours KO, voici le code généré :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <script type="text/JavaScript">
    
    var gpMap,olMap,traceLayer;
    var traceStyle = {strokeWidth: 4, strokeColor: '#0033FF', strokeOpacity: 0.8};
    
    function initGeoportalMap() {
      geoportalLoadviewer("GeoportalMapDiv", "normal", "FXX");
    	olMap = viewer.getMap();
    	gpMap = viewer;
    	var tbx = viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    	var measurebar= new Geoportal.Control.MeasureToolbar(
    		{
    			div: OpenLayers.Util.getElement(tbx.id+'_measure'),
    			displaySystem: (viewer.getMap().getProjection().proj.projName=='longlat'? 'geographic': 'metric'),
    			targetElement: OpenLayers.Util.getElement(tbx.id+'_meares')
    		}
     	);
    	viewer.getMap().addControl(measurebar);
      if(olMap.allowedGeoportalLayers){
    		for (var i= 0; i<olMap.allowedGeoportalLayers.length; i++) {
    			var overloaded_options= null;
    			var couche= olMap.allowedGeoportalLayers[i];
            	if (couche.match(/^GEOGRAPHICALGRIDSYSTEMS.MAPS/)) {
    		        overloaded_options= { opacity: 1.0 };
        		} else if (couche.match(/^ORTHOIMAGERY.ORTHOPHOTOS/)) {
    	            overloaded_options= { visibility: false };
    		    }
    		    viewer.addGeoportalLayer(couche,overloaded_options);
      	}
      }
    	var coucheMarqueurs=new OpenLayers.Layer.Markers("Spots");
    	olMap.addLayer(coucheMarqueurs);
    	var taille;
    	var decalage;
    	var icone;
    	var position;
    	var marqueur;
    	taille=new OpenLayers.Size(17,31)
    	decalage=new OpenLayers.Pixel(-(taille.w/2), -taille.h);
    	icone=new OpenLayers.Icon('./Images/ban_lpi.gif', taille, decalage);
    position=new OpenLayers.LonLat(1.753778500,44.150984300);
    position.transform(OpenLayers.Projection.CRS84, olMap.getProjection());
    marqueur=new OpenLayers.Marker(position, icone);
    marqueur.events.register('mousedown', marqueur, function(evt) {
    	if (this.feature == null) {
    		this.feature= new OpenLayers.Feature(coucheMarqueurs,this.lonlat.clone(),
    		    {
    		       popupSize: new OpenLayers.Size(250,50),
    		       popupContentHTML: "<div class='Style_blabla' align='center'><b>Gorges de l'Aveyron Bruniquel - St-Antonin</b><br></div><div class='Style_blabla' align='center'><a href='http://www.lpivtt.fr/index_traces.php?regId=16&dpt=82&spot=1'>54 trace(s)</a>.</div>"
    		    });
    		  this.feature.createPopup(true);
    		  this.feature.popup.setBackgroundColor("#FFF4EA");
    		  this.feature.popup.setOpacity(1);
    		  coucheMarqueurs.map.addPopup(this.feature.popup);
    	} else {
    		  this.feature.popup.toggle();
    	}
    	OpenLayers.Event.stop(evt);
    });
    coucheMarqueurs.addMarker(marqueur);
    
    	olMap.setCenterAtLonLat(1.896800, 43.20000, 8) 
    	viewer.openLayersPanel(false);
    	viewer.openToolsPanel(false);
    }
    </script>

  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 Heretic Voir le message
    J'ai réduit à un seul marqueur, bien sûr c'est toujours KO, voici le code généré :
    Ces deux exemples utilisent aussi un marqueur et fonctionnent :

    Affichage d'une popup au survol du marqueur
    Affichage d'une popup au clic sur le marqueur

    Y-a forcément une différence

  5. #5
    Membre du Club
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    102
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 102
    Points : 65
    Points
    65
    Par défaut
    Bonjour,
    j'ai copié-collé le code du second exemple (popup au clic) dans ma page, et il se trouve que j'ai le même problème... --> page ici
    La seule différence se situe dans la version de l'API : je suis en V1.0 et le code de l'exemple tourne en V1.2
    J'ai d'ailleurs vu à cette occasion qu'il y a du code js à embarquer chez soi pour la 1.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <script type="text/javascript" src="../js/1.2/GeoportalExtended.js"><!-- --></script>
    Cette différence de version + l'import GeoportalExtended, pourrait-il justifier ce problème ? Comprends pas ce qui merdoie sinon

  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 Heretic Voir le message
    J'ai d'ailleurs vu à cette occasion qu'il y a du code js à embarquer chez soi pour la 1.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <script type="text/javascript" src="../js/1.2/GeoportalExtended.js"><!-- --></script>
    Cette différence de version + l'import GeoportalExtended, pourrait-il justifier ce problème ?
    Non, c'est juste que dans les exemples, j'utilises une version locale de l'API ...

    Il y a forcement une différence

    Pourrais-tu changer 1.0-e en 1.1-e, puis 1.1-e en 1.2-e et indiquer si le problème existe en 1.1 et peut-être en 1.2 chez toi ?

  7. #7
    Membre du Club
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    102
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 102
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Non, c'est juste que dans les exemples, j'utilises une version locale de l'API ...

    Il y a forcement une différence

    Pourrais-tu changer 1.0-e en 1.1-e, puis 1.1-e en 1.2-e et indiquer si le problème existe en 1.1 et peut-être en 1.2 chez toi ?
    Bien vu ! Ca a l'air mieux avec la v1.1 et la v1.2...
    En revanche je confirme, c'est KO avec la v1.0.
    Tout ceci avec le code de ton 2e exemple copié dans ma page
    Demain je fais le test avec la génération de mes propres popups.
    Yeah, on voit le bout du tunnel ! Merci, je te tiens au jus demain !
    Bonne soirée !

  8. #8
    Membre du Club
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    102
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 102
    Points : 65
    Points
    65
    Par défaut
    Ca fonctionne nickel !
    Merci pour ton aide précieuse dgrichard
    a+

    Exemple ici

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Ces deux exemples utilisent aussi un marqueur et fonctionnent :

    Affichage d'une popup au survol du marqueur
    Affichage d'une popup au clic sur le marqueur

    Y-a forcément une différence
    Bonjour,
    Si j'essaye ces 2 exemples sous FF4, seul le premier fonctionne, si je les essaie sous FF3, les 2 fonctionnent.
    Quelle est la différence ?
    Merci

  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 ycc000 Voir le message
    Bonjour,
    Si j'essaye ces 2 exemples sous FF4, seul le premier fonctionne, si je les essaie sous FF3, les 2 fonctionnent.
    Quelle est la différence ?
    Merci
    Le second lève une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OpenLayers.Size is not a constructor GeoportalExtended.js (line 5734)
    à voir pourquoi

    Rappel: depot.ign.fr est le nightly built, il ne fonctionne pas toujours ...

  11. #11
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Le second lève une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OpenLayers.Size is not a constructor GeoportalExtended.js (line 5734)
    à voir pourquoi

    Rappel: depot.ign.fr est le nightly built, il ne fonctionne pas toujours ...
    Oui, la réponse m'interesse, j'ai un problème similaire sur mes tentatives de dev... OpenLayers.Layer.Markers is not a constructor
    pour info, même pb avec le dernier Chrome...

  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
    L'erreur n'y est plus en local (sur ma machine), je présume que c'est une erreur ailleurs dans les javascripts que j'aurai corrigé aujourd'hui ...

    Il faut attendre 4h du matin pour le nouveau nightly build

  13. #13
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    OK, on verra demain, merci pour cette réactivité en tout cas ! bonne nuit

  14. #14
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Pas mieux.
    - Echec du nightly build ?
    - Ou, puisque ça marche en local, je suppose avec toutes les librairies en local, y aurait il des restrictions sur les chargements des librairies JS distantes dans les nouveaux navigateurs?

  15. #15
    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 ycc000 Voir le message
    - Echec du nightly build ?
    Non, des modifications sont montées ...

    Citation Envoyé par ycc000 Voir le message
    - Ou, puisque ça marche en local, je suppose avec toutes les librairies en local, y aurait il des restrictions sur les chargements des librairies JS distantes dans les nouveaux navigateurs?
    Rien à voir car l'exemple ne fonctionne pas avec FF 3.6. Je vais faire un diff. local avec le serveur de dév., j'ai sûrement oublié quelque chose ...

    Edit: effectivement, le "fusionneur" de javascript n'était pas à jour, ainsi que quelques fichiers par ci et par là

  16. #16
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Bonsoir,
    Je reviens sur mon pb de Firefox 4
    En fait ceci se produisait avec ces exemples ci dessus, mais je ne le reproduis plus, vu que ces librairies évoluent quotidiennement. En fait je travaille bien sur "api" et non sur "depot".

    Mon code est le suivant, basé sur un exemple API
    Simple initialisation + ajout de 2 couches
    Avec FF3 tout marche, les 2 couches sont crées, avec FF4, lors de la création de la deuxième couche "OpenLayers.Layer.Markers is not a constructor"

    Est ce une erreur de ma part?
    Merci

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>API Geoportail - votre carte personnelle</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <script
    type="text/javascript"
    src="http://api.ign.fr/geoportail/api?v=1.2&amp;key=my_key&amp;instance=VISU">
    <!-- -->
    </script>

    <script src="http://api.ign.fr/geoportail/api/js/1.2/GeoportalExtended.js" type="text/javascript"></script>

    <script type="text/javascript">
    <!--
    function initGeoportalMap() {
    geoportalLoadVISU("GeoportalVisuDiv");

    if (VISU) {
    VISU.addGeoportalLayers();
    }

    VISU.getMap().setCenter(VISU.viewerOptions.defaultCenter,VISU.viewerOptions.defaultZoom);

    var layerStyle = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
    layerStyle.fillOpacity = 0.2;
    layerStyle.graphicOpacity = 1;

    var vectorLayer = new OpenLayers.Layer.Vector("Vector",{style: layerStyle});
    VISU.getMap().addLayer(vectorLayer);

    var markers = new OpenLayers.Layer.Markers( "Markers" );
    VISU.getMap().addLayer(markers);
    }
    -->
    </script>
    <style type="text/css">
    <!--
    div#GeoportalVisuDiv {
    width:800px;
    height:600px;
    }
    -->
    </style>
    </head>
    <body>
    <div id="GeoportalVisuDiv"></div>
    </body>
    </html>

  17. #17
    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 ycc000 Voir le message
    Est ce une erreur de ma part?
    Pourrais-tu ajouter le morceau de code en rouge (car tu charges deux fois l'API) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <script
        type="text/javascript"
        src="http://api.ign.fr/geoportail/api?v=1.2&amp;key=my_key&amp;instance=VISU&amp;includeEngine=false&amp;">
      <!-- -->
      </script>
    ...

  18. #18
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci dgrichard ! ça marche aussi dans FF4 !!
    désolé, en plus, c'était expliqué dans la doc...

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

Discussions similaires

  1. Souci de déplacement sur carte
    Par Unusual dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 16/09/2009, 16h23
  2. [Débutant] Superposition de deux fonds de carte
    Par niepoc dans le forum MATLAB
    Réponses: 15
    Dernier message: 31/07/2008, 15h32
  3. zone de couleur variable sur fond de carte
    Par jderoque dans le forum IHM
    Réponses: 6
    Dernier message: 12/06/2008, 16h30
  4. Graphes couleur du fond et fond de cartes
    Par hollowdeadoss dans le forum MATLAB
    Réponses: 4
    Dernier message: 25/05/2007, 10h24
  5. [Cartographie]Fonds de carte
    Par seb.49 dans le forum C#
    Réponses: 5
    Dernier message: 06/04/2007, 08h25

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