Comunidad de diseño web y desarrollo en internet online

Usando API de Google maps para Actionscript 3

Hace un tiempo usé un componente de AFcomponet que nos permitía usar Google Maps. Dicho momento dejo de funcionar dado los cambios que propuso Google al publicar su API con nuevos cambios y la publicación para flash.
De esa manera ahora no necesitamos de un componente de tercero para poder tener mapas en nuestra web.
Podrán comprobar que la Api provista por Google es mucho más amigable y simple, también cuenta con una velocidad considerablemente más rápida en lo que se refiere a acceso de datos.
Cuenta también una extensa hoja de referencia lo cual nos va a hacer fácil el desarrollo de cualquier aplicación sea para Flash, AIR o Flex.

Antes que todo lo que necesitan es gestionar una llave (Key (1)) para utilizar la API, para ello deben visitar este link: http://code.google.com/intl/es-ES/apis/maps/signup.htm es importante que sean usuarios registrados de google (Gmail por ejemplo), y la clave va relacionada directamente con el dominio (2) donde ejecutaran la aplicación.



El siguiente paso es instalar el SDK o componente que nos provee Google para conectarse a google maps, la descarga la hacemos desde este link: http://maps.googleapis.com/maps/flash/release/sdk.zip



Una vez descargado des compactamos el archivo y lo pegamos en la siguiente carpeta para los que usamos Windows:
X:\Archivos de programa\Adobe\Adobe Flash CS3\es\Configuration\Components

Nota: X es la unidad de disco donde este instalado – “es” es el idioma, en este caso yo lo tengo en español, en ingles seria “en”

Para los muchachos de Mac así: Macintosh HD/Applications/Adobe Flash CS3/Configuration/Components
Si lo hicimos bien abrimos Flash y en la ventana de componentes deberíamos ver algo asi:



Ahora con un archivo nuevo en blanco procedemos a arrastrar el componente GoogleMapsLibrary a nuestro escenario.
Abrimos el panel de acciones “F9” y escribimos lo siguiente:

Código :

// importamos las clases necesarias, están son las básicas para este ejemplo alcanzan. Al final del tutorial les dejo el link de las referencias para que puedan ver cada clase en particular.
import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.controls.*;
import com.google.maps.LatLng;

//seteamos el ancho y alto de nuestra película
var ANCHO:int = stage.stageWidth;
var ALTO:int = stage.stageHeight;

//creamos nuevo objeto Map
var map:Map = new Map();

//aquí pegamos el código de la llave que sacamos en el primer paso
map.key = "ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";

//seteamos el alto y ancho del mapa
map.setSize(new Point(ANCHO, ALTO));

//agregamos un detector de evento para cuando se completo la carga
map.addEventListener(MapEvent.MAP_READY, onMapReady);

//cargamos el mapa a nuestra lista de visualización
this.addChild(map);

//este es un poniter que agregue yo, el que viene no me gusta
var pointer:Pointer = new Pointer();
this.addChild(pointer);
pointer.x = (ANCHO/2)-(pointer.width/2);
pointer.y = (ALTO/2)-(pointer.height/2);
pointer.alpha = 0.5;

//en este campo vamos a imprimir las coordenadas y zoom actuales, si comentan estas líneas pueden ocultar esta parte
var texto:TextField = new TextField();
var formatoTexto:TextFormat = new TextFormat();
this.addChild(texto);
formatoTexto.font = "Arial";
formatoTexto.size = 12;
formatoTexto.align = TextFormatAlign.LEFT;
formatoTexto.bold = true;
texto.multiline = true;
texto.background = true;
texto.autoSize = TextFieldAutoSize.LEFT;
texto.defaultTextFormat = formatoTexto;

//si se cargo todo bien ejecutamos!
function onMapReady(event:Event):void {
//centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
map.setCenter(new LatLng(-31.409619,-64.184532), 12, MapType.NORMAL_MAP_TYPE);
//mostramos el control de zoom
map.addControl(new ZoomControl());
//el control de posicion
map.addControl(new PositionControl());
//el selector de tipo de mapa
map.addControl(new MapTypeControl());
//el evento para reimprimir las coordenadas cuando desplazamos el mapa
map.addEventListener(Event.ENTER_FRAME,coordenadas);
}

//imprimimos las coordenadas en el campito de texto
function coordenadas(e:Event):void {
texto.text = "Lat/Lng: "+e.currentTarget.getCenter()+"\rZoom: "+e.currentTarget.getZoom() ;
texto.x = (ANCHO-texto.textWidth)-10;
texto.y = (ALTO-texto.textHeight)-10;
}


Bueno hasta ahí como pueden ver muy pero muy simple! Espero que les sea útil.

Referencia de la API
Ejemplos de uso por Google
Este ejemplo funcionando
Archivos de este ejemplo

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate