Hi there! Very new to using OSM and have read the docs but still am not sure about the use.

I am trying to match latitude and longitude coordinates to a road (any kind under the "highway"). But each is taking 1 second and I have about 1 million coordinates to check. What is the best approach to speed things up? If my current approach is completely wrong, please advise on how I should do so!

Unsure on how to get the bbox for the countries I am looking at(only 2) and I've downloaded the .osm files but unsure how to use them.

Currently using the following(c1 and c2 are the coordinates):

api = overpass.API()
qur = 'way["highway"~"."](around:10,' + c1 + ', '+ c2 +');' 
data = api.get(qur, verbosity='geom')

Thank you!

asked 08 Feb, 02:32

hellu's gravatar image

hellu
1615
accept rate: 0%

edited 08 Feb, 06:13

aseerel4c26's gravatar image

aseerel4c26 ♦
31.9k16236548


Running a million requests against the Overpass API will get you blocked. Don't do it. The project gives away its data for free, but we have to pay for servers like everyone else does, and checking your one million coordinates for you is not an appropriate use of our server resources.

Also, Nominatim (the geocoder) seems like a much better match for your problem than Overpass, though the same usage restrictions apply.

What you should be doing is setting up your own database, and then querying that. Most likely you'll want to set up a local Nominatim instance, though if you're not interested in administrative entities and really just want the name of the nearest road, a simplified osm2pgsql import and some SQL queries might also be an option. If you set up your own database locally, you'll save a lot of time in network round-trips alone, and you don't compete against other users of the system. If your coordinates are all in the same region or country, you don't even have to load a world-wide data set which will speed up things even further.

permanent link

answered 08 Feb, 06:52

Frederik%20Ramm's gravatar image

Frederik Ramm ♦
68.2k806201061
accept rate: 24%

edited 08 Feb, 06:53

1

Hi! thanks for the heads up. just to confirm, I should be following this http://nominatim.org/release-docs/latest/admin/Installation/ to set up my own Nominatim server? and the dataset would the the <countryname>-latest.osm.pbf file?

(08 Feb, 07:21) hellu

Yes that should work. As I said, depending on what exactly your problem is, other approaches might also work but a standard Nominatim install is certainly a good start.

(08 Feb, 08:17) Frederik Ramm ♦
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×335
×124
×41
×11

question asked: 08 Feb, 02:32

question was seen: 169 times

last updated: 08 Feb, 08:17

powered by OSQA