topical media & game development

talk show tell print

sample-flex-umap.mx

sample-flex-umap.mx [swf] flex


  <?xml version="1.0" encoding="utf-8"?> 
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
     creationComplete="init()" width="100%"> 
     <mx:Script> 
     <![CDATA[
             import com.afcomponents.umap.events.*;
          import com.afcomponents.umap.interfaces.IOverlay;
          import com.afcomponents.umap.overlays.Circle;
          import com.afcomponents.umap.overlays.Layer;
          import com.afcomponents.umap.overlays.Marker;
          import com.afcomponents.umap.providers.Providers;
          import com.afcomponents.umap.styles.DropShadowStyle;
          import com.afcomponents.umap.styles.GeometryStyle;
          import com.afcomponents.umap.styles.GradientStyle;
          import com.afcomponents.umap.styles.IconStyle;
          import com.afcomponents.umap.styles.MarkerStyle;
          import com.afcomponents.umap.styles.StrokeStyle;
          import com.afcomponents.umap.styles.TextStyle;
          import com.afcomponents.umap.types.Align;
          import com.afcomponents.umap.types.LatLng;
          import com.afcomponents.umap.types.Offset;
      import com.afcomponents.umap.gui.*; 
      import com.afcomponents.umap.core.UMap; 
      import com.afcomponents.umap.core.Control; 
      import mx.core.UIComponent; 
      import mx.controls.Alert;
          import mx.events.ItemClickEvent;
      import mx.controls.TabBar;
                  
             private var _map:UMap; 
             private var container:UIComponent;
             //private var marker:Marker;
     //        private var position:LatLng;
             //private var style:MarkerStyle;
  
          private var _style1:IconStyle = new IconStyle({align:new Align(Align.CENTER, Align.BOTTOM), offset:new Offset("0", "0"), scale:0.7, rotation:null, colorTransform:null});
          private var _style2:TextStyle = new TextStyle({antiAliasType:AntiAliasType.ADVANCED, autoSize:TextFieldAutoSize.LEFT, condenseWhite:true, embedFonts:null, gridFitType:GridFitType.PIXEL, sharpness:null, thickness:null, textFormat:new TextFormat("_sans", 12, 0x000000, null, null, null, "", "", TextFormatAlign.LEFT, null, null, null, null), wordWrap:null, multiline:null, selectable:null, html:null, styleSheet:null});
          private var _style3:DropShadowStyle = new DropShadowStyle({angle:15, distance:0.5, color:0x000000, alpha:0.6, blurX:3, blurY:3, strength:0, quality:1});
          private var _style4:GradientStyle = new GradientStyle({type:GradientType.LINEAR, colors:[0xDDDDDD,0xFFFFFF], alphas:[70,100], ratios:[200,255], matrix:new Matrix(-1.1211606022543736e-17, -0.06103515625, 0.06103515625, -1.1211606022543736e-17, 50, 50), spreadMethod:SpreadMethod.PAD, interpolationMethod:InterpolationMethod.RGB, focalPointRatio:null});
          private var _style5:StrokeStyle = new StrokeStyle({pixelHinting:true, noScale:LineScaleMode.NORMAL, capsStyle:CapsStyle.ROUND, jointStyle:JointStyle.ROUND, miterLimit:3});
          private var _style6:MarkerStyle = new MarkerStyle({radius:7, icon:null, iconStyle:_style1, label:true, shadow:true, labelStyle:_style2, shadowStyle:_style3, fill:GeometryStyle.RGB, fillRGB:0xFFFFFF, fillAlpha:1, fillGradient:_style4, fillBitmap:null, stroke:GeometryStyle.RGB, strokeRGB:0x000000, strokeAlpha:1, strokeThickness:1, strokeGradient:null, strokeStyle:_style5});
          private var _style7:GradientStyle = new GradientStyle({type:GradientType.LINEAR, colors:[0xDDDDDD,0xFFFFFF], alphas:[70,100], ratios:[200,255], matrix:new Matrix(-1.1211606022543737e-17, -0.06103515625, 0.06103515625, -1.1211606022543737e-17, 50, 50), spreadMethod:SpreadMethod.PAD, interpolationMethod:InterpolationMethod.RGB, focalPointRatio:null});
          private var _style8:MarkerStyle = new MarkerStyle({radius:7, icon:"http://umapper.s3.amazonaws.com/ufiles/2009-08/0bf3782c79e05af08c78741ad4b259d8", iconStyle:_style1, label:true, shadow:null, labelStyle:_style2, shadowStyle:_style3, fill:GeometryStyle.RGB, fillRGB:0xFFFFFF, fillAlpha:1, fillGradient:_style7, fillBitmap:null, stroke:GeometryStyle.RGB, strokeRGB:0x000000, strokeAlpha:1, strokeThickness:1, strokeGradient:null, strokeStyle:_style5});
          private var _style9:MarkerStyle = new MarkerStyle({radius:7, icon:null, iconStyle:_style1, label:true, shadow:true, labelStyle:_style2, shadowStyle:_style3, fill:GeometryStyle.RGB, fillRGB:0xFF0000, fillAlpha:1, fillGradient:_style7, fillBitmap:null, stroke:GeometryStyle.RGB, strokeRGB:0x000000, strokeAlpha:1, strokeThickness:1, strokeGradient:null, strokeStyle:_style5});
          
          private var _marker1:Marker = new Marker({index:"P", name:"Nederland", position:new LatLng(52.22779942222279, 5.240478515625), infoStyle:{contentStyle:{html:true}, titleStyle:{html:true}}},  _style9);
          private var _marker2:Marker = new Marker({id:1, name:"Leidsegracht", position:new LatLng(52.365838949081315, 4.882543087005615)}, _style8);
          private var _marker3:Marker = new Marker({id:2, index:"P", name:"Donau", description:"<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">Donau in Budapest, Hungary</FONT></P></TEXTFORMAT><TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">\\n<a href=\"http://link\">Link to movie</a>\\n</FONT></P></TEXTFORMAT>", position:new LatLng(47.58398004380382, 19.071407318115234)}, _style9);
          private var _marker4:Marker = new Marker({id:3, index:"P", name:"La Digue", position:new LatLng(-4.355247749889177, 55.83234786987305)}, _style9);
             private var _marker5:Marker = new Marker({id:4, index:"P", name:"Amsterdam", position:new LatLng(52.36690022958957, 4.888958930969238)}, _style9);
          private var _marker6:Marker = new Marker({id:5, name:"Utrecht", position:new LatLng(52.087786788311426, 5.1229870319366455)}, _style9);
          private var _marker7:Marker = new Marker({id:6, name:"Singel", description:"<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\"><a href=\"\">Film 1</a></FONT></P></TEXTFORMAT><TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\"><a href=\"\">Film 2</a></FONT></P></TEXTFORMAT>", position:new LatLng(52.37455906, 4.88955975), infoStyle:{contentStyle:{html:true}, titleStyle:{html:true}}}, _style9);
          private var _marker8:Marker = new Marker({id:7, name:"Reguliersgracht", 
          description:"<TEXTFORMAT LEADING=\"2\">" + 
                          "<P ALIGN=\"LEFT\">" + 
                          "<FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">" + 
                          "<a href=\"\">Film 1</a></FONT>" + 
  //                        "<IMG SRC=\"http://umapper.s3.amazonaws.com/ufiles/2009-08/39531978a8d19e1e603c13db84ca6650\"/>" +
                          "<IMG SRC=\"http://umapper.s3.amazonaws.com/ufiles/2009-08/0bf3782c79e05af08c78741ad4b259d8\"/>" +
                          "</P></TEXTFORMAT>", position:new LatLng(52.35962272, 4.89641011), infoStyle:{contentStyle:{html:true}, titleStyle:{html:true}}}, _style9);
          private var _marker9:Marker = new Marker({id:8, name:"Amstel", description:"<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\"><a href=\"\">Film 1</a></FONT></P></TEXTFORMAT>", position:new LatLng(52.36279384, 4.9028635), infoStyle:{contentStyle:{html:true}, titleStyle:{html:true}}}, _style9);
          private var _marker10:Marker = new Marker({id:9, name:"Berlagebrug", description:"<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Verdana\" SIZE=\"10\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\"><a href=\"\">Film 1</a></FONT></P></TEXTFORMAT>", position:new LatLng(52.34733576, 4.9127233), infoStyle:{contentStyle:{html:true}, titleStyle:{html:true}}}, _style9);
  
          private var _layer1:Layer = new Layer();
  

init


      
             public function init() : void 
             { 
        container = new UIComponent(); 
          
        _map = new UMap(); 
        _map.setSize(500, 600); 
          
        container.addChild(_map); 
        mapCanvas.addChild(container); 
        container.focusManager.deactivate(); 
          
        _map.addControl(new MapTypeControl()); 
        _map.addControl(new ZoomControl()); 
        _map.addControl(new PositionControl()); 
        _map.setProvider(Providers.GOOGLE);
        _map.setCenter(new LatLng(52.36,4.89),13);
        
                  addOverlaysToLayers(_layer1, _marker1, _marker2, _marker3, _marker4, _marker5, _marker6, _marker7, _marker8, _marker9, _marker10);
                  addOverlaysToUmap(_map, _layer1);
                  _map.addEventListener(DisplayEvent.UPDATE_ZOOM, zoomMarkers);
                  
  

addMarkers();


             } 
             public function zoomMarkers(event:DisplayEvent):void
             {
                     //Alert.show(_map.zoom.toString());
                     //var newzoom:Number = _map.zoom;
                     if (_map.zoom < 6) {
                             //Alert.show(_map.zoom.toString());
                             _style9.radius = 4;
                             //Alert.show(_style9.radius.toString());
                     }
                     else if (_map.zoom > 14) _style9.radius = 10;
                     else _style9.radius = 7;
                     //Alert.show(_style9.radius.toString());
                     //_marker1.setStyle(_style9);
                     //_layer1.addOverlay(_marker1);
                     //_map.addOverlay(_layer1);
                     addStyleToMarkers(_style9, _marker1, _marker2, _marker3, _marker4, _marker5, _marker6, _marker7, _marker8, _marker9, _marker10);
                     addOverlaysToLayers(_layer1, _marker1, _marker2, _marker3, _marker4, _marker5, _marker6, _marker7, _marker8, _marker9, _marker10);
                  addOverlaysToUmap(_map, _layer1);
  
             }
     
    /* public function addMarkers():void
     {
  
                     position = new LatLng(52.36,4.89);
  //                   marker.position = position;
                     style = new MarkerStyle();
                     style.fill = GeometryStyle.RGB;
                     style.fillRGB = 0xff0000;
                     marker.setStyle(style);
                     _map.addOverlay(marker);
                     _map.setCenter(position,13);
     }*/
  

overlay(s)


                          public function addOverlaysToUmap(map:UMap, ...args:Array):void{
                                  var len:int = args.length;
                                  for(var i:int = 0; i < len; i++)
                                  {
                                          if(args[i] is IOverlay) map.addOverlay(args[i]);
                                  }
                          }
                          public function addOverlaysToLayers(layer:Layer, ...args:Array):void{
                                  var len:int = args.length;
                                  for(var i:int = 0; i < len; i++)
                                  {
                                          if(args[i] is IOverlay) layer.addOverlay(args[i]);
                                  }
                          }
  

style(s)


                          public function addStyleToMarkers(style:MarkerStyle, ...args:Array):void{
                                  var len:int = args.length;
                                  for(var i:int = 0; i < len; i++)
                                  {
                                          if(args[i] is IOverlay) args[i].setStyle(style);
                                  }
                          }
  
              import mx.collections.ArrayCollection;
  
              [Bindable]
              public var place:ArrayCollection = new ArrayCollection(
                  [ {label:"Amsterdam - Nederland", lat:(52.3669), lng:(4.8889), data:351},
                    {label:"La Digue - Seychellen", lat:(-4.355), lng:(55.83), data:3}, 
                    {label:"Donau - Hongarije", lat:(47.58398), lng:(19.0714), data:60} ]);
          
              public function closeHandler(event:Event):void {
                  myLabel.text = ComboBox(event.target).selectedItem.label + ", gevonden items: " + ComboBox(event.target).selectedItem.data;
                  //myData.text = ComboBox(event.target).selectedItem.data;
                  _map.setCenter(new LatLng(ComboBox(event.target).selectedItem.lat, ComboBox(event.target).selectedItem.lng),12);
                 // _map.setCenter(new LatLng(47.58,19));
              }    
  

selection(s)


              [Bindable]
              public var TAB_ARRAY:Array = 
                      [{label:"Hierarchisch", data:"hierarchy"},
                  {label:"Image", data:"images"},
                  {label:"Detail", data:"details"}
              ];
              
                      private function clickEvt(event:ItemClickEvent):void {
                              // Access target TabBar control.
                              var targetComp:TabBar = TabBar(event.currentTarget);
                              Alert.show(targetComp.dataProvider[event.index].data);
                              //forClick.text="manier van zoeken: "  + targetComp.dataProvider[event.index].data;
                              myViewStack.selectedChild=targetComp.dataProvider[event.index].data;
                              
                      }
                          [Bindable]
              public var selectedNode:XML;
  
              // Event handler for the Tree control change event.
              public function treeChanged(event:Event):void {
                  selectedNode=Tree(event.target).selectedItem as XML;
              }
          ]]>
      </mx:Script>
  
  

menu (left)


     
     <mx:XMLList id="treeData">
              <node label="Nederland">
                  <node label="Amsterdam (359)">
                      <node label="Amstel (5)">
                              <node label="Film1"/>
                              <node label="Film2"/>
                          </node>
                      <node label="Berlagebrug (2)">
                              <node label="Film1"/>
                              <node label="Film2"/>
                          </node>
                          <node label="Leidsegracht (3)">
                              <node label="Film1"/>
                              <node label="Film2"/>
                          </node>
                      <node label="Reguliersgracht (1)"/>
                      <node label="Singel (2)">
                              <node label="Film1"/>
                              <node label="Film2"/>
                          </node>
                  </node>
                  </node>        
      </mx:XMLList>
   
  

panel


     
        <mx:Panel title="Umap application" width="100%" height="100%" layout="horizontal" paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
                  <mx:Box direction="vertical">        
                          <mx:Text  width="200" color="blue" text="Selecteer een plaats."/>
                          <mx:ComboBox dataProvider="{place}" width="200" close="closeHandler(event);"/>
                  <mx:VBox width="250">
                      
                  </mx:VBox>
                  
                  <!--<mx:TabBar itemClick="clickEvt(event);">
                      <mx:dataProvider>{TAB_ARRAY}</mx:dataProvider>
                  </mx:TabBar>
          
                  <mx:TextArea id="forClick" height="100%" width="100%">
                          
                  </mx:TextArea>-->
          <mx:VBox>
          <mx:HBox borderStyle="solid">
                  <mx:Text text="View:" paddingTop="4" paddingLeft="6"/>
                  <mx:LinkBar dataProvider="{myViewStack}"/>
          </mx:HBox>        
          <mx:Label id="myLabel" text=""/>
              <!--<mx:Label id="myData" text=""/>-->
  

view(s)


          <mx:ViewStack id="myViewStack" width="100%" height="100%">
                  <mx:Box id="hierarchy" label="Hierarchie" width="300" height="100%">
                      <mx:Tree id="myTree" width="100%" height="400" labelField="@label"
                          showRoot="false" dataProvider="{treeData}" change="treeChanged(event)" />
                      <!--<mx:TextArea height="100%" width="50%"
                          text="Selected Item: {selectedNode.@label}"/>-->
                  </mx:Box>
                  <mx:Box id="images" label="Image" width="300" height="100%" borderStyle="solid">
                                 <mx:Tile direction="horizontal" horizontalGap="10" verticalGap="15" 
                  paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
                          <mx:Image scaleContent="true" width="90" height="60">
                                  <mx:source>soutine.jpg</mx:source>
                          </mx:Image>
                          <mx:Image scaleContent="true" width="90" height="60">
                                  <mx:source>soutine.jpg</mx:source>
                          </mx:Image>
                          <mx:Image scaleContent="true" width="90" height="60">
                                  <mx:source>soutine.jpg</mx:source>
                          </mx:Image>
                          <mx:Image scaleContent="true" width="90" height="60">
                                  <mx:source>soutine.jpg</mx:source>
                          </mx:Image>
                  </mx:Tile>
                  </mx:Box>
                  <mx:Box id="details" label="Detailed" width="300" height="100%">
                                 <mx:Text text="details"/>
                  </mx:Box>
              </mx:ViewStack>
              </mx:VBox>
          </mx:Box>
                  <mx:Canvas id="mapCanvas" width="500" height="100%"/>
          <mx:Box direction="vertical">
                  <mx:Text width="200" color="blue" text="Verfijning"/>
                  <mx:TextArea id="refine" height="600" width="100%" >
                          <!--<mx:htmlText><![CDATA[
                          <p>Jaar<br>
                          2009 (91)<br>
                          2008 (49)<br>
                          2007 (56)<br>
                          voor 1950 (2)<br>
                          <p>Type<br>
                          ]]></mx:htmlText>-->
                          </mx:TextArea>
          </mx:Box>
        </mx:Panel>
  
  </mx:Application>
  


(C) Æliens 27/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.