- Notifications
You must be signed in to change notification settings - Fork26
An open source javascript framework for spatial data and application interfaces.
License
GEOLYTIX/xyz
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
v4.12.12
Open source presentation, controller, domain, and service layers for cloud native spatial data and application interfaces.
The pattern for the Node.jsdomain and service layer are that of a RESTful API which provides secure gateways for spatial data sources and 3rd party service providers.
The domain layer handles API routing, rewrites, and resource caching.
The service layer manages authentication and transaction script. URL parameter (and payloads) from the application control layer (mapp) are assigned to query templates and passed to the data source (service) layer. The response being parsed and returned to the (mapp) presentation layer.
The Node.js application layers may be served by anExpress application or deployed as cloud native serverless functions to node.js runtime.
The data source (service) layer is build on the non blockingnode-postgres library to allow access to PostGIS extended relational Postgres databases.
Postgres being able to handle object records allows for the Access Control Lists (ACL) to be stored as Postgres tables.
Application control and presentation layers are provided as ES6 javscript libraries.MAPP utilizes the openlayers map engine for mapviews and provides an interface to the XYZ API. The library abstracts away the complexities of handling spatial data objects such as layers and locations.
MAPP.UI contains utilities to build engaging user interfaces around mapviews. The application views can be dashboards made up of multiple data views such as maps, tables, lists, or graphs.
The MAPP library can be extended at runtime by dynamically importingmapp plugins which may use third party modules.
Please refer to thewiki pages for detailed interface references.
v1 was build withLeaflet as the map render for the client library.
The Mapp library changed the map render toOpenlayers inv2.
The XYZ API was rebuild to run as serverless functions inv3.
v4 is a complete rewrite of the client libraries. All user interface utilities have been taken out of the mapp library and have been compiled as mapp.ui library. Both libraries are now bundled withesbuild.
The mapp library is now able to instantiate multiple mapviews.
Polymorphism is applied to extend or modify object types and methods through plugins without the need to fork the repository.
Dynamic module imports reduce the need to bundle 3rd party libraries such asTabulator andChart.js.
Node.js v18+
jsonwebtoken - A Node implementation of JSON Web Token.
Node-Postgres - PostgreSQL client for Node.
nodemailer - Send e-mails with Node – easy as cake!
aws-sdk - Several modules are required in order to access resources on cloudfront or S3.
simple-statistics - A JavaScript implementation of descriptive, regression, and inference statistics.
Following development dependencies are required to build the library and run a local instance of the XYZ host.
Express - Fast, unopinionated, minimalist web framework for Node.
cookie-parser - Parse cookie header for express.js.
dotenv - Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env.
esbuild - A JavaScript bundler and minifier.
µhtml - A micro HTML/SVG render which is bundled as utils into the MAPP library.
eslint - A tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.
Openlayers - High-performance web mapping engine.
Free use of the code in this repository is allowed through aMIT license.
BrowserStack supports this OpenSource project and provides us with valuable tools to test the Mapp library on different client platforms.
About
An open source javascript framework for spatial data and application interfaces.