Changeset 97

Show
Ignore:
Timestamp:
02/06/07 22:12:35 (2 years ago)
Author:
darren
Message:

implemented GoogleRoadMapProvider?, stubbed out remainining GoogleMapProviders?, refactored SampleClient? UI for switching between MapProviders?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/as2/lib/com/modestmaps/geo/Map.as

    r95 r97  
    4242        setMapProvider(mapProviderType); 
    4343     
    44         grid = TileGrid(attachMovie(TileGrid.symbolName, 'grid', getNextHighestDepth(), 
    45                                     {mapProvider: mapProvider, _x: 0, _y: 0, width: width, height: height})); 
     44        var initObj : Object =  
     45        { 
     46                mapProvider: mapProvider,  
     47                _x: 0,  
     48                _y: 0,  
     49                width: width,  
     50                height: height 
     51        }; 
     52                 
     53        grid = TileGrid(attachMovie(TileGrid.symbolName, 'grid', getNextHighestDepth(), initObj )); 
    4654 
    4755        var extent:/*Location*/Array = [new Location(37.829853, -122.514725), 
  • trunk/as2/lib/com/modestmaps/mapproviders/IMapProvider.as

    r95 r97  
    2929    */ 
    3030    public function geometry():String; 
     31     
     32    public function toString() : String; 
    3133} 
  • trunk/as2/lib/com/modestmaps/mapproviders/MapProviderFactory.as

    r70 r97  
    77import com.modestmaps.mapproviders.*;  
    88import com.modestmaps.mapproviders.microsoft.*; 
     9import com.modestmaps.mapproviders.google.*; 
    910 
    1011class com.modestmaps.mapproviders.MapProviderFactory  
     
    5960                        case MapProviders.MICROSOFT_DELAYED : 
    6061                                return new MicrosoftDelayedAerialMapProvider(); 
     62 
     63                        case MapProviders.GOOGLE_ROAD : 
     64                                return new GoogleRoadMapProvider(); 
     65 
     66                        case MapProviders.GOOGLE_AERIAL : 
     67                                return new GoogleAerialMapProvider(); 
     68 
     69                        case MapProviders.GOOGLE_HYBRID : 
     70                                return new GoogleHybridMapProvider(); 
     71 
     72                        case MapProviders.YAHOO_ROAD : 
     73                        //      return new YahooRoadMapProvider(); 
     74 
     75                        case MapProviders.YAHOO_AERIAL : 
     76                        //      return new YahooAerialMapProvider(); 
     77 
     78                        case MapProviders.YAHOO_HYBRID : 
     79                        //      return new YahooHybridMapProvider(); 
     80 
     81                        case MapProviders.ZOOMIFY : 
     82                        //      return new ZoomifyMapProvider(); 
    6183                                 
    6284                        default : 
  • trunk/as2/lib/com/modestmaps/mapproviders/MapProviders.as

    r69 r97  
    88{ 
    99        public static var VANILLA : Number = 0; 
     10 
    1011        public static var MICROSOFT_ROAD : Number = 1; 
    1112        public static var MICROSOFT_AERIAL : Number = 2; 
    1213        public static var MICROSOFT_HYBRID : Number = 3; 
    1314        public static var MICROSOFT_DELAYED : Number = 4; 
     15 
     16        public static var GOOGLE_ROAD : Number = 5; 
     17        public static var GOOGLE_AERIAL : Number = 6; 
     18        public static var GOOGLE_HYBRID : Number = 7; 
     19 
     20        public static var YAHOO_ROAD : Number = 8; 
     21        public static var YAHOO_AERIAL : Number = 9; 
     22        public static var YAHOO_HYBRID : Number = 10; 
     23         
     24        public static var ZOOMIFY : Number = 11; 
    1425} 
  • trunk/as2/lib/com/modestmaps/mapproviders/microsoft/AbstractMicrosoftMapProvider.as

    r75 r97  
    1 import com.modestmaps.mapproviders.AbstractMapProvider; 
     1import com.modestmaps.mapproviders.AbstractImageBasedMapProvider; 
    22import com.modestmaps.core.Coordinate; 
    33import com.modestmaps.util.BinaryUtil; 
    4 import com.modestmaps.io.LoadMovieThrottledRequest; 
    5 import mx.utils.Delegate; 
    64import com.modestmaps.geo.MercatorProjection; 
    75import com.modestmaps.geo.Transformation; 
     
    119 */ 
    1210class com.modestmaps.mapproviders.microsoft.AbstractMicrosoftMapProvider  
    13 extends AbstractMapProvider  
     11extends AbstractImageBasedMapProvider  
    1412{ 
    1513        public static var BASE_URL : String; 
     
    3028        } 
    3129         
    32         public function paint( clip : MovieClip, coord : Coordinate ) : Void  
    33         { 
    34                 super.paint( clip, coord ); 
    35                  
    36                 var request : LoadMovieThrottledRequest = new LoadMovieThrottledRequest( clip.image, getTileUrl( coord ) ); 
    37                 request.addEventListener( LoadMovieThrottledRequest.EVENT_REQUEST_ERROR, Delegate.create( this, this.onRequestError )); 
    38                 request.addEventListener( LoadMovieThrottledRequest.EVENT_RESPONSE_COMPLETE, Delegate.create( this, this.onResponseComplete )); 
    39                 request.addEventListener( LoadMovieThrottledRequest.EVENT_RESPONSE_ERROR, Delegate.create( this, this.onResponseError )); 
    40                 request.send(); 
    41                  
    42                 createLabel( clip, coord.toString() ); 
    43         } 
    44          
    45         /* 
    46          * Returns the value of BASE_URL for the class. 
    47          */ 
    48         public function get baseUrl() : String 
    49         { 
    50                 throw new Error( "Abstract method not implemented by subclass." );       
    51                 return null; 
    52         } 
    53  
    54         /* 
    55          * Returns the value of ASSET_EXTENSION for the class. 
    56          */ 
    57         public function get assetExtension() : String 
    58         { 
    59                 throw new Error( "Abstract method not implemented by subclass." );       
    60                 return null;     
    61         } 
    62          
    63         /* 
    64          * Returns the url needed to get the tile image.  
    65          */ 
    66         private function getTileUrl( coord : Coordinate ) : String 
    67         { 
    68                 throw new Error( "Abstract method not implemented by subclass." );       
    69                 return null; 
    70         } 
    71  
    7230        private function getZoomString( coord : Coordinate ) : String 
    7331        {                
     
    12078                return coord; 
    12179        } 
    122          
    123         // Event Handlers 
    124  
    125         private function onRequestError( eventObj : Object ) : Void 
    126         { 
    127         } 
    128          
    129         private function onResponseComplete( eventObj : Object ) : Void 
    130         { 
    131                 var clip : MovieClip = MovieClip( eventObj.clip ); 
    132                 var url : String = String( eventObj.url ); 
    133                  
    134                 raisePaintComplete( clip, getCoordinateFromURL( url ) ); 
    135         } 
    136          
    137         private function onResponseError( eventObj : Object ) : Void 
    138         { 
    139         }        
    14080} 
  • trunk/as2/lib/SampleClient.as

    r95 r97  
    1010        private static var __map : Map; 
    1111         
     12        private static var __mpButtons : MovieClip; 
     13         
    1214    public static function main(clip:MovieClip):Void 
    1315    { 
     
    1618                var initObj : Object = 
    1719                { 
    18                         mapProviderType: MapProviders.MICROSOFT_ROAD,  
     20                        mapProviderType: MapProviders.GOOGLE_ROAD,  
    1921                        _x: 128,  
    2022                        _y: 128,  
     
    3537        buttons.push( makeButton(clip, 'clear', 'clear log', Delegate.create(__map.grid, __map.grid.clearLog))); 
    3638 
    37         buttons.push( makeButton(clip, 'road', 'road', Delegate.create(SampleClient, SampleClient.showRoad))); 
    38         buttons.push( makeButton(clip, 'aerial', 'aerial', Delegate.create(SampleClient, SampleClient.showAerial))); 
    39         buttons.push( makeButton(clip, 'hybrid', 'hybrid', Delegate.create(SampleClient, SampleClient.showHybrid))); 
    40  
    4139                var nextX : Number = __map._x; 
    4240                var nextY : Number = __map._y - buttons[0]['label']._height - 10; 
     
    4947                } 
    5048 
     49 
     50                // mapProvider buttons 
     51 
     52                __mpButtons = clip.createEmptyMovieClip( "mpButtons", clip.getNextHighestDepth() ); 
     53 
     54        buttons = new Array(); 
     55                 
     56                buttons.push( makeButton(__mpButtons, 'MICROSOFT_ROAD', 'ms road', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     57        buttons.push( makeButton(__mpButtons, 'MICROSOFT_AERIAL', 'ms aerial', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     58        buttons.push( makeButton(__mpButtons, 'MICROSOFT_HYBRID', 'ms hybrid', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     59 
     60                buttons.push( makeButton(__mpButtons, 'GOOGLE_ROAD', 'google road', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     61//        buttons.push( makeButton(__mpButtons, 'GOOGLE_AERIAL', 'google aerial', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     62//        buttons.push( makeButton(__mpButtons, 'GOOGLE_HYBRID', 'google hybrid', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     63 
     64//              buttons.push( makeButton(__mpButtons, 'YAHOO_ROAD', 'yahoo road', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     65//        buttons.push( makeButton(__mpButtons, 'YAHOO_AERIAL', 'yahoo aerial', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     66//        buttons.push( makeButton(__mpButtons, 'YAHOO_HYBRID', 'yahoo hybrid', Delegate.create(SampleClient, SampleClient.switchMapProvider))); 
     67 
     68                __mpButtons._x = 128 + __map._x + __map._width; 
     69                __mpButtons._y = __map._y + 10; 
     70                 
     71                nextY = 0; 
     72                 
     73                for ( var i : Number = 0; i < buttons.length; i++ ) 
     74                { 
     75                        buttons[i]._y = nextY; 
     76                        nextY += buttons[i]['label']._height + 5; 
     77                        buttons[i]._alpha = 60; 
     78                } 
     79                 
     80 
    5181        Reactor.callNextFrame(Delegate.create(__map, __map.nagAboutBoundsForever)); 
    5282    } 
    5383     
    5484     
    55     private static function showRoad() : Void 
     85    private static function switchMapProvider( button : MovieClip ) : Void 
    5686    { 
    57         __map.setMapProvider( MapProviders.MICROSOFT_ROAD ); 
    58     } 
    59   
    60     private static function showAerial() : Void 
    61     { 
    62         __map.setMapProvider( MapProviders.MICROSOFT_AERIAL ); 
    63     } 
    64   
    65     private static function showHybrid() : Void 
    66     { 
    67         __map.setMapProvider( MapProviders.MICROSOFT_HYBRID ); 
     87        __map.setMapProvider( MapProviders[button._name] ); 
    6888    } 
    6989     
     
    88108        button.endFill(0, 0); 
    89109         
    90         button.onRelease = action; 
     110        button.onRelease = function() 
     111        { 
     112                action.apply( SampleClient, [button] ); 
     113        }; 
    91114         
    92115        return button;