¡Ayúdanos a traducir esta Web y consigue licencias gratis!
Usuario anónimo  |  Ingresar  |  Regístrate

Marker Manager

Para poder manejar cientos de iconos a la vez y además poder asignarles un rango de zoom, no tenemos más que usar el MarkerManager.

Por ejemplo, podríamos añadir un icono que sólo fuera visible a partir de un nivel de zoom = 2, y luego añadir diez marcadores que sólo fueran visibles entre el nivel de zoom 6 y el 8.

Además el MarkerManager sólo tiene una función muy sencilla de usar:
  • Add(param1, param2, [param3]): el primer parámetro puede ser tanto un simple GMarker, un GInfoWindow o un GInfoWindowTabs como un listado genérico de ellos. El segundo parámetro indica el nivel mínimo de zoom y el tercero (opcional) indica el máximo. Recordemos que los niveles de zoom van del 0 al 17.
A cada GMarker se le puede añadir un evento con GListener. En nuestro ejemplo, a cada uno de los diez marcadores creados aleatoriamente, se le ha asignado un evento "onclick" que alerta del orden en que ha sido creado.




Code.aspx
<cc1:GMap ID="GMap1" runat="server" />
Code.aspx.cs
GMap1.setCenter(new GLatLng(41, 3), 3);
GMap1.Add(new GControl(GControl.preBuilt.LargeMapControl));

GMarker m1 = new GMarker(new GLatLng(41, 3));

MarkerManager mManager = new MarkerManager();

mManager.Add(m1, 2);

List<GMarker> mks = new List<GMarker>();

List<GInfoWindow> iws = new List<GInfoWindow>();

Random r = new Random();
double ir1, ir2;
GMarker mkr;
for (int i = 0; i < 10; i++)
{
ir1 = (double)r.Next(40) / 10.0 - 2.0;
ir2 = (double)r.Next(40) / 10.0 - 2.0;

mkr = new GMarker(m1.point + new GLatLng(ir1, ir2));
mks.Add(mkr);

GMap1.Add(new GListener(mkr.ID, GListener.Event.click, "function(){alert('" + i + "');}"));
}

for (int i = 0; i < 5; i++)
{
double ir1 = (double)r.Next(40) / 20.0 - 1;
double ir2 = (double)r.Next(40) / 20.0 - 1;

mkr = new GMarker(m1.point + new GLatLng(ir1, ir2));
GInfoWindow window = new GInfoWindow(mkr, i.ToString());
iws.Add(window);
}

mManager.Add(mks, 6, 8);
mManager.Add(iws, 7, 8);

GMap1.markerManager = mManager;
Powered by Subgurim.NET