Mapeo Support Materials
Español
Español
  • Introducción
  • Visión general
    • Acerca de Mapeo
      • Herramientas de Mapeo
      • Base de datos de pares y sincronización de Mapeo
      • ¿Cómo se está usando Mapeo?
    • ¿Mapeo es adecuado para mí?
    • FAQs
  • Guía de inicio rápido
    • Empezando...
    • Mapeo Mobile
    • Mapeo Desktop
  • Guía de referencia completa
    • Bienvenid@ – Introducción
    • 🗒️Elementos esenciales para un proyecto de Mapeo exitoso
      • Planeando un proyecto de Mapeo
        • Cuál es el objetivo del proyecto?
        • Qué resultados (productos/materiales) quieres?
        • Qué información recolectar?
          • Tipos de datos dentro de Mapeo
        • Quién debe participar y cómo?
        • Cuáles son los parámetros?
      • Evaluación de riesgos y seguridad
      • Creando protocolos de usuario
    • ✔️Mapeo funcionará de inmediato para mí?
      • Configuración por defecto
      • Mapa de fondo por defecto
    • ⚙️Opciones de personalización
      • Traducir Mapeo y configuraciones predeterminadas
      • Configuraciones personalizadas
        • Creando configuraciones personalizadas
          • Planeando la configuración y la estructura de datos
            • Categorías
            • Iconos
            • Campos de detalles
          • Codificar la configuración
            • Adding icon files
              • Crear y exportar archivos SVG usando Adobe Illustrator
              • Crear y exportar archivos SVG usando Inkscape
            • Creating details fields
            • Creating categories
            • Defining geometry defaults
            • Adding a project key
            • Adding project name and version
            • Building configuration file
              • Via the command line
              • Using GitHub Actions
          • Probando e iterando
      • Mapas de fondo personalizados
        • Creando mapas de fondo personalizados
    • 📱Mapeo Mobile: instalación y ajustes
      • Instalar Mapeo Mobile
      • Elegir los ajustes de Mapeo Mobile
      • Importar configuraciones a Mapeo Mobile
      • Añadir mapas de fondo personalizados a Mapeo Mobile
      • Actualizar Mapeo Mobile
    • 📱Mapeo Mobile: uso
      • Activar el GPS y ver la posición actual
      • Crear observaciones
      • Ver observaciones
      • Editar y borrar observaciones
      • Compartir datos externamente
      • Sincronizar datos a través Wi-Fi
    • 💻Mapeo Desktop: instalación y ajustes
      • Instalar Mapeo Desktop
      • Escoger el idioma de Mapeo Desktop
      • Importar configuraciones a Mapeo Desktop
      • Añadir mapas de fondo personalizados a Mapeo Desktop
      • Actualizar Mapeo Desktop
    • 💻Mapeo Desktop: uso
      • Mapeo Desktop para gestionar datos de Mapeo Mobile (modo Observaciones)
        • Sincronizar datos
          • Sincronizar a través de Wi-Fi
          • Sincronizar con un archivo
        • Ver observaciones
        • Editar y borrar observaciones
        • Exportar datos y compartir externamente
      • Mapeo Desktop para la creación de datos territoriales (modo Territorio)
        • Navegar por el mapa
        • Crear y editar datos territoriales
        • Cambiar mapas de fondo en el modo Territorio
        • Importar y usar datos geoespaciales externos
        • Exportar y sincronizar datos
      • Sincronizar datos con Mapeo Desktop
    • 💡Capacitaciones en Mapeo
      • Definir objetivos y formato
      • Estructurar una capacitación
        • Buenas prácticas para planificar una capacitación
        • Estructuración de la agenda, contenidos y actividades
          • Sugerencias para las diferentes secciones de un evento de capacitación
          • Consejos y actividades sugeridas para capacitar en las funciones clave de Mapeo
          • Materiales y recursos disponibles para el evento de capacitación
      • Preparación de equipos y suministros para una capacitación
        • Equipos y suministros recomendados
        • Preparación técnica antes de realizar la formación presencial
    • 🔧Solución de problemas
      • No puedo iniciar Mapeo
      • Mapeo se cierra automáticamente
      • Tengo problemas con el GPS en Mapeo
        • No se activa el GPS en Mapeo
        • Mi señal de GPS es muy débil
      • Tengo problemas con la cámara en Mapeo
        • Me aparece una pantalla negra cuando uso la cámara
      • Quiero actualizar los permisos de Mapeo Mobile
      • Tengo problemas de sincronización
        • Quiero conectarme a una red Wi-Fi
        • Quiero crear redes Wi-Fi locales
          • Con un router portátil
          • Con un celular
        • El dispositivo con el que quiero sincronizar no aparece en mi pantalla Sincronizar
        • Me aparece un error cuando intento sincronizar con otro dispositivo
        • No puedo sincronizar con el archivo de sincronización
        • La persona con la que quiero sincronizar ha eliminado datos valiosos
      • Quiero compartir archivos entre dispositivos
      • Quiero guardar e imprimir materiales de referencia de Mapeo
    • Glosario y hojas de referencia rápida
      • Glosario de términos relacionados con Mapeo
      • Descripción general de la pantalla del modo Territorio de Mapeo Desktop
  • Para desarrolladores
    • La arquitectura de Mapeo
    • Repositorios de Mapeo
  • Apoyo
  • Referencias adicionales
  • Digital Democracy website
Powered by GitBook
On this page
Export as PDF
  1. Para desarrolladores

La arquitectura de Mapeo

PreviousDescripción general de la pantalla del modo Territorio de Mapeo DesktopNextRepositorios de Mapeo

Last updated 2 years ago

We are currently redesigning Mapeo's core architecture and will relese updated documentation once changes are complete.

Behind the scenes of the user interfaces for working with mapping and monitoring data, you'll find Mapeo's core infrastructure. This document is a work in progress.

Schema

  1. Observation. Mapeo extends the OpenStreetMap specification to add 'Observations' -- a new data type that is like a node or point, but with extra metadata and media.

  2. Field. Called a 'question' (ODK) or 'tag' (OSM), a Field is how we structure metadata about Observations and OSM Elements.

  3. Preset. Called a 'Category' in the Mapeo interface, but in code we call this a 'preset.' This type defines a set of Fields and an Icon.

  4. Filter. An expression that can be applied on the values in one or more Field across a set of observations.

Database

KappaDB is one of the fundamental primitives of Mapeo Core that handles indexing of data that isn't media (i.e., it does not handle images). KappaDB is a flexible database for peer-to-peer applications that we developed in 2018, and is considered stable. If you haven't yet, go ahead and to familiarize yourself with how it works.

Configuration

Each 'project' has a set of configuration files. It is identified by a project key which is a shared secret amongst all devices. It authorizes devices to read and write to the database. There is no way at this time to revoke a configuration from a device remotely.

For more on configurations, see Configuraciones personalizadas.

Discovery

Each device announces itself on the local network using MDNS. It announces itself using a hash of the project key, which is also called a discovery key. This means that 3rd-party observers will not be able to discern the project key.

Replication

Replication requires advance knowledge of the project key. Replication will be refused if a peer's project key is not the same.

Media

Clients can provide filters for which files they want to accept on either end; by default, Mobile to Mobile sync does not send original images, only preview and thumbnail sizes. Original images are always syncronized from Mobile to Desktop.

is the module that manages replication across multiple Mapeo devices. It depends upon , a distributed append-only log. Hypercore only allows one writer; multifeed syncronizes a set of hypercores -- by a variety of authors -- across all devices with the same project key. This forms the basis for creating a view of a single dataset that incorporates changes from multiple writers across multiple feeds.

A project also contains media files which are handled separately from the multifeed module, which concerns itself primarily with structured data (e.g., json, protobuf, etc). Media files are replicated using . This is a simple module that announces the list of files available on both sides of a duplex stream, and then replicates the files that are missing.

Multifeed
hypercore
blob-store-replication-stream
try the workshop
Architecture Diagram September, 2020