Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 4 sur 4
  1. #1

    Date d'inscription
    janvier 2005
    Messages
    374

    Par défaut Non Résolu : Zoomer sur l'extent d'un vector layer

    Bonjour,

    J'essaie de zoomer ma carte sur l'extent d'un vector layer :

    je crée mon vector layer :
    Code:
    var vecLayer = new OpenLayers.Layer.Vector("vector", {
                projection: new OpenLayers.Projection("EPSG:4326"), 
                styleMap: style
        });
    je crée les features et je les affecte au layer crée :
    Code:
    var store = new GeoExt.data.FeatureStore({
                    layer: vecLayer,
                    fields: [
                        {name: 'id', type: 'string'},
                        {name: 'name', type: 'string'}
                        ],
                    sortInfo: {field: 'name',direction: 'ASC'},
                    proxy: new GeoExt.data.ProtocolProxy({
                                    protocol: new OpenLayers.Protocol.HTTP({
                                                    url: "scripts/ListOfPoints.php",
                                                    format: new OpenLayers.Format.GeoJSON()
                                    })
                    }),
                    autoLoad: true
        });
    j'ajoute mon layer à la carte et je zoome :
    Code:
    map.addLayers([wmsLayer, vecLayer]);
    map.zoomToExtent(vecLayer.getDataExtent());
    le vector layer s'affiche bien sur la carte, mais la carte n'est pas zoomé et FireBug me renvoie l'erreur :
    Code:
    TypeError: bounds is null
    qu'est ce qui cloche ?

    Merci,
    Nico

  2. #2
    Admin' Annuaire
    Date d'inscription
    septembre 2004
    Localisation
    Toulouse
    Emploi
    Ingé. Cartographe / Enseignant
    Organisme
    Université de Toulouse-Le Mirail
    Âge
    42
    Messages
    3 891

    Par défaut

    Il est possible qu'il s'agisse d'un problème de décalage temporel : le vecLayer n'est pas peuplé en temps réel, il s'agit d'un appel AJAX, donc au moment ou on cherche son extent il n'existe peut-être pas encore.
    The larger the island of knowledge, the longer the shoreline of wonder. Ralph W. Sockman

  3. #3

    Date d'inscription
    janvier 2005
    Messages
    374

    Par défaut

    Effectivement, c'est ça.
    Avec ce code, ça marche nikel ! :
    Code:
    var wmsLayer = new OpenLayers.Layer.WMS(
                    "vmap0",
                    "http://vmap0.tiles.osgeo.org/wms/vmap0",
                    {layers: 'basic'}
        );
    
        var vecLayer = new OpenLayers.Layer.Vector("vector", {
                projection: new OpenLayers.Projection("EPSG:4326"), 
                styleMap: style
        });
    
        map.addLayers([wmsLayer, vecLayer]);
    
        var zoomHandler = function(button, event) {
            //Zoom pour afficher tous les symboles à l'écran.
            evl = new OpenLayers.Bounds();
            evl = vecLayer.getDataExtent();
            if (evl != null) {
                map.zoomToExtent(evl);
            }
        };
    
        var store = new GeoExt.data.FeatureStore({
                    layer: vecLayer,
                    fields: [
                        {name: 'id', type: 'string'},
                        {name: 'name', type: 'string'}
                        ],
                    sortInfo: {field: 'name',direction: 'ASC'},
                    proxy: new GeoExt.data.ProtocolProxy({
                                    protocol: new OpenLayers.Protocol.HTTP({
                                                    url: "scripts/ListOfPoints.php",
                                                    format: new OpenLayers.Format.GeoJSON()
                                    })
                    }),
                    autoLoad: true
        });
        store.on('load', zoomHandler, store);
    Merci,
    Nico

  4. #4
    Admin' Annuaire
    Date d'inscription
    septembre 2004
    Localisation
    Toulouse
    Emploi
    Ingé. Cartographe / Enseignant
    Organisme
    Université de Toulouse-Le Mirail
    Âge
    42
    Messages
    3 891

    Par défaut

    Merci du retour
    The larger the island of knowledge, the longer the shoreline of wonder. Ralph W. Sockman

 

 

Discussions similaires

  1. [OpenLayers] OpenLayers.Layer.Vector et script php
    Par achref_georex dans le forum Assistance et Programmation
    Réponses: 13
    Dernier message: 06/06/2012, 11h53
  2. [OpenLayers] Ajouter des features dans un vector layer
    Par Nico dans le forum Assistance et Programmation
    Réponses: 0
    Dernier message: 22/03/2012, 07h29
  3. [GeoServer] [GeoServer/OpenLayers] Vector avec layer SQL Filter
    Par hamza_Sig dans le forum Assistance et Programmation
    Réponses: 0
    Dernier message: 19/05/2011, 16h25
  4. [OpenLayers] Utilisation de OpenLayers.Layer.Vector
    Par Lud dans le forum Assistance et Programmation
    Réponses: 6
    Dernier message: 08/02/2011, 09h23
  5. [OpenLayers] WMS et Vector Layer
    Par Nico dans le forum Assistance et Programmation
    Réponses: 2
    Dernier message: 04/06/2010, 11h26

Les tags pour cette discussion

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •