new Polygon( coordinates [, options ] )

Descripción

Entidad geográfica con geometría poligonal.

Parámetros
Nombre Type Atributos Descripción
coordinates Array.<Array.<Array.<number>>>

Coordenadas del polígono en las unidades del CRS del mapa. Estas son un array de anillos, siendo el primer anillo las coordenadas del contorno del polígono y los anillos subsiguientes las coordenadas del los agujeros en el polígono si estos existen. Cada anillo es un array de las coordenadas de cada uno de los vértices del contorno que definen.

options SITNA.feature.PolygonOptions <optional>

Objeto de opciones de la entidad geográfica.

Ejemplos

			<div id="mapa"></div>
			<script>
			    SITNA.Cfg.workLayers = [
			        {
			            id: "entidades",
			            title: "Demostración de polígonos",
			            type: SITNA.Consts.layerType.VECTOR
			        }
			    ];
			    var map = new SITNA.Map("mapa");
			    map.loaded(() => {
			        // Obtenemos la instancia de la capa vectorial
			        const vectorLayer = map.getLayer("entidades");
			
			        // Añadimos una instancia de la clase SITNA.feature.Polygon
			        const building1 = new SITNA.feature.Polygon([
			            // Contorno del polígono
			            [
			                [615041.1, 4657829.3],
			                [615028.4, 4657821.6],
			                [615009.1, 4657809.9],
			                [615003.5, 4657806.5],
			                [614990.1, 4657798.3],
			                [614955.8, 4657854.6],
			                [614953.4, 4657858.4],
			                [614948.9, 4657865.5],
			                [614949.3, 4657865.7],
			                [614951.4, 4657867.0],
			                [614977.0, 4657882.8],
			                [614980.3, 4657884.9],
			                [614986.0, 4657888.4],
			                [614988.5, 4657889.9],
			                [614986.0, 4657893.9],
			                [614989.1, 4657895.8],
			                [614997.0, 4657900.7],
			                [614997.6, 4657901.0],
			                [615041.2, 4657829.3]
			            ],
			            // Agujero 1
			            [
			                [614994.8, 4657877.9],
			                [614967.4, 4657860.9],
			                [614979.3, 4657841.7],
			                [615006.8, 4657858.5],
			                [614994.8, 4657877.9]
			            ],
			            // Agujero 2
			            [
			                [615013.5, 4657847.5],
			                [614985.8, 4657830.8],
			                [614998.1, 4657810.8],
			                [615025.6, 4657827.3],
			                [615013.5, 4657847.5]
			            ]
			        ], {
			            strokeColor: '#522852', // violeta
			            strokeWidth: 4,
			            fillColor: '#ffffff', // blanco
			            fillOpacity: 0.7,
			            data: {
			                'Número de agujeros': 2
			            }
			        });
			        vectorLayer.addPolygon(building1);
			
			        // Añadimos una entidad geográfica introduciendo directamente las coordenadas de su geometría
			        vectorLayer.addPolygon([
			            // Contorno del polígono
			            [
			                [615060.1, 4657862.8],
			                [615071.1, 4657855.0],
			                [615075.3, 4657851.8],
			                [615075.7, 4657851.3],
			                [615069.7, 4657843.2],
			                [615058.6, 4657851.3],
			                [615058.9, 4657853.4],
			                [615059.1, 4657855.2],
			                [615060.1, 4657862.8]
			            ]
			        ], {
			            strokeColor: '#b97f24', // dorado
			            strokeWidth: 4,
			            fillColor: '#000000', // negro
			            fillOpacity: 0.3,
			        })
			            .then(building2 => {
			                // Añadimos atributos a la nueva entidad.
			                // Estos datos se pueden consultar al pulsar sobre ella.
			                building2.setData({
			                    'Número de agujeros': 0
			                });
			            });
			
			        // Añadimos dos entidades geográficas de una vez
			        const building3 = new SITNA.feature.Polygon([
			            [
			                [614929.9, 4657780.2],
			                [614926.3, 4657793.7],
			                [614962.6, 4657803.0],
			                [614966.2, 4657789.6],
			                [614929.9, 4657780.2]
			            ]
			        ], {
			            strokeColor: '#285228', // verde
			            strokeWidth: 2
			        });
			        const building4 = new SITNA.feature.Polygon([
			            [
			                [614972.9, 4657788.7],
			                [614981.2, 4657793.6],
			                [614995.0, 4657769.7],
			                [614986.3, 4657764.8],
			                [614979.8, 4657776.4],
			                [614973.0, 4657788.6],
			                [614972.9, 4657788.7]
			            ]
			        ], {
			            strokeColor: '#285228', // verde
			            strokeWidth: 2
			        });
			        vectorLayer.addPolygons([
			            building3,
			            building4
			        ])
			            .then(buildingArray => {
			                // Añadimos atributos a las nuevas entidades.
			                // Estos datos se pueden consultar al pulsar sobre ellas.
			                buildingArray.forEach(building => {
			                    building.setData({
			                        'Número de agujeros': 0,
			                        'Perímetro': Math.round(building.getLength()) + ' m',
			                        'Área': Math.round(building.getArea()) + ' m²',
			                    });
			                });
			                // Nos centramos en las entidades geográficas que hemos añadido
			                map.zoomToFeatures(vectorLayer.features);
			            });
			    });
			</script>

Métodos


getArea( [ options ] ) → {number}

Descripción

Obtiene el área del polígono en metros cuadrados.

Parámetros
Nombre Type Atributos Descripción
options SITNA.feature.MeasurementOptions <optional>

Parámetros referentes al CRS que hay que considerar para la medida.

Retorna

Área del polígono en metros cuadrados.


getCoordinates() → {Array.<Array.<Array.<number>>>}

Descripción

Obtiene las coordenadas de los vértices de los contornos del polígono en el CRS actual del mapa.

Retorna

Coordenadas de los vértices de los contornos del polígono en el CRS actual del mapa.


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.

Detalles

getId() → {string}

Descripción

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

Retorna

Identificador de la entidad geográfica.

Detalles

getLength( [ options ] ) → {number}

Descripción

Obtiene la longitud total del borde (perímetro y agujeros) del polígono en metros.

Parámetros
Nombre Type Atributos Descripción
options SITNA.feature.MeasurementOptions <optional>

Parámetros referentes al CRS que hay que considerar para la medida.

Retorna

Longitud total del polígono en metros.


getStyle() → {SITNA.feature.PolygonStyleOptions}

Descripción

Obtiene el estilo de la entidad.


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

Descripción

Establece las coordenadas de los vértices de los contornos del polígono en el CRS actual del mapa.

Parámetros
Nombre Type Descripción
coordinates Array.<Array.<Array.<number>>>

Coordenadas de los vértices de los contornos del polígono 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.

Detalles

setStyle( style ) → {SITNA.feature.Polygon}

Descripción

Asigna estilos al polígono.

Parámetros
Nombre Type Descripción
style SITNA.feature.PolygonStyleOptions

Objeto de opciones de estilo de polígono.

Retorna

La propia entidad geográfica.