topical media & game development
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.