Giter Club home page Giter Club logo

Comments (13)

systemed avatar systemed commented on June 29, 2024 1

From the readme:

To include sea tiles, create a directory called coastline in the same place you're running tilemaker from, and then save the files from https://osmdata.openstreetmap.de/download/water-polygons-split-4326.zip in it, such that tilemaker can find a file at coastline/water_polygons.shp.

The error you are getting shows that you don't have a file at the location where tilemaker is expecting to find it. Make sure that you don't have any extra levels of directory in there.

(Please use Github discussions, not issues, for help questions. Thank you :) )

from tilemaker.

systemed avatar systemed commented on June 29, 2024 1

Ah, you're using Docker. Sorry, I don't know how the filesystem works there, hopefully someone else will.

from tilemaker.

BinoyKadakkal avatar BinoyKadakkal commented on June 29, 2024

i saw that and i had created the folder as shown in the image and downloaded the data from https://osmdata.openstreetmap.de.
and done several trials by changing the location, rebuilding the docker image and extracting the file. It still shows the same error.

Screenshot from 2024-05-13 16-25-06

from tilemaker.

baurzhan avatar baurzhan commented on June 29, 2024

Run container without --rm option.
docker run -it --name=tilemaker -v $(pwd):/data ghcr.io/systemed/tilemaker:master /data/monaco-latest.osm.pbf /data/monaco-latest.mbtiles
Wait for the container to stop. Copy folders into container and restart the container:
docker cp landcover tilemaker:/usr/src/app/
docker cp coastline tilemaker:/usr/src/app/
docker start tilemaker

from tilemaker.

BinoyKadakkal avatar BinoyKadakkal commented on June 29, 2024

it still shows the same problem. after following the instructions i tried to run
docker run -v $(pwd):/data tilemaker /data/southern-zone-latest.osm.pbf /data/india.mbtiles

It also doesn't work

from tilemaker.

systemed avatar systemed commented on June 29, 2024

@daniel-j-h Could I trouble you for any thoughts on this?

from tilemaker.

daniel-j-h avatar daniel-j-h commented on June 29, 2024

I believe this has to do with absolute vs relative paths; in your config.json can you check if you have relative paths such as

  • coastline/water_polygons.shp and
  • landcover/ne_10m_urban_areas/ne_10m_urban_areas.shp

and turn them into absolute paths such as

  • /data/coastline/water_polygons.shp and
  • /data/landcover/ne_10m_urban_areas/ne_10m_urban_areas.shp

Then run it like

docker run -it --rm --pull always -v $(pwd):/data ghcr.io/systemed/tilemaker:master /data/monaco-latest.osm.pbf --output /data/monaco-latest.pmtiles --config /data/config-coastline.json --process /data/process-coastline.lua

I'm not sure where exactly tilemaker looks for those files otherwise - is it relative to the tilemaker binary by chance @systemed?


Two learnings here

  1. Should we have a script users can run to download this data, unzip it, put it in the right place; I have something like that already for my own experimentation and can upstream it if I have a bit more time throughout the week, and
  2. Should tilemaker get flags for coastline and landcover directories; I believe it's okay to have it in the config like this but maybe we need to put it into the documentation

from tilemaker.

systemed avatar systemed commented on June 29, 2024

I'm not sure where exactly tilemaker looks for those files otherwise - is it relative to the tilemaker binary by chance @systemed?

Everything is relative to the current working directory.

As far as tilemaker is concerned, coastline and landcover are just another datasource - there's no special handling. The config for a particular set of vector tiles might have both, or none, or lots more! So I don't think we'd want to add special handling for these paths.

Would something like a --base-dir option, which specifies the root path for the source data, be helpful? That way you could invoke it with something like

tilemaker input.osm.pbf output.mbtiles --base-dir /data

and it would then look for /data/input.osm.pbf, /data/coastline/water_polygons.shp, etc. etc.

from tilemaker.

daniel-j-h avatar daniel-j-h commented on June 29, 2024

Not sure we need an extra option for tilemaker when you can change the paths in the config file and use both absolute and relative paths there. In addition there is a -w option (docs) for docker to change the current workdir, so we can just pass -w /data and make sure tilemaker sees the mounted data dir as the current working dir.

With relative paths in the configs and changing the workdir the command looks as follows

docker run -it --rm --pull always -v $(pwd):/data -w /data ghcr.io/systemed/tilemaker:master /data/monaco-latest.osm.pbf --output /data/monaco-latest.pmtiles --config /data/config-coastline.json --process /data/process-coastline.lua

from tilemaker.

baurzhan avatar baurzhan commented on June 29, 2024

it still shows the same problem. after following the instructions i tried to run docker run -v $(pwd):/data tilemaker /data/southern-zone-latest.osm.pbf /data/india.mbtiles

It also doesn't work

"docker run" creates new container. In my instructions you shouldn't create new container. Just restart existing container. After docker restart tilemaker run docker logs -f tilemaker to see output

from tilemaker.

baurzhan avatar baurzhan commented on June 29, 2024

Updated instructions.

  1. Create container:
    docker create -i -t --name=tilemaker -v $(pwd):/data ghcr.io/systemed/tilemaker:master /data/monaco-latest.osm.pbf /data/monaco-latest.mbtiles
  2. Copy folders into container:
    docker cp landcover tilemaker:/usr/src/app/
    docker cp coastline tilemaker:/usr/src/app/
  3. Start container
    docker start tilemaker && docker logs -f tilemaker

from tilemaker.

daniel-j-h avatar daniel-j-h commented on June 29, 2024

I'm capturing learnings from here and #720 (comment) in

from tilemaker.

BinoyKadakkal avatar BinoyKadakkal commented on June 29, 2024

It works, Thank you for the support

from tilemaker.

Related Issues (20)

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.