OpenStreetMap

Rendering the lakefront using Osmarender

Posted by skorasaurus on 3 August 2011 in English (English)

When I locally render (using or/p and the default z15 tiles@home stylesheet) a portion of the Lake Erie lakefront, land that is not water is displayed as water the map, as shown at
http://i.imgur.com/iTjTB.png

In the above picture, the lake is also not rendered.

However, on openstreetmap.org, the coastline area is displayed correctly as land.
as shown in: http://www.openstreetmap.org/?lat=41.50955&lon=-81.69886&zoom=15&layers=O

Any ideas why the coastline is displaying as water in my local renderings ?

I am trying to have the coastline render correctly as land and and the lake to render (as blue) too.

Location: Lakeview Terrace, Ohio City, Cleveland, Cuyahoga County, Ohio, 44113, United States of America

Comment from skorasaurus on 1 September 2011 at 14:06

Here's an update of how I progressed since then.

The problem:

When downloading data from OSM, the geographic area is (not always, but for the sake of this post, most of time) shaped in a rectangle defined by the bounding a north, east, south, and west coordinates (known as a bounding box).

When it comes to coastlines in OSM, the entire area is not downloaded, just the data within the bounding box. This can be a problem if your data partially contains a coastline and the data does not specify which side is land and which is water !

Thus, here's what you should do if you have a large coastline to render in osmarender.
(thanks to bobkare in the OSM IRC channel for the help).


  1. download the tiles@home client.

  2. Extract the t@h client, copy both ./close-areas.pl and the folder png2tileinfo to the folder that contains the .OSM file you wish to render.

  3. Run ./close-areas.pl on the .OSM file
    As follows: ./close-areas.pl minlat minlon maxlat maxlon < theosmfile.osm > output.osm

close-areas.pl will download the additional coastline that was not in the bounding box and specify the area(s) near the coastline which contain water.

After running close-areas.pl, my output .osm file, once rendered, still did not have water in it.
Why ?!
Through a couple trial and errors of running close-areas.pl, I also learned that the the bounding box order IS NOT the same as your minlat minlon maxlat maxlon . The bounding box order (used in the OSM API, [v.06]) is left,bottom,right,top sides of your bounding box;

but the parameters of the
minlat is the bottom (of your bounding box) (southern portion),
maxlat is the top/north;
minlon is the left/west;
maxlon is the right/east.

I had mistakenly entered the bounding box coordinates in the same order of the API, not the specific order used in close-areas.pl

The correct close-areas.pl was:./close-areas.pl 41.49503 -81.7291 41.51245 -81.69391 < input.osm &rt; output.osm

EDIT: I haven't fixed it yet I was able to render the coastline using an area of bounding box that consisted of the mall portion of downtown Cleveland (the above coordinates), for the sake of simplicity during this debugging process. However, when I attempt to run the above using the bounding box of the entire city of Cleveland (the same used for the Cleveland Neighborhood Map), the water is displayed everywhere on the rendered image, instead of just Lake Erie.

Hide this comment

Leave a comment

Parsed with Markdown

  • Headings

    # Heading
    ## Subheading

  • Unordered list

    * First item
    * Second item

  • Ordered list

    1. First item
    2. Second item

  • Link

    [Text](URL)
  • Image

    ![Alt text](URL)

Login to leave a comment