Iconos avanzados
Podemos crear un tipo de icono nuevo que sustituya al existente por defecto.
Para ello usaremos
GIcon, que como comentábamos en el ejemplo anterior, asignaremos al GMarker
desde su propiedad options (del tipo GMarkerOptions).
GIcon tiene 11 propiedades, y es obligatorio asignar, al menos, los dos primeros:
-
image: la imagen del icono (obligatorio).
-
shadow: la sombra del icono.
-
iconSize: el tamaño (del tipo GSize) de la imagen del icono (obligatorio).
-
shadowSize: el tamaño (del tipo GSize) de la sombra del icono.
-
iconAnchor: la coordenada relativa en pixeles (Gpixel) de la esquina superior
izquierda desde la cual el icono es clickable (obligatorio).
-
infoWindowAnchor: la coordenada relativa en pixeles (Gpixel) de la esquina superior
izquierda desde la cual el InfoWindow (o similar) asociado al icono es clickable.
-
printImage: la imagen para mapas impresos. Debe tener el mismo tamaño que image.
-
mozPrintImage: análogo a printImage, pero para Mozilla/Firefox.
-
printShadow: la sombra para mapas impresos. Debe tener el mismo tamaño que shadow.
-
transparent: la imagen de un virtual versión trasparente de la imagen, usada para
capturar eventos clic en Internet Explorer. La imagen debe ser el PNG de 24-bits de la image,
con un 1% de opacidad. Debe tener el mismo tamaño que image.
-
baseIcon: un icono base del que se copiarán todas las propiedades a este icono.
Recomendado: en la
galería de iconos
podréis encontrar cientos de iconos para vuestros mapas.
Code.aspx
<cc1:GMap ID="GMap1" runat="server" />
Code.aspx.cs
GLatLng latlng = new GLatLng(41, -3.2);
GMap1.setCenter(latlng, 5);
GIcon icon = new GIcon();
icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
GMarkerOptions mOpts = new GMarkerOptions();
mOpts.clickable = false;
mOpts.icon = icon;
GMarker marker = new GMarker(latlng, mOpts);
GMap1.addGMarker(marker);