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.
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