post icon

Limitar a un sólo Marker en el mapa de google con Subgurim

En éstos días se vendrán varios articulos sobre la API de Google Maps, con un enfoque especial sobre los controles de Subgurim ya que he encontrado código que implemente hace un tiempo ya en un proyecto y quiero compartirlo, si tienen mejoras sobre la implementación son bienvenidas en los comentarios.

En ésta entrega veremos como trabajar con los markers, siendo que lo típico es ir instanciando varios markers dentro de un mapa puede ocurrir el caso que necesiten limitarlo para marcar una posición única.

En la documentación oficial verán que existen 2 métodos que se aplican al mapa en sí que limpian todos los objetos que hemos puesto sobre el mapa

removeOverlay()
clearOverlays()

Recordad que ambos disparan el método remove() por si quieran ejecutar algo especial al hacer esto.

Mi manera de implementarlo fue al inicializar los mapas en el Page_Load si sólo no es Postback() la petición, agregando un listener en el evento clic del mapa, eliminando todos los markers ya creados anteriormente.

protected void Page_Load(object sender, EventArgs e)
{
	// verifico que no sea postback
	if (Page.IsPostBack)
	{
		gMap.addListener(new GListener(gMap.GMap_Id, GListener.Event.click,
			string.Format(@"
			function()
			{{
			  {0}.clearOverlays();
			}}
			", gMap.GMap_Id)));
	}
}

Como se fijarán el ejemplo anterior servirá para controlarlo desde el lado cliente, si lo desean hacer desde el lado servidor es mucho más sencillo aún

gMap.resetMarkers();

Esto quedaría algo así como verán (el globo informativo no aparecerá, pero lo veremos en una siguiente entrega como mostrar eso)

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder