main mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
xmlns:maps="com.google.maps.*"
       layout="absolute" width="607" height="450"
        cornerRadius="5" paddingBottom="0" paddingLeft="0" paddingRight="0"
paddingTop="0" viewSourceURL="srcview/index.html">

<mx:HBox id="mainHBox" width="100%" height="100%">

<mx:Canvas width="100%" height="100%">
       <maps:Map3D
       id="map"
       mapevent_mappreinitialize="onMapPreinitialize(event)"
       
key="ABQIAAAARfUuegYHZUw1LktJNnD1PBTTqoEqduWMGtkC2FyACZn_hW6uNxS0Z9KzrcFTAE3foAaNVyhuodgpFA"
       mapevent_mapready="onMapReady(event)"
       useHandCursor="true"  buttonMode="true"
       width="100%" height="100%"  top="0" left="0"/>
</mx:Canvas>

</mx:HBox> <!--end main Hbox-->


<mx:Script>
 <![CDATA[
import com.lynxgeos.LynxTileLayer;
import com.google.maps.interfaces.IMapType;
 import com.google.maps.LatLng;
 import com.google.maps.Map3D;
 import com.google.maps.MapEvent;
 import com.google.maps.MapOptions;
 import com.google.maps.MapType;
 import com.google.maps.View;
 import com.google.maps.geom.Attitude;
 import com.google.maps.controls.MapTypeControl;
 import com.google.maps.controls.NavigationControl;
    import com.google.maps.overlays.Marker;
    import com.google.maps.overlays.MarkerOptions;
    import com.google.maps.styles.FillStyle;
    import com.google.maps.styles.StrokeStyle;
                       import mx.collections.ArrayCollection;
                       import com.google.maps.controls.ControlPosition;
                       import com.google.maps.controls.ZoomControlOptions;
                       import com.google.maps.controls.ZoomControl;
                       import com.google.maps.Map;
                       import com.google.maps.LatLng;
                       import com.google.maps.MapZoomEvent;
                                               import
mx.collections.ArrayCollection;
                                                     import
com.google.maps.MapMouseEvent;

import mx.controls.Alert;

import com.google.maps.InfoWindowOptions;


        import com.google.maps.Color;


       import mx.events.ResizeEvent;
       import mx.collections.ArrayCollection;
       import mx.rpc.events.ResultEvent;
       import com.google.maps.LatLng;
       import com.google.maps.LatLngBounds;
       import mx.controls.Alert;
       import mx.effects.easing.Exponential;
       import mx.core.UIComponent;
       import com.google.maps.MapZoomEvent;
       import com.google.maps.overlays.TileLayerOverlay;
       import com.google.maps.MapType;
       import com.google.maps.controls.MapTypeControl;
       import com.google.maps.controls.ZoomControl;
       import com.google.maps.controls.ControlPosition;




                               [Bindable] public var
mapTypeArray:ArrayCollection = new ArrayCollection([
                                 {label:"Contour Map+Overlay", data:"NULL"},
                 {label:"Satellite Images", data:"HYBRID"},
                 {label:"Roads and Allotments", data:"NORMAL"}         ]);
                               public var LynxMapType:IMapType;  //the
new map type


 private function onMapPreinitialize(event:MapEvent):void {
   var myMapOptions:MapOptions = new MapOptions();
   myMapOptions.zoom = 12;
   myMapOptions.center = new LatLng(56.29, 44.00);
   myMapOptions.mapType = MapType.NORMAL_MAP_TYPE;
   myMapOptions.viewMode = View.VIEWMODE_PERSPECTIVE;
   myMapOptions.attitude = new Attitude(20,30,0);
   map.setInitOptions(myMapOptions);
       }

   private function onMapReady(event:MapEvent):void {
   map.addControl(new NavigationControl());
   map.addControl(new MapTypeControl());
       var markerA:Marker = new Marker(
     new LatLng(56.29, 44.00),
     new MarkerOptions({
                 hasShadow: true
     }));

              //We add the TileLayerOverlay
           var ctl:CustomTileLayer = new
CustomTileLayer("http://deer.doroga.tv/getTraficImg.php?x=|X|&y=|Y|&Level=|Z|&rnd="+Math.random()+"1");
                       var ctlo:TileLayerOverlay = new TileLayerOverlay(ctl);
           ctlo.foreground.alpha=0.8;
           map.addOverlay(ctlo);


          var xmlString:URLRequest = new
URLRequest("http://i.doroga.tv/camexporter.xml";);
      var xmlLoader:URLLoader = new URLLoader(xmlString);
          xmlLoader.addEventListener("complete", readXml);

 }

       public function readXml(event:Event):void{
               var markersXML:XML = new XML(event.target.data);
               var markers:XMLList = markersXML..marker;
               var markersCount:int = markers.length();

               for (var i:Number = 0; i < markersCount; i++) {
                       var marker:XML = markers[i];
                       var name:String = mark...@name;
                       var address:String = 'a';
                       var type:String = 'b';
                       var htmlstring:String ='<img src="'+mark...@src+'" >"';
                       var latlng:LatLng = new LatLng(mark...@lat, mark...@lng);
                       createMarker(latlng, htmlstring, name, address, type);
               }
       }


   public function createMarker(latlng:LatLng, htmlstring:String,
name:String, address:String, type:String):void {

                               var markerOptions:MarkerOptions = new
MarkerOptions({
                hasShadow: true
     });

       var marker:Marker = new Marker(latlng, markerOptions);
       var html:String = htmlstring;
               var options:InfoWindowOptions = new InfoWindowOptions({
               contentHTML:html,
               customOffset: new Point(0, 10),
               width: 360,
               height: 280,
               drawDefaultFrame: true
           });
       marker.addEventListener(MapMouseEvent.CLICK,
function(e:MapMouseEvent):void {
         marker.openInfoWindow(new InfoWindowOptions(options));
       });

       map.addOverlay(marker);
   }


 ]]>
</mx:Script>
</mx:Application>


CustomTile.as

package
{

   import flash.display.Bitmap;
   import flash.display.BitmapData;
   import flash.display.Loader;
   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.IOErrorEvent;
   import flash.events.MouseEvent;

   public class CustomTile extends Sprite
   {
       public var loader:Loader;
       private var bm:Bitmap;
       private var bmd:BitmapData;


       public function CustomTile()
       {
           loader = new Loader();
           loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,
ioErrorHandler,false,0,true);
           loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
loaded,false,0,true);

           this.addEventListener(MouseEvent.MOUSE_MOVE,onMouseOver);
       }


       private function ioErrorHandler(event:IOErrorEvent):void {
           event.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,
ioErrorHandler);

       }

       private function onMouseOver(evt:MouseEvent):void {
           bm = this.loader.content as Bitmap;
           bmd = new BitmapData(256, 256);
           bmd.draw(bm.bitmapData);
           var color:int = bmd.getPixel(evt.localX, evt.localY);
           if (color != 0xFFFFFF) {
               this.buttonMode=true;

           } else {
               this.buttonMode=false;

           }

       }


       private function loaded(event:Event):void {
           event.currentTarget.removeEventListener(Event.COMPLETE, loaded);




           addChild(loader);

       }

   }
}

CustomTileLayer.as

package
{
   import com.google.maps.Copyright;
   import com.google.maps.CopyrightCollection;
   import com.google.maps.LatLng;
   import com.google.maps.LatLngBounds;
   import com.google.maps.TileLayerBase;

   import flash.display.DisplayObject;
   import flash.events.Event;
   import flash.events.IOErrorEvent;
   import flash.geom.Point;
   import flash.net.URLRequest;

   public class CustomTileLayer extends TileLayerBase
   {

       private var srvNum:Number=0;
       private var staticTileServerUrl:String;
       private var loader:CustomTile;


       public function CustomTileLayer(_staticTileServerUrl:String)
       {
           staticTileServerUrl=_staticTileServerUrl;

           var copyrightCollection:CopyrightCollection = new
CopyrightCollection();
           copyrightCollection.addCopyright(new Copyright("ennefox",
new LatLngBounds(new LatLng(-180, 90), new LatLng(180, -90)),
21,"ennefox"));
           super(copyrightCollection, 0, 23,0.7);

       }

       public override function
loadTile(tile:Point,zoom:Number):DisplayObject {

           loader = new CustomTile();
           
loader.loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,
ioErrorHandler,false,0,true);
           loader.loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
loaded,false,0,true);


              var tileUrl:String = staticTileServerUrl;

              srvNum++;
              if (srvNum>3)
                  srvNum=0;

              if (tileUrl.indexOf("|N|")>0)
                  tileUrl = tileUrl.replace("|N|",srvNum);

              tileUrl = tileUrl.replace("|X|",tile.x);
              tileUrl = tileUrl.replace("|Y|",tile.y);
              tileUrl = tileUrl.replace("|Z|",zoom);

           loader.loader.load(new URLRequest(tileUrl));



           return loader;
       }

       private function ioErrorHandler(event:IOErrorEvent):void {
           event.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,
ioErrorHandler);
       }

       private function loaded(event:Event):void {
           event.currentTarget.removeEventListener(Event.COMPLETE, loaded);

       }


   }
}
2009/10/1, Nianwei <nian...@gmail.com>:
>
> Here is an example iof using  custome tile layer:
> http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/ArcGISLink/bin-release/MultiService3D.html
>
> If you can be more specific and/or provide the links to 2d/3d version
> with src it will be more helpful.
>
>
> On Sep 30, 5:19 am, "@makar" <evgeni.maka...@gmail.com> wrote:
>> Hello to everybody
>>
>> I'm trying to develop a custom tile layer overlay in Flash API and
>> have a trouble:
>>
>> My custom tile layer works perfect in 2D flash mode but when i change
>> the parameter "maps:" from Map to Map3D
>> my tilelayer is not shown on the map. :(
>>
>> Could you help me to resolve this issue? Any how-tos or examples?
>>
>> Best regards
>> Evgeni
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API For Flash" group.
To post to this group, send email to google-maps-api-for-flash@googlegroups.com
To unsubscribe from this group, send email to 
google-maps-api-for-flash+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-maps-api-for-flash?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to