#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
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