Giter VIP home page Giter VIP logo

mapsforge-creator's Introduction

Maven Central License: LGPL v3

Mapsforge

See the integration guide and changelog. And read through how to contribute guidelines.

If you have any questions or problems, don't hesitate to ask the Discussions for help.

License

Mapsforge library is under LGPL v3 license, with an important simplification: the constraints mentioned in sections LGPL v3 §4(d) and §4(e) are waived.

This means that you are allowed to convey a Combined Work without providing the user any way to recombine or relink the application and without providing any shared library mechanism.

In other words, you are allowed to include Mapsforge library in your Android application, without making your application open source.

Screenshots

Android
Desktop
Desktop

mapsforge-creator's People

Contributors

boldtrn avatar devemux86 avatar junichim avatar mapsforge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mapsforge-creator's Issues

Specify path to GraphHopper config

It's nice that we can build graphs with the mapsforge-creator now as well. I just gave this a try and saw that I can't specify a path to the GraphHopper config, it is assumed that it is in the same directory as the gh.jar. Wouldn't it make sense to be able to separate the two?

Automatically update/download the coastlines

As mentioned by Ludwig here:
There also needs to be something that refreshes the coastline files. They do change a bit and should really be in sync as much as possible. Before I run a batch on our server, I delete the input files, forcing our current script to get the coastlines again.

Add machine-readable JSON index of all files on download.mapsforge.org

It would be useful if a machine-readable index of all the files on download.mapsforge.org (and therefore any proxy cache that third-parties run locally to avoid traffic) could be created, so that apps wanting to show a list of available areas could easily ingest such an index.

Currently, downloads are produced and end up at:
http://download.mapsforge.org/maps/v5/
However, this gives an Apache directory listing over multiple URL locations, which is non-trivial to parse.

I realise this might be more a question of deployment for the administrators of the server, as mapsforge-creator seems to run on a per-file basis, but perhaps there is scope for achieving the above by converting the repetitive scripts at
https://github.com/mapsforge/mapsforge-creator/tree/master/v4
towards an architecture which uses a wrapper script to read from a JSON file of the same locations and run each invocation that way. That would then mean an index file essentially already exists (assuming no conversion failures).

Allow adding other sources than Geofabrik

As mentioned by Ludwig here:
I also think that this should be more flexible in the sense that other sources should be allowed more easily. The main rationale for this is to allow others to hook in their extracts (or custom generated data sources). This would not only be for their benefits, but also for ours: the more the scripts get used by others, the more input we will get in terms of bug fixes, improvements (maybe wishful thinking).

GraphHopper

Add support to create GraphHopper offline routing graphs.

Zip is required

We should add to the documentation that you have to install zip (e.g.apt-get install zip). This is not installed by default on every distro.

TagTransform support in map writer

It would be great if we could specify a tag transform file before generating the map file.

Not sure if we have a best practice for mapsforge at this moment? But it would be great to add this as user option.

Something like:

if(path-to-tag-transform-file-given)
  run tag-transform

Wget no-verbose

Recently the wget arguments changed and -nv was removed from the wget command. Would it be possible to add it again or to make it configurable. This spams a lot of unnecessary lines to logfiles.

shape2osm.py not produce multiple osm

shape2osm.py converter has a (user selectable) maximum number of objects in a single .osm file.
But instead of producing multiple .osm files after exceeding that limit, it overwrites the old one.

Note: after fixing this, we need to update the map-creator script to properly merge all converted .osm files.

Write map file to $DATA area

I think it is better to write the output file to the $DATA and not to the $MAPS area.

The $MAPS area is visible to external users and might be picked up be mirrors, where a half-finished file could stay for until the next sync.

Check if generated map file is within size range

As mentioned by Ludwig here:
The size check before overwriting was also useful.

The idea is to check the size of the newly generated map compared to the old map. If the new file is smaller by e.g. 10% we would thrown an error.

Separate $DATA area by version

The $DATA area should also be segmented, like the $MAPS area, by version (v3 etc).

This ensures that, if v3 and v4 scripts are run in parallel, they do not overwrite each other.

Skip map generation if map exists and is newer than X days

As mentioned by Ludwig here:
Something else we put in place was to check the date of files when to regenerate something. This has been useful to rerun the whole script if errors occurred to speed the regeneration of files up that were corrupted.

So it would be nice if we could make the time range configurable so that the script can skip the map if the source map is younger than some time-range.

Corrupted PBF download not detected

Following scenario happens: script downloads pbf for are from geofabrik, this download somehow fails (truncated for whatever reason). When the script is run again, it determines that the pbf file is not old and uses it to generate a map.

I think it would be safe to always download the pbf file from geofabrik, even if it is pretty new. That ensures that the md5 check is carried out. Obviously, this will lead to more downloads if the map creation process fails, but if the map itself is newer than 30 days, the download will not happen.

This also results in the newest data being used.

Fail, if there was an issue

Currently the script does not fail, if any of the commands fail. If anything fails, we should exit the script with an error code (e.g. 1), so we should check every execution and call exit 1 if it fails. This makes it easier to check if the overall script worked or not

Use https for Geofabrik?

Geofabrik offers https for downloading files. Probably download speed will be lower with https? Not sure if we should do this or not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.