Visionaris

Funcionamiento de Mapas

Componente : map

Ubicación: Visionaris/visionaris_suite/VisionarisFrontEnd/src/app/components/right-panels/analysis/graph-config/map/

Tarea: Configuración y construcción de Mapas

Descripción: El componente dibuja polígonos(Layers) utilizando un array de puntos de coordenadas( [lgn, lat] ), provistos por un archivo json, de la colección maps.

Maps

Es la colección que registra los mapas a usarse en Visionaris, posee la siguiente estructura:

code: es el nombre con el cual se referencia al mapa en los servicios.

name: nombre del mapa

zoom: dato numérico para registrar el área de cobertura cuando se abre el mapa, teniendo como centro las coordenadas guardadas en position.

position:

graba dos valores con los cuales se construye la coordenada, latitud y longitud.

 

properties:

Array, que se usa para guardar información que se puede mostrar o no cuando se selecciona el mapa.

 

geoloc:

Array que contiene los polígonos a dibujar, cada registro es una capa (esta es la información que necesita Mapbox para la representación), está compuesta por Geometry y Properties.

 

geometry: contiene “type” que define el tipo de polígono a dibujar y el array “coordinates” con los registros de cada punto que conforman la figura.

properties: esta información depende del geoJson que se use para formar el mapa, ya que mayoritariamente se descargan de entidades gubernamentales, quienes nos proveen de la cartografía del país o región. Sin embargo es posible añadirle información, en este ejemplo se le agrego el campo “provincia” con el nombre, porque en el código se usa el parámetro “provincia” para buscar la coincidencia y dibujarla, Hay que tener mucho cuidado con los caracteres especiales como acentos ya que suele ser unos de los motivos principales de “no coincidencia”.

Esta es la estructura de los mapas, los mismos se encuentran en la colección maps de VisionarisV7.

Para obtener la información de dicha colección se cuenta con el servicio “map.visionaris.service.ts”, el mismo nos brinda 3 métodos:

get() devuelve todos los objetos de la colección,

getById(id: string) devuelve un objeto por id y

getByCode(code: string) devuelve objeto por code.

 

 

 

 

Actualmente no se cuenta con una aplicación para registrar nuevos mapas, el funcionamiento es sencillo, se descarga el geoJson de la región que se desee, luego se debe preparar el json con la estructura anteriormente mencionada de la colección maps y cargarle el array geoloc del geoJson.

El tamaño máximo permitido para un objeto en MongoDB es 16MB, lo cual nos limita para poder registrar zonas con mayor detalle, para solucionar esta problemática se creo la colección mapsLink.

El objetivo de ésta colección es proporcionar los vínculos que permiten la navegabilidad entre los diferentes mapas.

name : Nombre con que se designará al mapa

code: código con el que se relacionará con la colección maps

parent: código del mapa padre (cuando es el nivel 0 o padre, “parent” no existe)

denominacion: nombre del nivel (Comunas, Provincia, departamento, etc)

nomenclaturaID: id de nivel

lista: contiene el nombre de las partes que conforman la región.

Servicio: “mapsLink.visionaris.service.ts”

get() devuelve lista de Mapas Padres (los que no tienen propiedad parent)

getChieldsByParent(parent: string) devuelve todos los hijos de un padre

getMapsByName(name: string) devuelve listado de mapas donde se encuentre “name” en lista.name

getMapsByCodPos(cp: string) devuelve listado de mapas donde se encuentre “cp” en lista.CP

getAllMapsByCodPos(codPos: [ { name: , value: } ])

Llamada al servicio por medio de un array de objetos del “análisis”, en donde name es el código postal y value el valor, esto devuelve tres arrays locations, parents y names_parents.

Locations: la informacion del nivel que se va a dibujar

parents: array de objetos que contienen la info para dibujar los polígonos de Locations

names_parents: array de objetos necesarios para buscar nivel superior.

getAllMapsByName(names: [ { name: , denominacion: , value: , code_parent: } ])

llamada al servicio con un parámetro names (names_parents), devuelve parents y names_parents.

 

 

@ Visionaris - Todos los Derechos Reservados