new Feature( coordinates [, options ] )

Descripción

Entidad geográfica genérica (sin especificar geometría) del mapa. Normalmente no se instancia directamente esta clase, sino objetos de clases que heredan de esta.

Parámetros
Nombre Type Atributos Descripción
coordinates Array

Coordenadas de la geometría expresadas en las unidades del CRS del mapa.

options SITNA.feature.FeatureOptions <optional>

Objeto de opciones de la entidad geográfica.

Ejemplos

			<div id="mapa"></div>
			<script>
			    SITNA.Cfg.workLayers = [
			        {
			            id: "entidades",
			            title: "Demostración de setCoordinates",
			            type: SITNA.Consts.layerType.VECTOR
			        }
			    ];
			    var map = new SITNA.Map("mapa");
			    map.loaded(async () => {
			        // Obtenemos la instancia de la capa vectorial
			        const vectorLayer = map.getLayer("entidades");
			        let step = 0;
			        const stepAngle = Math.PI / 200;
			        const stepLength = 1;
			
			        const iconUrlBase = '//sitna.navarra.es/api/TC/css/img/pegman';
			        const iconUrls = [
			            iconUrlBase + '0.png',
			            iconUrlBase + '23.png',
			            iconUrlBase + '45.png',
			            iconUrlBase + '68.png',
			            iconUrlBase + '90.png',
			            iconUrlBase + '113.png',
			            iconUrlBase + '135.png',
			            iconUrlBase + '158.png',
			            iconUrlBase + '180.png',
			            iconUrlBase + '203.png',
			            iconUrlBase + '225.png',
			            iconUrlBase + '248.png',
			            iconUrlBase + '270.png',
			            iconUrlBase + '293.png',
			            iconUrlBase + '315.png',
			            iconUrlBase + '338.png'
			        ];
			        const updateMarker = function (marker) {
			            const coords = marker.getCoordinates();
			            const style = marker.getStyle();
			
			            const dx = stepLength * Math.cos(step * stepAngle);
			            const dy = stepLength * Math.sin(step * stepAngle / 2);
			
			            let direction = Math.atan(dx / dy);
			            if (dy < 0) {
			                direction = (direction + Math.PI) % (2 * Math.PI);
			            }
			
			            const iconIndex = Math.round(iconUrls.length * direction / Math.PI / 2);
			
			            // Asignamos nuevas coordenadas y nuevo icono
			            style.url = iconUrls[iconIndex];
			            marker
			                .setCoordinates([coords[0] + dx, coords[1] + dy])
			                .setStyle(style);
			
			            step++;
			        };
			
			        vectorLayer.addMarker([610431, 4740837], {
			            url: iconUrls[0]
			        }).then(marker => {
			            // Nos centramos en el marcador recién creado
			            map.zoomToFeatures([marker]);
			            setInterval(() => {
			                updateMarker(marker);
			            }, 50);
			        });
			    });
			</script>

Métodos


getCoordinates() → {Array}

Descripción

Obtiene las coordenadas de la entidad geográfica en el CRS actual del mapa.

Retorna

Coordenadas en el CRS actual del mapa de la geometría de la entidad geográfica.


getData() → {Object}

Descripción

Obtiene los atributos de la entidad geográfica.

Retorna

Diccionario de pares clave/valor con los atributos de la entidad geográfica.


getId() → {string}

Descripción

Obtiene el identificador de la entidad geográfica dentro de su capa.

Retorna

Identificador de la entidad geográfica.


setCoordinates( coordinates ) → {SITNA.feature.Feature}

Descripción

Establece las coordenadas de la entidad geográfica.

Parámetros
Nombre Type Descripción
coordinates Array

Coordenadas de la entidad geográfica en el CRS actual del mapa.

Retorna

La propia entidad geográfica.


setData( data ) → {SITNA.feature.Feature}

Descripción

Establece los atributos de la entidad geográfica.

Parámetros
Nombre Type Descripción
data Object

Diccionario de pares clave/valor con los atributos a establecer.

Retorna

La propia entidad geográfica.