Currently I'm using a few services for mapping/reverse Geo coding/road speeds

1 open.mapquestapi.com/geocoding - reverse geo coding (usually street name)

2 api.geonames.org - get POI name (e.g. University of Blah)

3 www.overpass-api.de - gets road speed

4 Mapbox - Mapping.

All the above data is OSM data (i think)

This worked fine with smaller numbers on dev, but now the userbase has grown, we are using our free quota and either pay, or do my own server with this info

This is a high level question, but if I was to create my own map server, could i have all this data on the one server, and have it return my custom styled maps (i like skobbler/mapbox streets style) Road speeds, and POI/Road names ?

I'm a windows server guy, so I'll have to learn some new skills, so i thought it better to ask here about any road blocks I would hit with the above on one server as multiple services?

I guess i'll need a nightly import of OSM data to keep it up to date too.

closed as too broad by PolyGeo Apr 10 '17 at 21:17

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


If you're deploying a project which appears to success it's always best idea to create your own server. It costs some work but you have everything under control and you're independent of others. Since it's high-level question some high-level advices.

  1. If you need simple tiles for applications mapnik+osm2pgsql+postgis will do the job
  2. If you need wms(c), wfs (or so..) it will be geoserver+osm2pgsql+postgis and some views on database
  3. In both cases you can create your own rendering style and you have information about restrictions (speed limit) in database
  4. Rev-geocoding of streetnames is as simple as writing one sql query (select street order by distance limit 1) and simple php code which will run this query and give back result
  5. Osmosis+osm2pgsql will keep your database up to date - one simple script run by crone.

Unfortunately native enviroment for all this software is Linux, but there is lots of documentation on the net including step-by-step tutorials so it's not as difficult as it gets. When I was starting only thing I knew about Linux and PostgreSQL was how to spell it - dozen months later I was deploying this kind of servers for breakfast, so it can't be difficult.

  • Thanks, would you say this is approx 2 days work? Someone said it would be that amount of time to do this: 1 install necessary base software, 2 import OSM database, 3 install renderd, osrm, nominatim, overpass, 4 install styles produced or downloaded by me. Does this sound right....or is this not enough? – Quade Oct 2 '15 at 11:00
  • 1
    2 days are way too low for getting everything (tile server, nominatim, overpass api) to work (installation, configuration, performance tweaking, automatic updating). I guess you will also need multiple servers because these three services will all need a different database formats. And you mentioned OSRM (which is for routing, do you need routing?) which will also need a separate database. Making four considerably large databases. A single server can't handle this. And do consider 2 weeks of work if you are already familiar with Linux and OSM. – scai Oct 2 '15 at 13:52
  • Thanks, I dont need routing!, I would have though this is all OSM data so it would really need 3 data sources? – Quade Oct 2 '15 at 14:14
  • Yes. A database optimized for rendering tiles has completely different requirements from a database optimized for geocoding which in turn has completely different requirements from to a database optimized for querying all available features. Doing all three tasks with a single database would be really slow and isn't supported by those tools anyway. Keep in mind that the whole planet is a massive amount of data. – scai Oct 2 '15 at 16:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.