Métodos
-
<async> addLayer( layer [, callback ] ) → {Promise.<SITNA.layer.Layer>}
-
Descripción
Añade una capa al mapa. Si se le pasa un objeto del Tipo
LayerOptions
como parámetrolayer
y tiene definida la propiedadurl
, establece por defecto el tipo de capa aSITNA.Consts.layerType.KML
si la URL acaba en .kml.El tipo de la capa no puede ser
SITNA.Consts.layerType.WFS
.Parámetros
Nombre Type Atributos Descripción layer
string | SITNA.layer.LayerOptions | SITNA.layer.Layer Identificador de capa, objeto de opciones de capa o instancia de la clase
SITNA.layer.Layer
.callback
function <optional> Función a la que se llama tras ser añadida la capa.
Retorna
Ejemplos
<div id="mapa"></div> <script> // Crear un mapa con las opciones por defecto. var map = new SITNA.Map("mapa"); // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Añadir al mapa la capa de cartografía topográfica de IDENA map.addLayer(SITNA.Consts.layer.IDENA_CARTO); }); </script>
<div id="mapa"></div> <script> // Crear un mapa con las opciones por defecto. var map = new SITNA.Map("mapa"); // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Añadir al mapa un documento KML map.addLayer({ id: "capa_kml", title: "Museos en Navarra", type: SITNA.Consts.layerType.KML, url: "data/MUSEOSNAVARRA.kml" }); }); </script>
-
<async> addMarker( coordinatesOrMarker [, options [, callback ] ] ) → {Promise.<SITNA.feature.Marker>}
-
Descripción
Añade un marcador (un punto asociado a un icono) al mapa.
Parámetros
Nombre Type Atributos Descripción coordinatesOrMarker
Array.<number> | SITNA.feature.Marker Coordenadas x e y del punto en las unidades del sistema de referencia del mapa, u objeto de marcador.
options
MarkerOptions | SITNA.Map~AddMarkerCallback <optional> Objeto de opciones de marcador o función a la que se llama tras añadir el marcador.
callback
SITNA.Map~AddMarkerCallback <optional> Función a la que se llama tras añadir el marcador.
Retorna
Ejemplos
<div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Añadir un marcador. map.addMarker([610749, 4741648]); // Centrar el mapa en el marcador. map.zoomToMarkers(); }); </script>
<div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Añadir marcadores al grupo "Marcadores colgantes" // cuyo icono se ancle al punto en el centro hacia abajo. // Establecer un icono adecuado. var markerOptions = { group: "Marcadores colgantes", url: "data/colgante.png", anchor: [0.5, 0] }; map.addMarker([610887, 4741244], markerOptions); map.addMarker([615364, 4657556], markerOptions); // Centrar el mapa en los marcadores. map.zoomToMarkers(); }); </script>
<div id="mapa"></div> <script> // Crear un mapa con una capa vectorial, centrado en la Ciudadela de Pamplona. var map = new SITNA.Map("mapa", { initialExtent: [ 609627, 4740225, 611191, 4741395 ], workLayers: [{ id: "markers", title: "Marcadores geográficos", type: SITNA.Consts.layerType.VECTOR }] }); // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Añadir un marcador en la capa "markers", // asignarle un grupo para que salga en tabla de contenidos y leyenda. map.addMarker([610431, 4740837], { layer: "markers", group: "Ciudadela" }); }); </script>
<div id="mapa"></div> <script> // Añadir información emergente al mapa. SITNA.Cfg.controls.popup = true; // Crear un mapa. var map = new SITNA.Map("mapa"); // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Añadir un marcador con un icono de 40x40 píxeles definido por la clase CSS kiosko. // Asignarle unos datos asociados que se muestren por defecto. map.addMarker([615366, 4657426], { cssClass: "kiosko", width: 40, height: 40, data: { "Nombre": "Plaza de la Constitución, Tudela", "Sitio web": "http://www.tudela.es/" }, showPopup: true }); // Centrar el mapa en el marcador. map.zoomToMarkers(); }); </script>
-
exportImage() → {string}
-
Descripción
Exporta el mapa a una imagen PNG. Para poder utilizar este método hay que establecer la opción
crossOrigin
al instanciarSITNA.Map
.Retorna
Ejemplos
<div id="controls" class="controls"> <button id="imageBtn">Exportar imagen</button> </div> <div id="mapa"></div> <script> // Crear un mapa con la opción de imágenes CORS habilitada. var map = new SITNA.Map("mapa", { crossOrigin: "anonymous" }); var exportImage = function () { var dataUrl = map.exportImage(); var image = document.createElement("img"); image.setAttribute("src", dataUrl); image.style.width = '25vw'; var div = document.createElement("div"); div.appendChild(image); document.getElementById("controls").appendChild(div); }; document.getElementById("imageBtn").addEventListener("click", exportImage); </script>
Detalles
-
<async> getCommonwealths( callback ) → {Promise.<Array.<SITNA.SearchResultItem>>}
-
Descripción
Obtiene los valores (
SITNA.SearchResultItem
) de las mancomunidades de residuos disponibles en la capa de IDENA.Parámetros
Nombre Type Descripción callback
SITNA.Map~SearchDataCallback Función a la que se llama tras obtener los datos.
Retorna
Ejemplos
<div class="instructions divSelect"> <div> Mancomunidades de residuos <select id="commonwealths" onchange="applyFilter()"> <option value="-1">Seleccione...</option> </select> </div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { // completamos el desplegable map.getCommonwealths(function (data) { var fragment = document.createDocumentFragment(); data.forEach(function (value) { var option = document.createElement("option"); option.setAttribute("value", value.id); option.textContent = value.label; fragment.appendChild(option); }); document.querySelector("#commonwealths").appendChild(fragment); }); }); // Establecer como filtro del mapa el valor seleccionado del desplegable que lance el evento change function applyFilter() { var id = document.querySelector("#commonwealths").querySelector("option:checked").value; if (id == -1) map.removeSearch(); else { map.searchCommonwealth(id, function (idQuery) { if (idQuery == null) { alert("No se han encontrado resultados"); } }); } }; </script>
-
<async> getCouncils( callback ) → {Promise.<Array.<SITNA.SearchResultItem>>}
-
Descripción
Obtiene los valores (
SITNA.SearchResultItem
) de los concejos disponibles en la capa de IDENA.Parámetros
Nombre Type Descripción callback
SITNA.Map~SearchDataCallback Función a la que se llama tras obtener los datos.
Retorna
Ejemplos
<div class="instructions divSelect"> <div> Concejos <select id="council" onchange="applyFilter()"> <option value="-1">Seleccione...</option> </select> </div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { // completamos el desplegable map.getCouncils(function (data) { var fragment = document.createDocumentFragment(); data.forEach(function (value) { var option = document.createElement("option"); option.setAttribute("value", value.id); option.textContent = value.label; fragment.appendChild(option); }); document.querySelector("#council").appendChild(fragment); }); }); // Establecer como filtro del mapa el valor seleccionado del desplegable que lance el evento change function applyFilter() { var id = document.querySelector("#council").querySelector("option:checked").value; if (id == -1) map.removeSearch(); else { map.searchCouncil(id, function (idQuery) { if (idQuery == null) { alert("No se han encontrado resultados"); } }); } }; </script>
-
getCrs() → {string}
-
Descripción
Devuelve el código EPSG del sistema de referencia de coordenadas del mapa.
Retorna
Ejemplos
<div class="instructions div-select"> <p>CRS actual: <span id="crs-display"></span></p> <p> <select id="crs-selector" onchange="applyCrs()"> <option value="">Seleccione CRS...</option> <option value="EPSG:3857">EPSG:3857</option> <option value="EPSG:4326">EPSG:4326</option> <option value="EPSG:25829">EPSG:25829</option> <option value="EPSG:25830">EPSG:25830</option> <option value="EPSG:25831">EPSG:25831</option> </select> </p> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { displayCrs(); }); // Obtiene el CRS del mapa, lo muestra y restablece el selector function displayCrs() { document.getElementById("crs-display").innerHTML = map.getCrs(); document.getElementById("crs-selector").value = ""; }; // Establece CRS del mapa function applyCrs() { const crs = document.getElementById("crs-selector").value; map.setCrs(crs, displayCrs); }; </script>
-
getExtent() → {Array.<number>}
-
Descripción
Devuelve la extensión actual del mapa.
Retorna
Ejemplos
<div class="instructions div-select"> <p class="y-axis"><label>Y max</label> <input type="number" id="ymax" /></p> <p class="x-axis"> <label>X min</label> <input type="number" id="xmin" /> <button onclick="applyExtent()">Aplicar</button> <label>X max</label> <input type="number" id="xmax" /> </p> <p class="y-axis"><label>Y min</label> <input type="number" id="ymin" /></p> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { const extent = map.getExtent(); displayExtent(extent); }); // Actualiza los valores de la extensión del mapa function displayExtent(extent) { document.getElementById("xmin").value = extent[0]; document.getElementById("ymin").value = extent[1]; document.getElementById("xmax").value = extent[2]; document.getElementById("ymax").value = extent[3]; }; // Establece la extensión del mapa y actualiza los valores function applyExtent() { const xmin = parseFloat(document.getElementById("xmin").value); const ymin = parseFloat(document.getElementById("ymin").value); const xmax = parseFloat(document.getElementById("xmax").value); const ymax = parseFloat(document.getElementById("ymax").value); map.setExtent([xmin, ymin, xmax, ymax], { animate: false }, displayExtent); }; </script>
-
getLayer( layer ) → {SITNA.layer.Layer|null}
-
Descripción
Obtiene una capa del mapa.
Parámetros
Nombre Type Descripción layer
string | SITNA.layer.Layer Identificador de capa u objeto de capa.
Retorna
-
getMaxExtent() → {Array.<number>|null}
-
Descripción
Devuelve la extensión máxima del mapa.
Retorna
Ejemplos
const maxExtent = map.getMapExtent(); if (maxExtent === null) { alert("El mapa no tiene extensión máxima definida"); } else { alert(`El mapa se extiende de ${maxExtent[0]} a ${maxExtent[2]} en el eje x, de ${maxExtent[1]} a ${maxExtent[3]} en el eje y`); }
-
<async> getMunicipalities( callback ) → {Promise.<Array.<SITNA.SearchResultItem>>}
-
Descripción
Obtiene los valores (
SITNA.SearchResultItem
) de los municipios disponibles en la capa de IDENA.Parámetros
Nombre Type Descripción callback
SITNA.Map~SearchDataCallback Función a la que se llama tras obtener los datos.
Retorna
Ejemplos
<div class="instructions divSelect"> <div> Municipios <select id="municipality" onchange="applyFilter()"> <option value="-1">Seleccione...</option> </select> </div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { // completamos el desplegable map.getMunicipalities(function (data) { var fragment = document.createDocumentFragment(); data.forEach(function (value) { var option = document.createElement("option"); option.setAttribute("value", value.id); option.textContent = value.label; fragment.appendChild(option); }); document.querySelector("#municipality").appendChild(fragment); }); }); // Establecer como filtro del mapa el valor seleccionado del desplegable que lance el evento change function applyFilter() { var id = document.querySelector("#council").querySelector("option:checked").value; if (id == -1) map.removeSearch(); else { map.searchMunicipality(id, function (idQuery) { if (idQuery == null) { alert("No se han encontrado resultados"); } }); } }; </script>
-
<async> getUrbanAreas( callback ) → {Promise.<Array.<SITNA.SearchResultItem>>}
-
Descripción
Obtiene los valores (
SITNA.SearchResultItem
) de los cascos urbanos disponibles en la capa de IDENA.Parámetros
Nombre Type Descripción callback
SITNA.Map~SearchDataCallback Función a la que se llama tras obtener los datos.
Retorna
Ejemplos
<div class="instructions divSelect"> <div> Cascos urbanos <select id="urban" onchange="applyFilter()"> <option value="-1">Seleccione...</option> </select> </div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { // completamos el desplegable map.getUrbanAreas(function (data) { var fragment = document.createDocumentFragment(); data.forEach(function (value) { var option = document.createElement("option"); option.setAttribute("value", value.id); option.textContent = value.label; fragment.appendChild(option); }); document.querySelector("#urban").appendChild(fragment); }); }); // Establecer como filtro del mapa el valor seleccionado del desplegable que lance el evento change function applyFilter() { var id = document.querySelector("#urban").querySelector("option:checked").value; if (id == -1) map.removeSearch(); else { map.searchUrbanArea(id, function (idQuery) { if (idQuery == null) { alert('No se han encontrado resultados'); } }); } }; </script>
-
<async> loaded( callback ) → {Promise}
-
Descripción
Añade una función de callback que se ejecutará cuando el mapa, sus controles y todas sus capas se hayan cargado.
Parámetros
Nombre Type Descripción callback
function Función a la que se llama tras la carga del mapa.
Retorna
Ejemplos
// Notificar cuando se haya cargado el mapa (mediante callback) map.loaded(() => { console.log("Código del mapa y de sus controles cargado, datos cargados."); });
// Notificar cuando se haya cargado el mapa (mediante promesa) map.loaded().then(() => { console.log("Código del mapa y de sus controles cargado, datos cargados."); });
-
removeFeatures( features )
-
Descripción
Elimina una colección de entidades geográficas del mapa.
Parámetros
Nombre Type Descripción features
Array.<SITNA.feature.Feature> Lista de entidades geográficas a eliminar.
Ejemplos
<div class="instructions div-select"> <button id="add-btn">Añadir marcador</button> <button id="rem-btn">Eliminar marcadores</button> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); var getRandomPointInExtent = function (extent) { const dx = extent[2] - extent[0]; const dy = extent[3] - extent[1]; const x = extent[0] + Math.random() * dx; const y = extent[1] + Math.random() * dy; return [x, y]; }; // Cuando esté todo cargado proceder a trabajar con el mapa. map.loaded(function () { // Colección de marcadores añadidos const markers = []; // Añadir un marcador en un punto al azar document.getElementById("add-btn").addEventListener("click", function (e) { map.addMarker(getRandomPointInExtent(map.getExtent())).then(m => markers.push(m)); }); // Eliminar todos los marcadores añadidos document.getElementById("rem-btn").addEventListener("click", function (e) { map.removeFeatures(markers); markers.length = 0; }); }); </script>
-
removeSearch( [ callback ] )
-
Descripción
Elimina del mapa la entidad geográfica encontrada en la última búsqueda.
Parámetros
Nombre Type Atributos Descripción callback
function <optional> Función a la que se llama tras eliminar la entidad geográfica.
Ejemplos
<div class="instructions query"> <div><label>Capa</label><input type="text" id="capa" placeholder="Nombre capa de IDENA" /> </div> <div><label>Campo</label><input type="text" id="campo" placeholder="Nombre campo" /> </div> <div><label>Valor</label><input type="text" id="valor" placeholder="Valor a encontrar" /> </div> <div><button id="searchBtn">Buscar</button></div> <div><button id="removeBtn">Eliminar filtro</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { document.getElementById("addFilterBtn").addEventListener("click", addFilter); document.getElementById("removeFilterBtn").addEventListener("click", removeFilter); }); // Establecer como filtro del mapa el municipio Valle de Egüés var addFilter = function () { var capa = document.getElementById("capa").value; capa = capa.trim(); var campo = document.getElementById("campo").value; campo = campo.trim(); var valor = document.getElementById("valor").value; valor = valor.trim(); map.searchFeature(capa, campo, valor, function (idQuery) { if (idQuery == null) { alert("No se han encontrado resultados en la capa: " + capa + " en el campo: " + campo + " el valor: " + valor + "."); } }); }; // Limpiar el mapa del filtro var remove = function () { map.removeSearch(); }; </script>
-
<async> searchCommonwealth( id [, callback ] ) → {Promise.<string>}
-
Descripción
Busca la mancomunidad de residuos y pinta en el mapa la entidad geográfica encontrada que corresponda al identificador indicado.
Parámetros
Nombre Type Atributos Descripción id
string Identificador de la entidad geográfica a pintar.
callback
SITNA.Map~SearchByIdCallback <optional> Función a la que se llama tras aplicar el filtro.
Retorna
Ejemplos
<div class="instructions searchCommonwealth"> <div><button id="searchPamplonaBtn">Buscar Mancomunidad de la Comarca de Pamplona</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { document.getElementById("searchPamplonaBtn").addEventListener("click", search); }); var search = function () { map.removeSearch(); map.searchCommonwealth("8", function (idQuery) { if (idQuery == null) { alert("No se ha encontrado la mancomunidad con código 8."); } }); }; </script>
-
<async> searchCouncil( id [, callback ] ) → {Promise.<string>}
-
Descripción
Busca el concejo que corresponda con el identificador pasado como parámetro y pinta la entidad geográfica encontrada en el mapa.
Parámetros
Nombre Type Atributos Descripción id
string Identificador de la entidad geográfica a pintar.
callback
SITNA.Map~SearchByIdCallback <optional> Función a la que se llama tras aplicar el filtro.
Retorna
Ejemplos
<div class="instructions search"> <div><button id="searchBtn">Buscar concejo Esquíroz (Galar)</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { document.getElementById("searchBtn").addEventListener("click", search); }); var search = function () { map.removeSearch(); map.searchCouncil("109#5", function (idQuery) { if (idQuery == null) { alert("No se ha encontrado el concejo con código 109#5."); } }); }; </script>
-
<async> searchFeature( layer, field, id [, callback ] ) → {Promise.<string>}
-
Descripción
Busca y pinta en el mapa la entidad geográfica encontrada correspondiente al identificador establecido.
Parámetros
Nombre Type Atributos Descripción layer
string Nombre de la capa de IDENA en la cual buscar.
field
string Campo de la capa de IDENA en el cual buscar.
id
string Identificador de la entidad geográfica por el cual filtrar.
callback
SITNA.Map~SearchByIdCallback <optional> Función a la que se llama tras aplicar el filtro.
Retorna
Ejemplos
<div class="instructions query"> <div><label>Capa</label><input type="text" id="capa" placeholder="Nombre capa de IDENA" /> </div> <div><label>Campo</label><input type="text" id="campo" placeholder="Nombre campo" /> </div> <div><label>Valor</label><input type="text" id="valor" placeholder="Valor a encontrar" /> </div> <div><button id="searchBtn">Buscar</button></div> <div><button id="removeBtn">Eliminar filtro</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { document.getElementById("searchBtn").addEventListener("click", search); document.getElementById("removeBtn").addEventListener("click", remove); }); var search = function () { var capa = document.getElementById("capa").value; capa = capa.trim(); var campo = document.getElementById("campo").value; campo = campo.trim(); var valor = document.getElementById("valor").value; valor = valor.trim(); map.searchFeature(capa, campo, valor, function (idQuery) { if (idQuery == null) { alert("No se han encontrado resultados en la capa: " + capa + " en el campo: " + campo + " el valor: " + valor + "."); } }); }; // Limpiar el mapa var remove = function () { map.removeSearch(); }; </script>
-
<async> searchMunicipality( id [, callback ] ) → {Promise.<string>}
-
Descripción
Busca el municipio que corresponda con el identificador pasado como parámetro y pinta la entidad geográfica encontrada en el mapa.
Parámetros
Nombre Type Atributos Descripción id
string Identificador de la entidad geográfica a pintar.
callback
SITNA.Map~SearchByIdCallback <optional> Función a la que se llama tras aplicar el filtro.
Retorna
Ejemplos
<div class="instructions search"> <div><button id="searchBtn">Buscar Arbizu</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { document.getElementById("searchBtn").addEventListener("click", search); }); var search = function () { map.removeSearch(); map.searchMunicipality("27", function (idQuery) { if (idQuery == null) { alert("No se ha encontrado el municipio con código 27."); } }); }; </script>
-
<async> searchUrbanArea( id [, callback ] ) → {Promise.<string>}
-
Descripción
Busca el casco urbano que corresponda con el identificador pasado como parámetro y pinta la entidad geográfica encontrada en el mapa.
Parámetros
Nombre Type Atributos Descripción id
string Identificador de la entidad geográfica a pintar.
callback
SITNA.Map~SearchByIdCallback <optional> Función a la que se llama tras aplicar el filtro.
Retorna
Ejemplos
<div class="instructions search"> <div><button id="searchBtn">Buscar casco urbano de Arbizu</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { document.getElementById("searchBtn").addEventListener("click", search); }); var search = function () { map.removeSearch(); map.searchUrbanArea("27", function (idQuery) { if (idQuery == null) { alert("No se ha encontrado el casco urbano con código 27."); } }); }; </script>
-
setBaseLayer( layer [, callback ] )
-
Descripción
Hace visible una capa como mapa de fondo. Esta capa debe existir previamente en la lista de mapas de fondo del mapa.
Parámetros
Nombre Type Atributos Descripción layer
string | LayerOptions Identificador de capa u objeto de opciones de capa.
callback
function <optional> Función al que se llama tras ser establecida la capa como mapa de fondo.
Ejemplos
<div id="mapa"></div> <script> // Crear mapa con opciones por defecto. Esto incluye la capa del catastro de Navarra entre los mapas de fondo. var map = new SITNA.Map("mapa"); // Cuando esté todo cargado establecer como mapa de fondo visible el catastro de Navarra. map.loaded(function () { map.setBaseLayer(SITNA.Consts.layer.IDENA_CADASTER); }); </script>
<div id="mapa"></div> <script> // Crear mapa con opciones por defecto. var map = new SITNA.Map("mapa"); // Cuando el mapa esté cargado, añadir la ortofoto de 1956/1957 como mapa de fondo y establecerla como mapa de fondo visible. map.loaded(function () { map.addLayer({ id: "orto_56_57", title: "Ortofoto de 1956/1957", url: "http://idena.navarra.es/ogc/wms", layerNames: "ortofoto_10000_1957", isBase: true }, function () { map.setBaseLayer("orto_56_57"); }); }); </script>
-
<async> setCrs( crs [, callback ] ) → {Promise.<string>}
-
Descripción
Establece un sistema de referencia de coordenadas al mapa especificando su código EPSG.
Parámetros
Nombre Type Atributos Descripción crs
string Código EPSG del sistema de referencia de coordenadas.
callback
SITNA.Map~SetCrsCallback <optional> Función a la que se llama tras la resolución del cambio de CRS.
Retorna
Ejemplos
<div class="instructions div-select"> <p>CRS actual: <span id="crs-display"></span></p> <p> <select id="crs-selector" onchange="applyCrs()"> <option value="">Seleccione CRS...</option> <option value="EPSG:3857">EPSG:3857</option> <option value="EPSG:4326">EPSG:4326</option> <option value="EPSG:25829">EPSG:25829</option> <option value="EPSG:25830">EPSG:25830</option> <option value="EPSG:25831">EPSG:25831</option> </select> </p> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { displayCrs(); }); // Obtiene el CRS del mapa, lo muestra y restablece el selector function displayCrs() { document.getElementById("crs-display").innerHTML = map.getCrs(); document.getElementById("crs-selector").value = ""; }; // Establece CRS del mapa function applyCrs() { const crs = document.getElementById("crs-selector").value; map.setCrs(crs, displayCrs); }; </script>
-
<async> setExtent( extent [, options [, callback ] ] ) → {Promise.<Array.<number>>}
-
Descripción
Establece una extensión al mapa. Hay que tener en cuenta que puede haber factores que impidan que el ajuste sea exacto, como los niveles de zoom discretos de la capa base o que la relación de aspecto del visor no coincida con la de la extensión especificada. En cualquier caso, se garantiza que todos los puntos dentro de la extensión especificada se mostrarán en la nueva extensión.
Parámetros
Nombre Type Atributos Descripción extent
Array.<number> Array de valores de coordenadas [xmin, ymin, xmax, ymax] especificadas en el CRS del mapa.
options
object <optional> Opciones del método.
Nombre Type Atributos Valor por defecto Descripción animate
boolean <optional> true Si tiene un valor verdadero, la nueva extensión no se establecerá instantáneamente, sino que se alcanzará dicha extensión tras una animación de desplazamiento y zoom.
callback
SITNA.Map~SetExtentCallback <optional> Función a la que se llama tras el establecimiento de la nueva extensión. Se le pasa como parámetro la extensión real que ha alcanzado el mapa.
Retorna
Ejemplos
<div class="instructions div-select"> <p class="y-axis"><label>Y max</label> <input type="number" id="ymax" /></p> <p class="x-axis"> <label>X min</label> <input type="number" id="xmin" /> <button onclick="applyExtent()">Aplicar</button> <label>X max</label> <input type="number" id="xmax" /> </p> <p class="y-axis"><label>Y min</label> <input type="number" id="ymin" /></p> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); map.loaded(function () { const extent = map.getExtent(); displayExtent(extent); }); // Actualiza los valores de la extensión del mapa function displayExtent(extent) { document.getElementById("xmin").value = extent[0]; document.getElementById("ymin").value = extent[1]; document.getElementById("xmax").value = extent[2]; document.getElementById("ymax").value = extent[3]; }; // Establece la extensión del mapa y actualiza los valores function applyExtent() { const xmin = parseFloat(document.getElementById("xmin").value); const ymin = parseFloat(document.getElementById("ymin").value); const xmax = parseFloat(document.getElementById("xmax").value); const ymax = parseFloat(document.getElementById("ymax").value); map.setExtent([xmin, ymin, xmax, ymax], { animate: false }, displayExtent); }; </script>
-
zoomToMarkers( [ options ] )
-
Descripción
Centra y escala el mapa a la extensión que ocupan todos sus marcadores.
Parámetros
Nombre Type Atributos Descripción options
object <optional> Objeto de opciones de zoom.
Nombre Type Atributos Valor por defecto Descripción pointBoundsRadius
number <optional> 30 Radio en metros del área alrededor del marcador que se respetará al hacer zoom. Por defecto es 30.
extentMargin
number <optional> 0.2 Tamaño del margen que se aplicará a la extensión total de todas los marcadores. El valor es la relación de crecimiento en ancho y alto entre la extensión resultante y la original. Por ejemplo, el valor por defecto 0,2 indica un crecimiento del 20% de la extensión, 10% por cada lado.
Ejemplos
<div class="controls"> <div><button id="addMarkerBtn">Añadir marcador aleatorio</button></div> <div><input type="number" step="1" id="pbrVal" value="30" /> <label for="pbrVal">pointBoundsRadius</label></div> <div><input type="number" step="0.1" id="emVal" value="0.2" /> <label for="emVal">extentMargin</label></div> <div><button id="zoomBtn">Hacer zoom a los marcadores</button></div> </div> <div id="mapa"></div> <script> // Crear mapa. var map = new SITNA.Map("mapa"); // Añadir un marcador en un punto aleatorio var addRandomMarker = function () { var xmin = SITNA.Cfg.initialExtent[0]; var ymin = SITNA.Cfg.initialExtent[1]; var width = SITNA.Cfg.initialExtent[2] - SITNA.Cfg.initialExtent[0]; var height = SITNA.Cfg.initialExtent[3] - SITNA.Cfg.initialExtent[1]; map.addMarker([xmin + Math.random() width, ymin + Math.random() height]); }; // Hacer zoom a los marcadores con las opciones elegidas var zoomToMarkers = function () { map.zoomToMarkers({ pointBoundsRadius: parseInt(document.getElementById("pbrVal").value), extentMargin: parseFloat(document.getElementById("emVal").value) }); }; document.getElementById("addMarkerBtn").addEventListener("click", addRandomMarker); document.getElementById("zoomBtn").addEventListener("click", zoomToMarkers); </script>
Definiciones de tipos
-
AddMarkerCallback( marker )
-
Descripción
Función de callback que se lanza tras llamar al método
SITNA.Map#addMarker
.Parámetros
Nombre Type Descripción marker
SITNA.feature.Marker Marcador añadido.
Detalles
-
ClickCallback( coords )
-
Descripción
Función de callback que gestiona los clic del usuario en la ventana de visualización del mapa.
Parámetros
Nombre Type Descripción coords
Array.<number> Coordenadas del punto donde se ha realizado clic, en las unidades del sistema de referencia de coordenadas del mapa (Ver propiedad
crs
deSITNA.MapOptions
). Array de dos números correspondientes a las coordenadas x e y.Ejemplos
<div id="mapa"/> <script> // Creamos un mapa con el control de gestión de clics, con una función de callback personalizada var map = new SITNA.Map("mapa", { controls: { click: { active: true, callback: function (coord) { alert("Has pulsado en la posición " + coord[0] + ", " + coord[1]); } } } }); </script>
-
SearchByIdCallback( queryId )
-
Descripción
Función de callback que gestiona las respuestas a búsquedas por identfificador (
SITNA.Map#searchMunicipality
, etc.).Parámetros
Nombre Type Atributos Descripción queryId
string <nullable> Identificador de consulta realizada. Su valor es
null
si no hay resultado. -
SearchDataCallback( data )
-
Descripción
Función de callback que gestiona las respuestas a peticiones de datos de búsqueda (
SITNA.Map#getMunicipalities
, etc.).Parámetros
Nombre Type Descripción data
Array.<SITNA.SearchResultItem> Lista de elementos de búsqueda. Cada elemento tiene un identificador y un texto descriptivo.
Detalles
-
SetCrsCallback( newCrs )
-
Descripción
Función de callback que se ejecuta tras completarse la ejecución del método
SITNA.Map#setCrs
.Parámetros
Nombre Type Descripción newCrs
string Código EPSG del nuevo CRS del mapa.
Detalles
-
SetExtentCallback( newExtent )
-
Descripción
Función de callback que se ejecuta tras completarse la ejecución del método
SITNA.Map#setExtent
.Parámetros
Nombre Type Descripción newExtent
Array.<number> Nueva extensión del mapa. Hay que tener en cuenta que no tiene por qué ser la misma que la que se pasó al método
SITNA.Map#setExtent
, bien por limitaciones en los niveles de zoom del mapa, bien por tener este una relación de aspecto distinta a la extensión especificada.Detalles