@usig-gcba/mapa-interactivo v1.2.5
Mapa Interactivo
Una manera simple de crear un mapa de la Ciudad de Buenos Aires y alrededores utilizando la libreria leaflet.
Instalación
npm install @usig-gcba/mapa-interactivoCómo usarlo
ES6
import MapaInteractivo from '@usig-gcba/mapa-interactivo'
const mapaInteractivo = new MapaInteractivo("mapa-id", {center: [-34.62, -58.44]});Es importante que el div contenedor contenga las dimensiones deseadas previamente a inicializar el mapa.
API
new MapaInteractivo(id: String, opciones?: Object) => MapaInteractivo
- id: id del elemento html donde se debe insertar el mapa
- opciones: objecto de configuracion con cualquiera de las siguientes propiedades:
| Opcion | Tipo | Default | Descripcion |
|---|---|---|---|
| onClick | function | null | Callback llamado al hacer click en el mapa |
| onContextMenu | function | null | Callback llamado al hacer click derecho sobre el mapa |
| onMoveStart | function | null | Callback llamado al comienzo de un movimiento generado en el mapa (tanto por zoom como por desplazamiento) |
| onMoveEnd | function | null | Callback llamado al final de un movimiento generado en el mapa |
| onMarkerDragEnd | function | null | Callback llamado luego de arrastrar un marcador |
| onFeatureClick | function | null | Callback llamado al seleccionar un feature |
| onInactivateMarker | function | null | Callback llamado al desactivar un marcador |
| center | Number, Number | [-34.62, -58.44] | Centro del mapa al iniciar |
| zoomControl | boolean | false | Mostrar el control de zoom cuando es true |
| zoom | Number | 13 | Nivel de zoom del mapa al iniciar |
| touchZoom | boolean | true | Habilita zoom mediante eventos touch cuando es true |
| tap | boolean | true | Habilita eventos touch cuando es true |
| attributionControl | boolean | false | Se muestra la informacion de atribucion |
| markerZoomInLevel | Number | 15 | Nivel en el que se debe hacer zoom sobre un marcador |
| featureZoomInLevel | Number | 17 | Nivel en el que se debe hacer zoom sobre un feature |
| language | String | es | Idioma de los mensajes del mapa |
| fromMarker | Icon | ![]() | Icono del marcador de inicio al mostrar un recorrido |
| toMarker | Icon | ![]() | Icono del marcador de fin al mostrar un recorrido |
| activeMarker | Icon | Icono del marcador activo | |
| marker | Icon | ![]() | Icono del marcador default |
opciones.baseLayer?: Object
| Opcion | Tipo | Default | Descripcion |
|---|---|---|---|
| params.maxZoom | Number | 18 | Zoom máximo sobre el mapa |
| params.minZoom | Number | 9 | Zoom minimo sobre el mapa |
opciones.texts?: Object
Objeto conteniendo los textos definidos para cada idioma. Por default se encuentran los siguientes textos:
texts: {
es: {
loadingLayers: 'Cargando capas...',
loadingMaps: 'Cargando mapas...',
loadingInformation: 'Cargando información...',
errorLoadingInformation: 'Se produjo un error al acceder a la información. Reintente más tarde.'
},
en : {
loadingLayers: 'Loading layers...',
loadingMaps: 'Loading maps...',
loadingInformation: 'Loading information...',
errorLoadingInformation: 'An error ocurred. Please try again later.'
}
}getMapa() => LeafletMap
Retorna la instancia interna del mapa
addPublicLayer(layerName: String, options?: Object)
Agrega una capa en base a su nombre
- layerName:
Stringindicando el nombre de la capa perteneciente a una de las capas disponibles. - options:
Objectconteniendo atributos opcionales de la capa- clustering:
booleansi la capa debe ser clusterizada - callAPIOnClick:
booleanen caso detrue, se hace un llamado a la API especificada al hacer click sobre el mapa - onClickAPI:
StringAPI a la que se debe llamar al hacer click sobre el mapa - layerId:
Stringidentificador de la capa - baseLayer: en caso de que se incluya este parametro, la capa sera agregada como una capa base.
- Posibles tipos
Object- uri:
Stringuri utilizado para descargar la capa - options:
Objectopciones de L.tileLayer
- uri:
L.tileLayer
- Posibles tipos
- clustering:
removePublicLayer(layerName: String)
Remueve una capa en base a su nombre
- layerName:
Stringnombre de la capa
addVectorTileLayer(layerId: String, options?: Object)
Agrega una capa de mosaicos vectoriales. Se usa para poder cargar datos vectoriales de gran volumen
- layerId:
StringNombre de la capa, se usa de identificador. options:
Objectconteniendo atributos opcionales de la capa.Posibles opciones
- url:
String(requerido) Dirección del origen de los datos con los parámetros de ZXY en forma de plantilla. - style:
ObjectEstilo para mostrar los datos en formato L.Path. Documentación - displayPopup:
ObjectEn caso de querer mostrar la información de la capa en un popup.
- url:
Opciones de displayPopup
| Opcion | Tipo | Default | Descripcion |
|---|---|---|---|
| content | String | | Contenido del popup, se acepta HTML y los atributos se usan con placeholders entre llaves. Ejemplo {atributo}. Referencia |
| onEvent | String | click | click o mouseover |
Ejemplo
map.addVectorTileLayer('parcelas',{
url: 'http://example.com/tileserver/parcelas/{z}/{x}/{y}.pbf',
displayPopup:{ content:'<b>Comuna: </b>{parcela} <br> <b>Barrio: </b>{barrios}', onEvent:'click'},
style:{
parcelas:function(properties, zoom, geometryDimension){
return {
weight: (zoom > 12)? 2 : 0.5,
fillColor: getColor(properties.comuna),
fillOpacity: 0.8,
stroke: true,
color:'#FF00FF',
dashArray: '2',
fill: true
}
}
}
});removeVectorTileLayer(layerId: String)
Remueve una capa de tiles vectoriales en base a su nombre
- layerId:
Stringnombre de la capa
setBaseLayer()
Agrega la capa base default del mapa
setBaseLayer(baselayer: L.tileLayer)
Cambia la capa base del mapa
Parámetros
- baseLayer:
L.tileLayerla nueva base a agregar
setBaseLayer(baselayer: Object)
Cambia la capa base del mapa
Parámetros
- baseLayer:
Objectla nueva base a agregar conteniendo:- uri:
Stringuri utilizado para descargar la capa - options:
Objectopciones de L.tileLayer
- uri:
addMarker(latlng: Object, visible: boolean, draggable: boolean, goTo: boolean, activate: boolean, clickable: boolean, options: Object) => markerId: Number
Agrega un marcador en la posicion especificada, retornando su id
Parámetros
- latlng:
Objectposicion del marcador- lat:
Numberlatitud - lng:
Numberlongitud
- lat:
- visible:
booleanindicando si el marcador debe estar visible - draggable:
booleanindicando si el marcador puede ser arrastrado - goTo:
booleanindicando si el mapa debe recentrarse en el marcador - activate:
booleanindicando si se debe activar el marcador - clickable:
booleanindicando si el marcador puede ser clickeado - options:
Objectdatos a guardar dentro del marcador
Return
Numberid del marcador generado
addPopup(latlng: Object, content: String|HtmlContent|Funtion, options: Object)
Agrega un popup en la posicion especificada
Parámetros
- latlng:
Objectposicion del popup- lat:
Numberlatitud - lng:
Numberlongitud
- lat:
- content:
StringContenido Html del popup - options:
ObjectOpciones heredadas de L.popup
selectMarker(markerId: Number)
Selecciona el marcador indicado
Parámetros
- markerId:
Numberid del marcador a seleccionar
isMarkerActive(markerId: Number) => boolean
Pregunta si el marcador esta activo
Parámetros
- markerId:
Numberid del marcador a analizar
removeMarker(markerId: String)
Remueve el marcador indicado
Parámetros
- markerId:
Numberid del marcador a remover
Return
- seleccionado:
booleanindicando si el marcador esta seleccionado
addLocationMarker(position: Object, recenter: boolean, zoomIn: boolean) => L.Marker
Agrega al mapa un marcador de ubicación actual en la posicion especificada
Parámetros
- position:
Objectposicion del marcador- coords:
Object- latitude:
Numberlatitud - longitude:
Numberlongitud
- latitude:
- coords:
- recenter:
booleanindicando si el mapa debe recentrarse en la posicion del marcador - zoomIn:
booleanindicando si se debe ajustar el nivel de zoom
Return
- marker:
L.markermarcador agregado
mostrarRecorrido(recorrido: Object)
Agrega un recorrido al mapa
Parámetros
- recorrido:
Objectrecorrido a ser agregado. El mismo debe seguir cierta estructura
ocultarRecorrido(recorrido: Object)
Remueve el recorrido del mapa
Parámetros
- recorrido:
Objectrecorrido a ser removido.
getStaticImage()
Retorna un elemento canvas con la imágen del mapa
Return
- canvas:
Promise<canvas>Promesa que resuelve con el canvas conteniendo la imágen.
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago


