openmaptiles/UPDATE.md

93 wiersze
2.9 KiB
Markdown
Czysty Zwykły widok Historia

# Keeping the Vector Tiles Updated
2017-01-16 09:09:29 +00:00
Once you have imported OpenMapTiles you can also keep it up to date by importing the latest OSM changes and
regenerating the tables.
## Import
You can either keep the database up to date based on the daily (or minutely) OSM change feed
2017-01-16 09:09:29 +00:00
or import specific change files.
### Choosing the Download Source
While GeoFabrik currently provides extracts of basically all countries, they provide only daily updates.
If you need minutely updates you might want to try openstreetmap.fr, for example like this: `make download-osmfr area=africa/eritrea`, which configures minutely updates.
### Preparations
If you plan to keep data updated automatically, before importing any data, make sure to set
```
DIFF_MODE=true
```
in the `.env`
Now download fresh data:
```
make download area=your-area-of-choice
```
2017-01-16 09:09:29 +00:00
### Keep Database Updated
You can use the new imposm3 feature to keep the database updated (thanks to the [work by @stirringhalo](https://github.com/openmaptiles/openmaptiles/pull/131)). This will automatically download
2017-01-16 09:09:29 +00:00
the OSM change feed and import it into the database.
After each run you should also have a list of tiles that have updated.
2017-01-16 09:09:29 +00:00
```
make update-osm
2017-01-16 09:09:29 +00:00
```
#### Troubleshooting
The output will be similar to this:
```
[info] Importing #4889572 including changes till ....... +0000 UTC (1m13s behind)
```
It might take some time to catch up with the latest changes, but the "time behind" should always decrease. If it doesn't, you need to download a new extract our don't have enough system resources to keep-up with the changes.
Finally you will get an output like this - this indicates, that some 6 objects were changed:
```
[progress] 3s C: 0/s (0) N: 0/s (0) W: 0/s (6) R: 0/s (0)
```
The process will keep running forever and eventually print something like this - which just means that no changes were in the latest changeset:
```
[progress] 0s C: 0/s (0) N: 0/s (0) W: 0/s (0) R: 0/s (0)
```
2017-01-16 09:09:29 +00:00
### Import Change File
Given you have a file `changes.osc.gz` in your import folder. Once you ran the import command you should also have a list of tiles that have updated.
```
make import-diff
2017-01-16 09:09:29 +00:00
```
## Generate Changed Tiles
After the import has finished **imposm3** will store lists of tiles in text format in subfolders of the `diffdir`,
named for the date(s) on which the import took place (`YYYYMMDD`).
Copy and merge the files to `tiles.txt` in the import folder (`data`), either manually or with the following command, which also removes duplicate tiles so they are only generated once:
```
cd data && sort ./*/*.tiles | uniq > tiles.txt
```
2017-01-16 09:09:29 +00:00
After generating the tiles.txt you might and to delete the `*.tiles` files to not include them in the next run:
```
cd data && rm ./*/*.tiles
```
Finally run the command to read the tilelist and write the updated vector tiles in the existing MBtiles file.
2017-01-16 09:09:29 +00:00
```
docker-compose run generate-changed-vectortiles
```