MapFilter Desktop is an experimental offline-first mapping and reporting app to facilitate reporting observations in time & space of physical phenomena.
It uses osm-p2p for offline peer-to-peer synchronization of an OpenStreetMap database, without any servers.
This project is under active development and is still at the early prototyping phase.
To clone and install all dependencies and start the program, execute
$ git clone git@github.com:digidem/mapfilter-desktop.git
$ cd mapfilter-desktop
$ npm install
$ npm rebuild
$ npm start
Make sure that the following statements are true:
$ python --version
Python 2.7.x
You can use virtualenv or conda, or if you don't mind changing your system python default, you can use brute force:
$ ln -s `which python2` /usr/bin/python
On mac:
$ defaults write com.apple.versioner.python Version 2.7
Sometimes it's called glibtool
.
On Mac OSX users might see libtool: -static is not a valid option
error. This means that libtool
needs to be XCode's version of libtool. Make sure XCode developer tools are installed.
$ which libtool
/usr/local/bin/libtool
If you see something from homebrew, like .../Cellar/.../libtool, then you have
the GNU version which does not have the -static
option. You should type brew unlink libtool
which will re-enable the XCode version.
Electron-forge and electron-prebuilt-compile can give odd behavior when
developing in a directory where there is a node_modules
folder somewhere in
the hierarchy. Make sure you clone the repository somewhere generic, like ~/dev
.
MapFilter Desktop uses Electron. To package the Electron app as a native Windows .exe
or macOS .dmg
, execute
$ npm run package
The resultant installer or DMG will be placed in the ./dist
folder.
bin/build_style.js static/map_style
MapFilter Desktop uses GitHub Releases for deployment.
To create a release, simply push a git tag to the repository. A convenient way
to both advance the project by a version and push a tag is using the npm version
command. To create a new minor version and push it to the github
repository to initiate a build, one might run
$ npm version minor
$ git push --tags
A github release will be created automatically. Simultaneously, an Appveyor build will be started to create a Windows installer, and a Travis build will be started for a macOS DMG. Each will be added to the github release asynchronously as they complete.
You'll be able to find the results on the project's releases page.
First, install and start ddem-observation-server.
mkdir -p data
cd data
../bin/create-sample-observations.js ../src/sample.geojson
for f in *.json; do
curl -H "Content-Type: application/json" -d @$f http://localhost:3210/obs/create
done
MIT