That's fantastic, Beto, thanks!

On Fri, Feb 13, 2009 at 9:42 AM, Beto Radicchi <[email protected]> wrote:
>
>
> Dear colleagues,
>  I am posting here my class that I created for interaction with the
> Panoramio google maps, I hope it is useful
>
> //
> #######################################################################
> package {
>
>        import flash.net.*;
>        import flash.events.*;
>        import flash.display.*;
>        import flash.text.*;
>
>        import com.google.maps.*;
>        import com.google.maps.overlays.*;
>        import com.google.maps.controls.*;
>        import com.google.maps.styles.*;
>        import com.google.maps.services.*;
>
>        public class Panoramio_API extends Object {
>
>
>                private var strUrl:String = "";
>                private var strDadoRetorno:String = "";
>                private var objDado:Object = null;
>
>                private var map:Map;
>                private var markers:Array = [];
>
>                public function Panoramio_API(mapGoogle:Map) {
>                        map = mapGoogle;
>                }
>
>                public function GetURL(url:String):void {
>                        if(url.length>0 && url!=null){
>                                strUrl = url;
>                        }else{
>                                strUrl = "";
>                        }
>                        var urlRequest:URLRequest = new URLRequest(strUrl);
>                        var urlLoader:URLLoader = new URLLoader(urlRequest);
>                        urlLoader.addEventListener("complete", 
> GetURL_Complete);
>                }
>                private function GetURL_Complete(event:Event):void{
>                        if(event.target.data.length>0 && 
> event.target.data!=null){
>                                strDadoRetorno = event.target.data;
>                                CriaObjeto();
>                        }else{
>                                strDadoRetorno = "";
>                        }
>
>                }
>                private function CriaObjeto(){
>                        objDado = new Object();
>                        var strInicio:String = strDadoRetorno.split("[")[0];
>                        var strDado:String = 
> strDadoRetorno.split("[")[1].split("]")[0];
>
>                        objDado.length = new int(strInicio.split(": 
> ")[1].split(",")[0]);
>                        objDado.dado = new Array(objDado.length);
>                        for(var i:int=0; i<objDado.dado.length; i++){
>                                var lstItem:Array = 
> strDado.split("{")[i+1].split("}")[0].split
> (",");
>                                objDado.dado[i] = new Object();
>                                for(var w:int=0; w<lstItem.length; w++){
>                                        var strNomeObject:String = 
> Trim(RemoveChar(lstItem[w].split(":")
> [0],"\""));
>                                        objDado.dado[i][strNomeObject] = 
> lstItem[w].split(":")[1];
>                                        if(lstItem[w].split(":").length>2){
>                                                for(var j:int=2; 
> j<lstItem[w].split(":").length; j++){
>                                                        
> objDado.dado[i][strNomeObject] += ":"+lstItem[w].split(":")[j];
>                                                }
>                                        }
>                                        objDado.dado[i][strNomeObject] = 
> Trim(RemoveChar(objDado.dado[i]
> [strNomeObject],"\""));
>                                }
>                        }
>                        CriaMarkers()
>                }
>                public function CriaMarkers():void{
>                        var bounds:LatLngBounds = new LatLngBounds();
>
>                        for(var w:int=0; w<markers.length; w++) {
>                                map.removeOverlay(markers[w]);
>                        }
>                        markers = new Array();
>
>                        for(var i:int=0; i < objDado.dado.length; i++) {
>                                var objMarker:Object = objDado.dado[i];
>
>                                var marker:Marker = CriaMarker(objMarker);
>
>                                var latlng:LatLng = new 
> LatLng(Number(objMarker.latitude), Number
> (objMarker.longitude));
>                                map.addOverlay(marker);
>                                bounds.extend(latlng);
>                                markers.push(marker);
>                        }
>                }
>                public function CriaMarker(objMarker:Object): Marker {
>
>                        var _id:Number                  = 
> Number(objMarker.photo_id);
>                        var _titulo:String              = 
> objMarker.photo_title;
>                        var _link:String                = objMarker.photo_url;
>                        var _img:String                 = 
> objMarker.photo_file_url;
>                        var _thumbnail:String   = _img.split("small")
> [0]+"mini_square"+_img.split("small")[1];
>                        var _longitude:Number   = Number(objMarker.longitude);
>                        var _latitude:Number    = Number(objMarker.latitude);
>                        var _width:Number               = 
> Number(objMarker.width);
>                        var _height:Number              = 
> Number(objMarker.height);
>                        var _date:String                = 
> objMarker.upload_date;
>                        var _userID:Number              = 
> Number(objMarker.owner_id);
>                        var _userNome:String    = objMarker.owner_name;
>                        var _userLink:String    = objMarker.owner_url;
>
>                        var latlng:LatLng = new LatLng(_latitude, _longitude);
>
>                        var marker:Marker;
>
>                        var loadThumbnail:Loader = new Loader();
>                        loadThumbnail.load(new URLRequest(_thumbnail));
>
>                        marker = new Marker(latlng, new MarkerOptions({icon:
> loadThumbnail}));
>                        marker.addEventListener(MapMouseEvent.CLICK, function
> (e:MapMouseEvent):void {
>                                var loadImg:Loader = new Loader();
>                                
> loadImg.contentLoaderInfo.addEventListener(Event.COMPLETE, function
> (event:Event):void {
>                                        var spt_Conteudo:Sprite = new Sprite();
>
>                                        loadImg.x = 0;
>                                        loadImg.y = 0;
>
>                                        var txf_Logo:TextFormat = new 
> TextFormat();
>                                        txf_Logo.size = 10;
>                                        txf_Logo.font = "Arial";
>                                        txf_Logo.bold = true;
>                                        txf_Logo.color = 0x008965;
>                                        var txt_Logo:TextField = new 
> TextField();
>                                        txt_Logo.htmlText = "<a 
> href='http://www.panoramio.com/'
> target='_blank'>Panoramio.com</a>";
>                                        txt_Logo.setTextFormat(txf_Logo);
>                                        txt_Logo.autoSize = 
> TextFieldAutoSize.LEFT;
>                                        txt_Logo.selectable = false;
>                                        txt_Logo.x = 0;
>                                        txt_Logo.y = 5;
>
>                                        loadImg.x = txt_Logo.x;
>                                        loadImg.y = txt_Logo.y + 
> txt_Logo.textHeight + 5;
>                                        
> loadImg.addEventListener(MouseEvent.CLICK, function
> (event:MouseEvent):void {
>                                                navigateToURL(new 
> URLRequest(_link), "_blank");
>                                        });
>
>                                        var txf_Titulo:TextFormat = new 
> TextFormat();
>                                        txf_Titulo.size = 12;
>                                        txf_Titulo.font = "Arial";
>                                        txf_Titulo.bold = true;
>                                        txf_Titulo.color = 0x0066CC;
>                                        txf_Titulo.align = "right";
>                                        var txt_Titulo:TextField = new 
> TextField();
>                                        txt_Titulo.text = 
> _titulo.toUpperCase();
>                                        txt_Titulo.setTextFormat(txf_Titulo);
>                                        txt_Titulo.autoSize = 
> TextFieldAutoSize.LEFT;
>                                        txt_Titulo.selectable = false;
>                                        txt_Titulo.wordWrap = true;
>                                        txt_Titulo.width = loadImg.width;
>                                        txt_Titulo.x = loadImg.x + 
> loadImg.width - txt_Titulo.width + 1;
>                                        txt_Titulo.y = loadImg.y + 
> loadImg.height + 1;
>
>                                        var txf_Autor:TextFormat = new 
> TextFormat();
>                                        txf_Autor.size = 10;
>                                        txf_Autor.font = "Arial";
>                                        txf_Autor.bold = true;
>                                        txf_Autor.color = 0xc0c0c0;
>                                        txf_Titulo.align = "right";
>                                        var txt_Autor:TextField = new 
> TextField();
>                                        txt_Autor.htmlText = "<a 
> href='"+_userLink+"'
> target='_blank'>"+_userNome+"</a>";
>                                        txt_Autor.setTextFormat(txf_Autor);
>                                        txt_Autor.autoSize = 
> TextFieldAutoSize.LEFT;
>                                        txt_Autor.selectable = false;
>                                        txt_Autor.x = loadImg.x + 
> loadImg.width - txt_Autor.width +1;
>                                        txt_Autor.y = txt_Titulo.y + 
> txt_Titulo.textHeight + 1;
>
>                                        spt_Conteudo.addChild(txt_Logo);
>                                        spt_Conteudo.addChild(txt_Titulo);
>                                        spt_Conteudo.addChild(txt_Autor);
>                                        spt_Conteudo.addChild(loadImg);
>
>                                        var width:Number = spt_Conteudo.width;
>                                        var height:Number = 
> spt_Conteudo.height;
>
>                                        var options:InfoWindowOptions = new 
> InfoWindowOptions
> ({title:_titulo, width:width+5, height:height, padding:10,
> customContent: spt_Conteudo, drawDefaultFrame:true});
>                                        marker.openInfoWindow(options);
>                                });
>                                loadImg.load(new URLRequest(_img));
>                        });
>
>                        return marker;
>                }
>
>                private function Trim(strValue:String):String{
>                        var lstTemp:Array = strValue.split(" ");
>                        strValue = lstTemp[0];
>                        for(var i:int=1; i<lstTemp.length; i++){
>                                strValue += lstTemp[i];
>                        }
>                        return strValue;
>                }
>                private function 
> RemoveChar(strValue:String,char:String):String{
>                        var lstTemp:Array = strValue.split(char);
>                        strValue = lstTemp[0];
>                        for(var i:int=1; i<lstTemp.length; i++){
>                                strValue += lstTemp[i];
>                        }
>                        return strValue;
>                }
>        }
> }
> //
> #######################################################################
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-maps-api-for-flash?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to