Siguiendo con los ejemplos, en este caso continuamos el mismo código del ejemplo anterior pero le sumamos la posibilidad de dibujar una zona determinada del mapa con las opciones de Polygon.
Actionscript:
-
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;
-
//IMPORTAMOS LA CLASE PARA TRABAJAR CON MARCADORES
-
import com.google.maps.overlays.*;
-
//importamos la clase para trabajar con opciones para los marcadores
-
import com.google.maps.overlays.MarkerOptions;
-
//clase para trabajar con eventos del mouse
-
import com.google.maps.MapMouseEvent;
-
//clase requerida para desplegar una ventana
-
import com.google.maps.InfoWindowOptions;
-
//clases para trabajar con rellenos y filetes
-
import com.google.maps.styles.FillStyle;
-
import com.google.maps.styles.StrokeStyle;
-
//clases para dibujar un poligono
-
import com.google.maps.overlays.Polygon;
-
import com.google.maps.overlays.PolygonOptions;
-
-
var map:Map = new Map();
-
//CREAMOS UNA VARIABLE CON EL TIPO MARKER
-
var marker:Marker;
-
-
map.key="ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
-
map.addEventListener(MapEvent.MAP_READY, onMapReady);
-
map.setSize(new Point(stage.stageWidth, stage.stageHeight));
-
this.addChild(map);
-
-
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), 15, MapType.NORMAL_MAP_TYPE);
-
map.addControl(new ZoomControl());
-
map.addControl(new PositionControl());
-
map.addControl(new MapTypeControl());
-
//en la libreria cramos un Sprite con el nombre de clase Icono
-
//creamos una variable opciones y guardamos el icono
-
var opciones:MarkerOptions=new MarkerOptions({icon:new Icono()});
-
//CREAMOS UN NUEVO OBJETO CON LAS COORDENADAS DEL MARCADOR
-
//y agregamos como parametro las opciones antes modificadas
-
marker=new Marker(new LatLng(-31.40949996324042, -64.18445689814757),opciones);
-
-
//agregamos un detector de evento para el clic sobre el marcador
-
marker.addEventListener(MapMouseEvent.CLICK, ClickMarket);
-
//por si quieren saber las coordenadas de un punto descomenten la linea 49
-
map.addEventListener(MapMouseEvent.CLICK,mapClic);
-
function mapClic(e:MapMouseEvent):void {
-
//trace(e.latLng);
-
}
-
//creamos un poligono dibujando lineas
-
var polygon:Polygon=new Polygon([
-
//desde
-
new LatLng(-31.40949996324042, -64.18445689814757),
-
//hasta
-
new LatLng(-31.409783819879326, -64.1834162010498),
-
//desde
-
new LatLng(-31.41198139060486, -64.18427450793456),
-
//hasta
-
new LatLng(-31.411688384148704, -64.1853259338684)],
-
//agregamos las opciones de relleno y filete
-
new PolygonOptions({strokeStyle:new StrokeStyle({color:0x000000,thickness:1,alpha:0.7}),fillStyle:new FillStyle({color:0xFF0000,alpha:0.8})}));
-
//agregamos el poligono a la visualizacion del mapa
-
map.addOverlay(polygon);
-
//agregamos el marcador a la visualizacion del mapa
-
map.addOverlay(marker);
-
}
-
-
//el contenido del globo del marcador
-
var Texto:String="<b>LeoBaraldi</b> <br/> Juan de los Palotes 225";
-
-
function ClickMarket(e:MapMouseEvent):void {
-
//mostramos el globo y su contenido
-
marker.openInfoWindow(new InfoWindowOptions({contentHTML:Texto,pointOffset: new Point(0, -35)}));
-
}
7 marzo, 2010 at 1:36 pm
Muchas gracias!!!
era justo lo que estaba buscando. tenes idea como hacer zoom con la ruedita del mouse? mira ese link comko lo hace:
www(.)garrahand(.)com/gmapapiingles(.)swf
saludoss!
24 octubre, 2010 at 10:25 pm
Hola Leo, tengo que hacer un proyecto en googlemaps y quisiera saber si conoces alguna herramienta que te diga todos los puntos geodésicos o de límites de un país, para armar sus respectivos polígonos, muy bueno tu ejemplo! gracias!
26 noviembre, 2010 at 2:29 pm
Hola Leo! Tanto tiempo! .. no se si te acordas de mi.. Che, justo tengo una consulta sobre esto. Tengo un mapa funcionando perfectamente pero necesito remover un mapa y poner otro... lo que hago es algo para remover el mapa es esto:
if (map != null) { this.removeChild(map);
map = null;
}
Con eso basta o hay una manera mas limpia de hacerlo para que no quede basura del mapa que fue removido?? Pregunto porque lo ideas es eliminar eventos y todos los objectos.. según entiendo.
Desde ya muchas gracias y cuando quieras hablamos.
Un abrazo!