Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Tue 01 June 2010 17:40

gallab
Participant occasionnel
Lieu: Marseille
Date d'inscription: 28 May 2010
Messages: 19

Création de layer ac OpenScales 1.1.4

Bonjour,

Je développe avec le framework libre OpenScales 1.1.4.

Je souhaite instancier dynamiquement des calques avec Action Script. (un click sur une checkbox => création du calque)
désolé de la qualité du code, il m'a servit pour plusieurs test...

le code de l'instanciation se situe dans la fonction

Code:

protected function chkTasmania_clickHandler(event:MouseEvent):void

Pour résumer je clique sur la checkbox et le calque ne s'affiche pas sad

Code:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    xmlns:os="http://openscales.org"
    creationComplete="initApp()" width="1015.0758" height="636.2879" xmlns:basetypes="org.openscales.fx.basetypes.*">
    
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            
            import org.openscales.core.Map;
            import org.openscales.core.Trace;
            import org.openscales.core.events.MapEvent;
            import org.openscales.core.layer.ogc.WFS;
            import org.openscales.core.layer.ogc.WMS;
            import org.openscales.core.style.Style;

            [Bindable] private var map:Map = null;
            [Bindable] public var displayTrace:Boolean = false;    
            [Bindable] public var displayFirebugTrace:Boolean = false;
            
            
            import org.openscales.core.events.LayerEvent;
            import org.openscales.core.events.MapEvent;
            import org.openscales.core.layer.Layer;
            
            public var calque:WMS;
            public var couche:WFS;
            
            private function initApp():void {
                map = fxmap.map;
            }
            
            protected function chkTasmania_clickHandler(event:MouseEvent):void
            {
                if (this.chkWater.selected)
                {
                    if (calque==null)    
                    {    
                    //calque    = new WMS("toto","http://srvsig01:1234/geoserver/wms","topp:tasmania_water_bodies",false,true,"EPSG:4326","");
                    couche=new WFS("tasmania_water_bodies","http://srvsig01:1234/geoserver/wfs","topp:tasmania_water_bodies",false,true,"EPSG:4326");
                        map.addLayer(couche);
                        this.map.addChild(couche);
                        map.zoom=7;
                    }
                }
                
            }

        ]]>
    </mx:Script>
    
    <mx:Panel x="10" y="10" width="321" height="213" layout="absolute" title="Sélection des couches">
        <mx:Label x="0" y="146" text="Zoomer sur.." width="80"/>
        <mx:TextInput x="81.5" y="145" width="138" text="blabla"/>
        <mx:Button x="227.5" y="144" label="Zoom"/>
        <mx:CheckBox x="10" y="69" label="Tasmania water (WMS)" id="chkWater" click="chkTasmania_clickHandler(event)" selected="false"/>
    </mx:Panel>
    
    <mx:VRule x="339" y="0" width="32" height="615"/>
    
    <mx:Panel x="364" y="9.1" width="638.9394" height="595.9091" layout="absolute" title="Carte" id="panelMap">
        <os:Map id="fxmap"
                width="555"
                height="403"
                zoom="5"
                centerLonLat="143.83482400000003,-43.648056" x="49" y="26">
            
            <os:DragHandler/><os:WheelHandler/>
            
            <os:Spinner id="spinner"
                        x="{width / 2}"
                        y="{height / 2}"/>
            
            <os:MousePosition x="100"
                              y="{height-200}"
                              displayProjection="EPSG:4326"/>
            <!--<os:Mapnik name="Mapnik" isBaseLayer="true" />-->
            
            <os:WFS 
                id="stateBoundaries"
                name="tutu"
                url="http://srvsig01:1234/geoserver/wms"
                typename="topp:tasmania_state_boundaries"
                isBaseLayer="true"
                projection="EPSG:4326"
                version="1.0.0"
                style="{Style.getDefaultSurfaceStyle()}">
            </os:WFS>
        
            
        </os:Map>
    </mx:Panel>
    
    <!-- Outils de Zoom -->
    <os:ControlPanel x="9.9" y="249" width="320.98486" height="378.10608">
        <os:ZoomBoxComponent map="{map}"
                             width="32"
                             height="32"/>
        
        <os:ZoomComponent map="{map}"/>
    </os:ControlPanel>
    
</mx:Application>

Merci,


Gallien

Hors ligne

 

#2 Sat 05 June 2010 10:36

ABA
Juste Inscrit !
Date d'inscription: 5 Jun 2010
Messages: 1

Re: Création de layer ac OpenScales 1.1.4

Bonjour,

Pour permettre de sélectionner les couches à afficher/masquer il ne faut pas utiliser le clickHandler qui est destiné à interagir avec la carte et ses objets mais il faut utiliser le contrôle LayersSwitcher qui a été créé pour cela.

Pour la suite, je vous invite à continuer les échanges sur vos problématiques relatives à OpenScales sur la communauté dédiée en allant sur le groupe de discussion http://groups.google.com/group/openscales-dev

La langue par défaut du groupe de discussion est l'anglais mais, si nécessaire, n'hésitez pas à poser des questions en français puisque la moitié de la communauté est francophone.

PS: je vous encourage également à utiliser la nouvelle version 1.1.7 disponible sur http://bitbucket.org/gis/openscales/downloads/. Le site OpenScales.org est actuellement en cours de refonte du fait de la migration de forge vers bitbucket.

Aurélien Barbier-Accary
Administrateur OpenScales : http://openscales.org

Hors ligne

 

#3 Thu 10 June 2010 11:09

gallab
Participant occasionnel
Lieu: Marseille
Date d'inscription: 28 May 2010
Messages: 19

Re: Création de layer ac OpenScales 1.1.4

Bonjour,

Merci ! Je viens de lire votre réponse!
En effet, il existe le composant LayerSwitcher mais je ne souhaite pas l'utiliser car il ne correspond pas à mes besoins (par exemple je ne souhaite pas pouvoir donner la possibilite à l'utilisateur de supprimer un calque !)


J'ai par ailleurs résolu ce problème :
dans l'instanciation d'un calque WFS en AS il faut définir le paramètre de style du calque.
ex:

Code:

calque.style=Style.getDefaultLineStyle();

Gallien

Hors ligne

 

Pied de page des forums

Powered by FluxBB