OpenStreetMap

Displaying post offices and postboxes using uMap and the Overpass API

Posted by Nicolelaine on 15 June 2021 in English (English).

Larger End Goal: To have a map embedded within an app or a website where people are able to easily view where the nearest postbox or post office is, and also be able to add new post offices and postboxes to the map if they aren’t yet recorded in the map.

Step 1: Display both post offices and post boxes on a uMap, using the Overpass API. These items should be on two separate layers, as the icons need to be styled differently.

Current issue: There are lots of post offices in the world, and even more postboxes. This causes the uMap to time out with a 429 error of “problem in the response.”

The current map: http://umap.openstreetmap.fr/en/map/postboxes_528331#13/53.5705/10.0067

Current suggestions:

  • Use an alternative public instance: https://wiki.openstreetmap.org/wiki/Overpass_API#Public_Overpass_API_instances
  • Run an Overpass API instance locally (really seems to be overkill for what’s needed for this project
  • Download the information of all post_box’s and post_office’s points and store that locally. Not sure what would be the best way to do this though. It looks like you can download all the OS data following the instructions here, but 1.5TB is a bit much to handle.
  • Maybe use the Overpass API itself to download the data (perhaps in chunks), although it seems we either already reached some limit or it is perhaps already overloaded and we don’t want to make it worse unless we’re sure it’s ok.

Current Questions:

  • What is the best way to get all (amenity=post_box OR amenity=post_office) points from OSM without overloading anyone or downloading the whole OSM dataset?
  • If we do go the route of downloading a copy of the data and querying this locally, what is the best way to get a snapshot of the relevant points from OSM without us causing unwelcome load to someone’s server?

What we hope for:

A way to get real time, in-sync information so that we don’t need to continuously update the database ourselves. To be able to associate images that people take with the data (maybe would need a local copy, but I wonder if Mapillary can somehow also work here. (Something like how Wheelmap does it would be very cool.)

Comment from H@mlet on 16 June 2021 at 09:24

Hello,

In order to lighten to load on overpass, you should specify the bounding box of the displayed map. Here is a doc to do that, in french though…

On the other hand, you should have a look at MapComplete, which is a thematic map viewer and editor. There is some image support (display from wikimedia, osm image, upload to imgur).

MapContrib and StreetComplete are in the same spirit.

Regards.

Comment from SK53 on 17 June 2021 at 20:06

You can build a dynamic query using Overpass. Rob Nickerson wrote a useful how to some years ago: https://www.mappa-mercia.org/2014/09/creating-an-always-up-to-date-map.html

Comment from mahdi1234 on 9 July 2021 at 13:13

You can serve files to umap from elsewhere e.g. I update my projects nightly and server from github as described here https://hackmd.io/OkwpRqQ7QXC3p8C0jfTUGQ?view

For local generation you could use osmium as described here https://hackmd.io/XfrY334rS7CV0tnPzx8Wvw but I’m afraid it’s very heavy for the whole planet.

Feel free to ask about both above, but I think the most sane way is probably using real DB with daily/hourly increments (I don’t have experience with this).


Login to leave a comment