Integración con mapas de Google preexistentes
En la versión v1 de argenmap.jquery, suceden varias cosas cuando inicializamos el mapa:
- Se generan los elementos HTML necesarios para ubicar el mapa
- Internamente, se genera un objeto
google.maps.Mapcon la API de Google Maps y se almacena, a través dejQuery.data(), en$(SELECTOR).data('argenmap').gmap. (Esto cambia en la versión v2 de argenmap.jquery ya que no usa la base programática de Google Maps)
- Se configuran las opciones por defecto (zoom, centro, capas base, proyección)
Si quisiéramos acceder a la instancia del mapa puede hacerse declarando una variable y asignarla de esta manera:
<script type="text/javascript">
$("#mapa").argenmap();
var map = $('#mapa').data('argenmap').gmap;
</script>
En definitiva, argenmap.jquery almacena un objeto
google.maps.Mapa través dejQuery.data()en$(SELECTOR).data('argenmap').gmapy este objeto es el que importa si necesitás migrar una app basada en Google Maps a un mapa con datos oficiales de Argentina.
Gracias a esta funcionalidad, los sitios que usan actualmente un mapa de Google, pueden reemplazar rápidamente ese mapa por uno de argenmap.jquery.
5.1 Ejemplo funcional
Imaginemos este ejemplo:
<script>
//objeto InfoWindow vacio
var informacion = new google.maps.InfoWindow();
//coordenadas del Aconcagua
var aconcagua = new google.maps.LatLng(-32.64799150996908, -70.05207443237303);
//coordenadas para el centro del mapa
var centro = new google.maps.LatLng(-32.64799150996908, -69.913028717041);
//opciones de inicialización para mapa de google
var opciones = {
zoom: 12,
center: centro
};
//instancia del mapa de google maps
var map = new google.maps.Map(document.getElementById('mapa'),opciones);
//configuración del InfoWindow
informacion.setContent('Este es el contenido del InfoWindow');
informacion.setPosition(aconcagua);
//mostrar InfoWindow
informacion.open(map);
</script>
Para reemplazar rápidamente el mapa de Google por uno de Argenmap buscamos dónde se instancia el mapa:
...
//instancia del mapa de google maps
var map = new google.maps.Map(document.getElementById('mapa'),opciones);
...
Podemos ver como el mapa se almacena en una variable
mapy luego se utiliza para configurar y abrir unInfoWindow. Ahora lo único que tenemos que hacer es, en lugar de crear un mapa de Google, crear un mapa con Argenmap y luego asignar esa misma variable (map) al mapa que crea internamente Argenmap.
...
//creamos el mapa con las mismas opciones que antes, pero en una sola línea ;)
$('#mapa').argenmap().centro(-32.64799150996908, -69.913028717041).zoom(12);
//y asignamos la variable 'map' al mapa interno de argenmap
var map = $('#mapa').data('argenmap').gmap;
...
Listo, nuestro mapa ahora se instancia con Argenmap y podemos visualizarlo con los datos oficiales de la República Argentina
5.2 Ejercicio
- Hacé click en Javascript
- Comentá la línea que empieza con
var map = new google.maps...
- Des-comentá las líneas que empiezan con
$('#mapa').argenmap...yvar map = $('#mapa').data...
- Mirá los resultados en el panel de la derecha
El código de cada sitio usando un mapa de Google puede ser distinto, pero siempre hará referencia al objeto mapa de alguna forma y este puede ser extraído de la instancia interna de mapa de Argenmap, haciendo que reemplazar uno por otro sea extremadamente simple.
Recordá que tenés más ejemplos para consultar en la documentación de Argenmap
Anterior: 4.2 Superponer una capa WMS