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 -~----------~----~----~----~------~----~------~--~---
