A cross platform, cross environment JS library that automates a multimedia geolocated tour.
https://geoxp.mezzoforte.design
Mezzo Forte GeoXp maps media contents to geographical locations and automatically reproduces them based on configuration rules.
It’s meant to be used in any JS environment, front or back end, regardless of the JS framework or platform.
The library is made of modules, with the main one being "core", while plugin modules are available to implement platform specific features.
Plugins are not mandatory, you can use the core and develop your own code to provide gelocation and consume media events (such as audio/video players or anything else you have in mind!).
The library is made of modules, with the main one being "core", while plugin modules are available to implement platform specific features.
You can install individual packages, according to your needs:
# npm
npm install @geoxp/core
npm install @geoxp/web-audio
# yarn
yarn add @geoxp/core
yarn add @geoxp/web-audio
If you're gonna use it in the browser, you most likely want to install the Web wrapper:
# npm
npm install @geoxp/web
# yarn
yarn add @geoxp/web
Keep reading to understand better how this piece of software works :)
GeoXpCore module is the heart of the GeoXp experience. It maps media management events based on set of rules.
It's cross platform, cross environment, and can be used in any js based project, front end or backend.
GeoXpWebAudio plugin provides audio playback features to GeoXpCore module.
Based on howler.js
, it can be used in any web browser environment.
GeoXpWebGeolocation plugin provides user geolocation based on navigator.geolocation API.
It can be used in any web browser environment.
GeoXpWebStorage plugin provides persistent storage to GeoXpCore using cookies.
It can be used in any web browser environment.
A wrapper intended to be used in a browser environment that unifies four essential packages —Core
, Web Audio
, Web Geolocation
, and Web Storage
— into a single, easy-to-use package.
A collection of utilities shared by the packages.
To contribute to this project, fork the repository, work on a development branch and open a MR. Remember to update the changelog (CHANGELOG.md)!
For repo admins: to release a new version, follow these steps:
- verify and test changes
- verify CHANGELOG.md has been updated
- merge MR in
main
- publish a new version with
yarn new:publish
- create a new release in the release section