topical media & game development

talk show tell print

student-map-mashup.mx

student-map-mashup.mx [swf] flex


  <?xml version="1.0" encoding="utf-8"?>     
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:yahoo="com.yahoo.webapis.maps.*" layout="absolute" creationComplete="init()" backgroundColor="white">     
          
          <mx:Script>     
                  <![CDATA[
                          import mx.collections.ArrayCollection;     
                          import flash.utils.getTimer;
                          import com.yahoo.webapis.maps.methodgroups.*;
                          import com.yahoo.webapis.maps.events.*;
                          
                          import mx.controls.Alert;
                          import mx.rpc.events.ResultEvent; 
                          
                          private var mapController:MapController;
                          private var llController:LatLonController;
                          private var mapEvents:MapEventDispatcher;
                          
                          private const SWFDOMID:String = "mashup";
                          private const UNIQUEID:int = getTimer();
                          private const YAHOOAPIKEY:String = "zbKKke3V34Eo.dSxrvphfVHfhYhjka1FxYYdIvfEljsOybNfPcdJjuQfTBmaDQ--";
                          private const MAPSWF:String = "as2map.swf";
                            
                          private function init():void {
                            swfLoader.addEventListener('onMapLoad', onMapLoaded);
                            swfLoader.addEventListener('onMapError', onMapError);
                         }
          
                         private function onMapLoaded(ev:Object):void {     
                                    mapEvents = new MapEventDispatcher(swfLoader);
                                    mapEvents.addEventListener("onClick", onClick)
                                    mapController = new MapController(swfLoader);
                                    mapController.setCenterByAddressAndZoom("Amsterdam",9,500);
                                     mapController.setMapView("hybrid");
                                     var panTools:PanTool = new PanTool(swfLoader);
                                     panTools.setPanTool(true);
                                     var widgets:Widgets = new Widgets(swfLoader);
                                     widgets.showNavigatorWidget(true);
                                     widgets.showSatelliteControlWidget(true);
                                     widgets.showToolBarWidget(true);
                                     llController = new LatLonController(swfLoader);
                                  dataService.send();
                          }
                             
                             private function dataResultHandler(evt:ResultEvent):void {
                      if(evt.result.succes == "true") {
                              var dataXML:XML = evt.result as XML;
                              for each (var user:XML in dataXML.users.user) {
                                              for each (var point:XML in user.points.point) {
                                                      var markerInfo:Object = new Object();
                                                      markerInfo.index = new String(user.name);
                                                      markerInfo.title = new String(point.time).substr(0,2) + ":" + new String(point.time).substr(2,2) + " @ " + new String(point.date).substr(4,2) + "-" + new String(point.date).substr(6,2) + "-" + new String(point.date).substr(0,4);
                                                      markerInfo.description = (point.descr ? new String(point.descr) : "no description");
                                                      markerInfo.markerColor = new String(user.color);
                                                      markerInfo.strokeColor = "0xffffff";
                                                      llController.addMarkerByLatLon("CustomPOIMarker", point.lat, point.lon, markerInfo);
                                              }
                                          }
                                  }                
                                  if(evt.result.succes == "false") {
                                          mx.controls.Alert.show("The GPS data could not be loaded." + evt.result.errormsg);
                                  }
              }
                             
                         private function onMapError(errorCode:String, httpStatus:String):void {
                            Alert.show(errorCode + '\n' + httpStatus, 'Load Error');
                         }
                         
                         private function onClick(e:MapEvent):void {
                                 if(e.lastResult.action=="doubleClick") {
                                         Alert.show("LatiLon: " + e.lastResult.latlon);
                                 }
                         }
                     ]]>
          </mx:Script>
  
          <yahoo:YahooMapService id="swfLoader" UUID="{UNIQUEID}"
                  swfDomId="{SWFDOMID}" apiId="{YAHOOAPIKEY}" mapURL = "{MAPSWF}"
                  left="10" top="10" width="800" height="600" />
                  
          <mx:HTTPService id="dataService" resultFormat="e4x" url=<getData.php> result="dataResultHandler(event)"/>
  </mx:Application>  


(C) Æliens 04/09/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.