LeoBaraldi – Ejemplos Flash, Ejemplos actionscript, Tutoriales Flash, Tutoriales actionscript, actionscript 3, curso de actionscript

Recursos y ejemplos de actionscript, Flash, AIR, Flex, CSS y HTML. Tutoriales de actionscript 2 y actionscript 3

Usando API de Google Maps para Actionscript 3

| 33 Comments

Hace un tiempo publique 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 para flash.

De esa manera ahora no necesitamos de un componente de tercero para poder tener mapas en nuestra web, y este ejemplo viene a colación de las extensas consultas y fallas detectadas en el  componente de AF.

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.

1 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/ 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.

2 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\AdobeAdobe 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”

Nota: si usas CS4 es en: C:\Archivos de programa\Adobe\Adobe Flash CS4\Common\Configuration\Components

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:

3 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:

Actionscript:
  1. // 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.
  2. import com.google.maps.LatLng;
  3. import com.google.maps.Map;
  4. import com.google.maps.MapEvent;
  5. import com.google.maps.MapType;
  6. import com.google.maps.controls.*;
  7. import com.google.maps.LatLng;
  8.  
  9. //seteamos el ancho y alto de nuestra película
  10. var ANCHO:int = stage.stageWidth;
  11. var ALTO:int = stage.stageHeight;
  12.  
  13. //creamos nuevo objeto Map
  14. var map:Map = new Map();
  15.  
  16. //aquí pegamos el código de la llave que sacamos en el primer paso
  17. map.key = "ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
  18.  
  19. //seteamos el alto y ancho del mapa
  20. map.setSize(new Point(ANCHO, ALTO));
  21. //agregamos un detector de evento para cuando se completo la carga
  22. map.addEventListener(MapEvent.MAP_READY, onMapReady);
  23.  
  24. //cargamos el mapa a nuestra lista de visualización
  25. this.addChild(map);
  26.  
  27. //este es un poniter que agregue yo, el que viene no me gusta
  28. var pointer:Pointer = new Pointer();
  29. this.addChild(pointer);
  30. pointer.x = (ANCHO/2)-(pointer.width/2);
  31. pointer.y = (ALTO/2)-(pointer.height/2);
  32. pointer.alpha = 0.5;
  33.  
  34. //en este campo vamos a imprimir las coordenadas y zoom actuales, si comentan estas líneas pueden ocultar esta parte
  35. var texto:TextField = new TextField();
  36. var formatoTexto:TextFormat = new TextFormat();
  37. this.addChild(texto);
  38. formatoTexto.font = "Arial";
  39. formatoTexto.size = 12;
  40. formatoTexto.align = TextFormatAlign.LEFT;
  41. formatoTexto.bold = true;
  42. texto.multiline = true;
  43. texto.background = true;
  44. texto.autoSize = TextFieldAutoSize.LEFT;
  45. texto.defaultTextFormat = formatoTexto;
  46.  
  47. //si se cargo todo bien ejecutamos!
  48. function onMapReady(event:Event):void {
  49. //centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
  50. map.setCenter(new LatLng(-31.409619,-64.184532), 12, MapType.NORMAL_MAP_TYPE);
  51. //mostramos el control de zoom
  52. map.addControl(new ZoomControl());
  53. //el control de posicion
  54. map.addControl(new PositionControl());
  55. //el selector de tipo de mapa
  56. map.addControl(new MapTypeControl());
  57. //el evento para reimprimir las coordenadas cuando desplazamos el mapa
  58. map.addEventListener(Event.ENTER_FRAME,coordenadas);
  59. }
  60.  
  61. //imprimimos las coordenadas en el campito de texto
  62. function coordenadas(e:Event):void {
  63. texto.text = "Lat/Lng: "+e.currentTarget.getCenter()+"rZoom: "+e.currentTarget.getZoom() ;
  64. texto.x = (ANCHO-texto.textWidth)-10;
  65. texto.y = (ALTO-texto.textHeight)-10;
  66. }

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

Referencia de la API
Ejemplos de uso por Google

Author: LeoBaraldi

Diseñador gráfico y programador en Web, con experiencia profesional en el rubro desde 1998. Experto en diseño de interfaces Frontend y Backend, para sitios, portales y dispositivos móviles. Experto en estándares, CSS y HTML, conocimientos en CEO. Desarrollador de sitios multi plataformas en, HTML5, CSS3 y JQuery. Experto programador en Adobe Flex, AIR y ActionScript 3.0. Conocimientos en lenguajes como PHP, Javascript y bases de datos MySQL. Profesor de Diseño III y Diseño Web en la Escuela Superior de Diseño Aguas de la Cañada, asesor y colaborador para medios gráficos, editoriales y revistas afines. Actualmente Jefe de Producción en Manifesto solutions.

33 Comments

  1. Hola,
    Muchas gracias por la ayuda, pero me ha surgido una duda. Utilizo un Flash CS3 ejecutable, directamente desde una memoria USB. ¿En mi caso donde tengo que instalar la libreria? SI me pudieran ayudar sería de gran ayuda. Gracias.

  2. Muchas gracias por todo, lo estoy probando y va de maravilla, pero una pregunta, se podrian incluir eventos dentro del mapa?, es decir para señalar ofinas en distintos paises; mucha gracias

  3. hola, podemos poner código en AS 2.0 con esa API? cómo sería? Muchas gracias

  4. Lamentablemente no se puede Tania

  5. Muchisimas gracia por tu trabajo. Me ha servido de grandisima ayuda. Una pregunta, cómo puedo incorporar el Pointer de Google?
    Gracias

  6. ¿Puede cargarse esta película como un SWF externo en una película en AS2 2? ¿Hay por ahí alguna aplicación de google o Yahoo maps para AS2?

  7. egandalph no se puede lo que quieres, había una versión pero de descontinuó y no era oficial de google :(
    Only AS3

  8. SALUDOS
    MUY BUENO ESTE EJEMPLO, Y ES ENTENDIBLE LO UNICO KE NO HE PODIDO DESIFRAR ES COMO PUEDO CAMBIAR LA POSICION MANAUL MENTE

    GRACIAS

  9. Hola, ¿alguna solución para webs que utilizaban el componente de AFComponet?
    Si no la hay, menudo fiasco...

  10. Hola,

    A la hora de exportarlo me dice:

    1046: No se encontró el tipo o no es una constante en tiempo de compilación: Pointer

    Qué puede fallar? Gracias.

  11. Michelcool se que af todavía tiene una versión que funciona pero la migraron a as3

  12. Comprueba que tengas las clases necesarias! no uses una versión portable de flash

  13. No, no uso una versión portable :(

    Mi versión de sdk es la: "map_1_16.swc". Crees que quizà sea este el problema?

    Sigo cada paso de tu tutorial (o el de google) y todo va perfecto hasta que llega el paso de los pointers o markers dónde me da el error anterior:

    1046: No se encontró el tipo o no es una constante en tiempo de compilación: Pointer

    :'(

  14. Iep! He encontradu un tutorial tuyo en cristalab. Me he bajado los archivos y va de perlas :D

    Gracias!

  15. Lo de AFC ha sido un desastre, yo no he conseguido que me funcione lo de Umap/AS3 como lo hacía Gmap/AS2...Ahora ando desesperado buscando una solucion para poder cargar un fichero KML (XML que pone distintos logos en distintos sitios)... Si alguien lo ha hecho por favor que diga como !!! Mil gracias.

  16. Hola, en primer lugar mil gracias por este perfectisimo tutorial!!! mi duda esl a siguiente, si en vez de un puntero quiero pener un pequeño gif ( un logo ) como lo cargo? supongo que es en este apartado pero no se como decirlo, Load?
    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;

  17. Perdon me olvide de lo mas importante, y para colocarlo en otras cordenadas, es decir para situar diferentes puntos en el mapa? muchas gracias genio!

  18. Como se puede hacer un market, en este tutorial. Es decir una marca , o un logo que este situado en unas coordenadas determinadas, y que cuando muevas el mapa, la marca se mueva tambien

    Un saludo y muchas gracias

  19. seria algo asi:

    Actionscript:
    1. import com.google.maps.Map;
    2. import com.google.maps.MapEvent;
    3. import com.google.maps.MapType;
    4. import com.google.maps.controls.*;
    5. import com.google.maps.LatLng;
    6. //IMPORTAMOS LA CLASE PARA TRABAJAR CON MARCADORES
    7. import com.google.maps.overlays.*;
    8.  
    9. var map:Map = new Map();
    10. //CREAMOS UNA VARIABLE CON EL TIPO MARKER
    11. var marker:Marker;
    12.  
    13. map.key="ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
    14. map.addEventListener(MapEvent.MAP_READY, onMapReady);
    15. map.setSize(new Point(stage.stageWidth, stage.stageHeight));
    16. this.addChild(map);
    17.  
    18. function onMapReady(event:Event):void {
    19.     //centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
    20.     map.setCenter(new LatLng(-31.409619,-64.184532), 12, MapType.NORMAL_MAP_TYPE);
    21.     map.addControl(new ZoomControl());
    22.     map.addControl(new PositionControl());
    23.     map.addControl(new MapTypeControl());
    24.     //CREAMOS UN NUEVO OBJETO CON LAS COORDENADAS DEL MARCADOR
    25.     marker=new Marker(new LatLng(-31.409619,-64.184532));
    26.     //Y LO AGREGAMOS A LA VISUALIZACION DEL MAPA
    27.     map.addOverlay(marker);
    28. }

  20. Pingback: Agregar Marker o pointer en componente de google maps actionscript 3 | LeoBaraldi - Ejemplos Flash, Ejemplos actionscript, Tutoriales Flash, Tutoriales actionscript, actionscript 3, curso de actionscript

  21. Muchísimas gracias... a mi me pareció brutal la aportación.

  22. Muy bueno TnX

    ayudo mucho el Tutorial

  23. hey se pueden insertar dos mapas google en el mismo flash

    saudos

  24. AYUUUDAAAAAAA necesito poner en una misma pagina dos google maps desd flash por favor ayudame como lo puedo loigrar

    saludos

  25. De hecho ya tengo uno y funciona perfecto pero a la hora de poner el otro mapa tiene los siguientes problemas:

    dice que tiene conflicto con la latitud, la longitud y la funcion

    que hago?

  26. necesito el componente googlemapslibrary para AS2!!!!!

    urgente!!! alguien lo tiene??

  27. Hola LeoBaraldi, te escribo pq llevo un tiempo siguiendo tus articulos de flash. Tengo un problema, me baje todo del sitio de google (API) instale el componente hice todo lo que pones aqui y en la pagina y al ejecutar, el swf me aparece en blanco, sin nada. ¿Sabes a que puede ser debido? Gracias de antemano!!!

  28. Para q quede claro, tb registre los dominios en los que quiero poner mis archivos, y me dieron las claves. Aun asi y con todo se me queda en blanco. A ver si puedes contestarme

  29. bravo por tu aporte keria
    todo perfecto pero estoy creando mi web todo en flash y como haria para poder subir este swf porke ya intente y no se previzualiza ,
    gracias de antemano espero tu respuesta x aki y ami email ,

  30. Estoy trabajando con flash CS4 y AS3, en lugar del mapa me aparece el mensaje que necesito setear el "sensor = true o sensor = false" pero no encuentro donde colocar esta linea, si la pongo me sale error en la compilacion, ayudame con este problema, gracias

  31. Hola leo; tengo un problema al integrar el api en mi web realizada en Flas. Tanto si inserto directamente el SWF en el escenario principal de mi pelicula, como si lo hago con una llamada loadMovie desde un mc en blanco, el mapa ocupa todo el escenario cubriendo el resto de objetos.Imagino que se debe a un problema de rutas, pero no doy con la solución.
    ¿puedes ayudarme?.
    Gracias de antemano.

  32. Y ahora que ha quedado obsoleta la API para flash que se puede hacer??? he kedado perdido....

  33. descague y segui el tutorial para realizar poner un mapa online..
    pero ya no se generan las API KEY como antes.. sabras decirme como hacer?

Deja un comentario

Required fields are marked *.

*