private function getLayers():void { if (configData && configData.opLayers){ for (var i:int=0; i< configData.opLayers.length; i++) { layerArray.addItem(configData.opLayers.label); } }
private function excludeLayers(): void { if (configXML){ // exclude these layers var layers:XMLList = configXML..excludelayer as XMLList; for (var j:Number = 0; j < layers.length(); j++){ for(var i:int=0; i< layerArray.length; i++){ if(layerArray == layers){ layerArray.removeItemAt(i); } } } } }
for(var i:uint = 0; i < layerArray.length; i++) { radioBtn = new RadioButton; radioBtn.groupName = "radioBtnGroup"; radioBtn.label = layerArray; radioBtn.styleName = "WidgetText"; radioBtn.value = i; radioBtn.height = 18 radioBtn.setStyle("textRollOverColor","#D0D0D0 ") vBoxRadio.addChild(radioBtn); }
private function radioClickHandler(event:ItemClickEvent):void { // update the visible layers to only show the layer selected for(var i:uint = 0; i < layerArray.length; i++) { if (layerArray == event.label){ map.getLayer(layerArray).visible = true; }else{ map.getLayer(layerArray).visible = false; } } }
<?xml version="1.0" encoding="utf-8"?> <!-- //////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2010 ESRI // // All rights reserved under the copyright laws of the United States. // You may freely redistribute and use this software, with or // without modification, provided you include the original copyright // and use restrictions. See use restrictions in the file: // <install location>/License.txt // //////////////////////////////////////////////////////////////////////////////// --> <viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:viewer="com.esri.viewer.*" xmlns:toc="com.esri.viewer.components.toc.*" x="600" y="400" widgetConfigLoaded="init()"> <fx:Script> <![CDATA[ import com.esri.ags.layers.Layer; import mx.collections.ArrayCollection; import mx.events.StateChangeEvent; import spark.components.RadioButton; [Bindable] private var title:String; private var layers:ArrayCollection; private function init():void { toc.map = map; toc.isMapServiceOnly = false; //gotta get this from the config file toc.excludeLayers = getExcludeLayers(); toc.excludeGraphicsLayers = true; if (configXML) { title = configXML.labels.title || "Map Layer List"; } var rBFormat:TextFormat = new TextFormat; rBFormat.font = "Arial"; rBFormat.size = "11"; rBFormat.color = "#000000"; rBFormat.bold = true; for (var i:uint = 0; i < layers.length; i++) { radioBtn.groupName = "radioBtnGroup"; radioBtn.label = layers.name; radioBtn.setStyle("textFormat","rBFormat"); radioBtn.value = i; radioBtn.alpha = 1 radioBtn.height = 14 } var radioBtn:RadioButton = new RadioButton; radioBtn.groupName = "radioBtnGroup"; radioBtn.value = layers.length; radioBtn.label = "None"; radioBtn.setStyle("textFormat","rBFormat"); //set the current selection to the "none" button radioBtnGroup.selected = layers.length; } private function getExcludeLayers():ArrayCollection { var result:ArrayCollection = new ArrayCollection(); if (configData && configData.basemaps) { // exclude basemaps for (var i:int = 0; i < configData.basemaps.length; i++) { result.addItem(configData.basemaps.label); } } if (configXML) { // exclude these layers var layers:XMLList = configXML.excludelayer as XMLList; for (var j:Number = 0; j < layers.length(); j++) { result.addItem(layers.toString()); } } return result; } private function showStateToggleLayers(event:MouseEvent):void { viewStack.selectedIndex = 0; } private function radioClickHandler(event:ItemClickEvent):void { // update the visible layers to only show the layer selected for(var i:uint = 0; i < layers.length; i++) { if (layers.name == event.label){ map.getLayer(layers.name).visible = true; var lay:Layer = map.getLayer(layers.name); }else{ map.getLayer(layers.name).visible = false; } } } ]]> </fx:Script> <viewer:WidgetTemplate id="wTemplate" width="300" height="300"> <viewer:layout> <s:VerticalLayout gap="8" paddingTop="15"/> </viewer:layout> <s:Label text="{title}"/> <toc:TOC id="toc" width="100%" height="100%"/> <s:RadioButton id="radioBtnGroup" /> <mx:ViewStack id="viewStack" width="100%" height="100%" creationPolicy="all" paddingTop="4" /> </viewer:WidgetTemplate> </viewer:BaseWidget>
<?xml version="1.0" encoding="utf-8"?> <!-- //////////////////////////////////////////////////////////////////////////////// // // Copyright © 2008 - 2009 ESRI // // All rights reserved under the copyright laws of the United States. // You may freely redistribute and use this software, with or // without modification, provided you include the original copyright // and use restrictions. See use restrictions in the file: // <install location>/FlexViewer/License.txt // //////////////////////////////////////////////////////////////////////////////// --> <BaseWidget xmlns ="com.esri.solutions.flexviewer.*" xmlns:mx ="http://www.adobe.com/2006/mxml" xmlns:toccomp ="com.esri.solutions.flexviewer.components.toc.*" xmlns:widgets ="com.esri.solutions.flexviewer.widgets.*" x ="600" y ="300" widgetConfigLoaded ="init()"> <mx:Script> <![CDATA[ import com.esri.ags.Map; import com.esri.ags.layers.GraphicsLayer; import com.esri.ags.layers.Layer; import com.esri.solutions.flexviewer.AppEvent; import com.esri.solutions.flexviewer.ConfigData; import com.esri.solutions.flexviewer.SiteContainer; import com.esri.solutions.flexviewer.components.toc.tocClasses.TocItem; import com.esri.solutions.flexviewer.utils.WidgetEffects; import mx.collections.*; import mx.controls.Alert; import mx.controls.RadioButton; import mx.events.ItemClickEvent; import mx.events.ListEvent; import mx.events.StateChangeEvent; //labels [Bindable] private var visibilityLabel:String; [Bindable] private var transparencyLabel:String; private var lArr:Array; private const ICON_URL:String = "com/esri/solutions/flexviewer/assets/images/icons/"; private function init():void { if (configXML) { //labels visibilityLabel = configXML.labels.visibilitylabel || "Layer Visibility"; transparencyLabel = configXML.labels.transparencylabel || "Layer Transparency"; } lArr = getLayers(); aLayerSlider.layerToNone = "Select an image, then this slider will adjust transparency"; wTemplate.addTitlebarButton(ICON_URL + "i_folder.png", "Radio Buttons", showStateToggleLayers); var rBFormat:TextFormat = new TextFormat; rBFormat.font = "Arial"; rBFormat.size = "11"; rBFormat.color = "#FFFFFF"; rBFormat.bold = true; for(var i:uint = 0; i < lArr.length; i++) { var radioBtn:RadioButton = new RadioButton; radioBtn.groupName = "radioBtnGroup"; radioBtn.label = lArr.name; radioBtn.setStyle("textFormat","rBFormat"); radioBtn.value = i; radioBtn.alpha = 1 radioBtn.height = 14 vBoxRadio.addChild(radioBtn); } //add a button for "none", ie no layer to be displayed var radioBtn:RadioButton = new RadioButton; radioBtn.groupName = "radioBtnGroup"; radioBtn.value = lArr.length; radioBtn.label = "None"; vBoxRadio.addChild(radioBtn); radioBtn.setStyle("textFormat","rBFormat"); //set the current selection to the "none" button radioBtnGroup.selectedValue = lArr.length; } private function getLayers():Array { var basemapCount:Number = configData.configBasemaps.length; var layerArray:Array = []; for (var i:Number = map.layerIds.length -1; i >= basemapCount; i--) { var layer:Layer = map.getLayer(map.layerIds); //change this to exclude any layers from the live map widgets. if (!(layer is GraphicsLayer) && (layer.name!= "Supervisor Districts") && (layer.name!= "Schools & Fire Stations")) layerArray.push(layer); } return layerArray; } private function showStateToggleLayers(event:MouseEvent):void { WidgetEffects.flipWidget(this, viewStack, "selectedIndex", 0, 400); } private function radioClickHandler(event:ItemClickEvent):void { //if no layer is selected, then set the slider text appropriately. if (event.index == lArr.length){ aLayerSlider.layerToNone = "Select an image, then this slider will adjust transparency"; } // update the visible layers to only show the layer selected for(var i:uint = 0; i < lArr.length; i++) { if (lArr.name == event.label){ map.getLayer(lArr.name).visible = true; var lay:Layer = map.getLayer(lArr.name); aLayerSlider.layer = lay; }else{ map.getLayer(lArr.name).visible = false; } } } ]]> </mx:Script> <WidgetTemplate id="wTemplate"> <mx:ViewStack id="viewStack" width="100%" height="200%" creationPolicy="all"> <mx:VBox id="vBoxRadio" width="100%" height="200%" horizontalScrollPolicy="off" verticalScrollPolicy="off"> <mx:Label text="Choose an Image" styleName="WidgetText" width="100%"/> <mx:RadioButtonGroup id="radioBtnGroup" itemClick="radioClickHandler(event)"/> <widgets:LayerAlpha id="aLayerSlider"/> </mx:VBox> </mx:ViewStack> </WidgetTemplate> </BaseWidget>
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.