Nota: La API de Google Maps sirve tanto para Flash como para Flex, en este tip solo hablaré de la integración con Flex.
Nota: Necesitas registrarte para obtener una llave para tu aplicación, si no tienes actualmente un sitio donde probar tu aplicación, bastara con poner http://localhost donde te piden el dominio que vas a usar.
Nota: Puedes bajar el sdk desde este link http://maps.googleapis.com/maps/flash/release/sdk.zip, la documentación viene dentro de ese zip.
Una vez que has obtenido tu llave y el sdk, podemos empezar con la creación de la primera aplicación con mapas. El .swc que vamos a usar, lo encuentras en la archivo que bajaste en la siguiente ruta (a partir de la carpeta que se creo con el zip): lib/map_flex_1_7a.swc, el otro archivo es para Flash.
Creas un proyecto nuevo en Flex, y tienes dos opciones para usar el .swc, la primera, lo agregas cuando creas el proyecto y la segunda, lo copias en la carpeta lib de tu proyecto creado, con esto, ya no tendrías que importar la librería.
Una vez teniendo el .swc agregado, vamos a la vista de código y abrimos un nuevo tag, automáticamente aparecerán ya los componentes del mapa, el componente que usaremos, será el de Map. A su vez, se creará automáticamente el namespace de los Mapas de Google
Código :
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:maps="com.google.maps.*"> <maps:Map /> </mx:Application>
Código :
<maps:Map id="gmap" width="100%" height="100%" mapevent_mapready="mapready_gmap(event)" key="aqui va tu llave generada" />
Código :
private function mapready_gmap(e:MapEvent):void {
//ubicamos el mapa en la latitud y longitud especificada
//ponemos el zoomLevel en 10
//zoom level de 0 a 19 siendo 0 el más alejado
//le decimos que empiece mostrando el tipo de mapa Normal
gmap.setCenter(new LatLng(19.43274718737006, -99.13330793380737), 10, MapType.NORMAL_MAP_TYPE);
gmap.addControl(new ZoomControl());
gmap.addControl(new MapTypeControl());
gmap.enableScrollWheelZoom();
gmap.addEventListener(MapMouseEvent.CLICK, click_gmap);
}Código :
private var m:Marker;
private function click_gmap(e:MapMouseEvent):void {
//definimos el nuevo marcador
m = new Marker(e.latLng,
new MarkerOptions({
//el color y opacidad del marcador
//tambiŽn se puede usar degradados
fillStyle: new FillStyle({
alpha: 0.75,
color: 0x00ff00
}),
//si queremos que tenga sombra
hasShadow: true,
//el radio del marcador
radius: 6,
//el color, opacidad y grosor de la l’nea
strokeStyle: new StrokeStyle({
alpha: 0.75,
color: 0x0000ff,
thickness: 1
}),
//un tooltip
tooltip: "Marcador en: " + e.latLng.toString()
})
);
//agregamos el marcador al mapa
gmap.addOverlay(m);
}Código :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:maps="com.google.maps.*">
<mx:Script>
<![CDATA[
import com.google.maps.styles.StrokeStyle;
import com.google.maps.styles.FillStyle;
import com.google.maps.overlays.MarkerOptions;
import com.google.maps.overlays.Marker;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.controls.ZoomControl;
import com.google.maps.MapType;
import com.google.maps.LatLng;
import com.google.maps.MapMouseEvent;
import com.google.maps.MapEvent;
private function mapready_gmap(e:MapEvent):void {
//ubicamos el mapa en la latitud y longitud especificada
//ponemos el zoomLevel en 10
//le decimos que empiece mostrando el tipo de mapa Normal
gmap.setCenter(new LatLng(19.43274718737006, -99.13330793380737), 10, MapType.NORMAL_MAP_TYPE);
gmap.addControl(new ZoomControl());
gmap.addControl(new MapTypeControl());
gmap.enableScrollWheelZoom();
gmap.addEventListener(MapMouseEvent.CLICK, click_gmap);
}
private var m:Marker;
private function click_gmap(e:MapMouseEvent):void {
//definimos el nuevo marcador
m = new Marker(e.latLng,
new MarkerOptions({
//el color y opacidad del marcador
//tambiŽn se puede usar degradados
fillStyle: new FillStyle({
alpha: 0.75,
color: 0x00ff00
}),
//si queremos que tenga sombra
hasShadow: true,
//el radio del marcador
radius: 6,
//el color, opacidad y grosor de la l’nea
strokeStyle: new StrokeStyle({
alpha: 0.75,
color: 0x0000ff,
thickness: 1
}),
//un tooltip
tooltip: "Marcador en: " + e.latLng.toString()
})
);
//agregamos el marcador al mapa
gmap.addOverlay(m);
}
]]>
</mx:Script>
<maps:Map id="gmap" width="100%" height="100%" mapevent_mapready="mapready_gmap(event)"
key="tu llave va aquí" />
</mx:Application>