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