I got task to set up local server for reverse geocoding. I followed the instructions at http://wiki.openstreetmap.org/wiki/Nominatim/Installation. I don’t need the whole planet, just Europe, so I got data only for that. The result works fine as far as I can tell, with one quite major exception. Locations in all other countries resolve correctly, but for almost everything in Russia it says it’s in USA, but only country is wrong, street or city names are correct. My problem here is that when it comes to OSM, I’m complete newbie. I’m sure you love those. I spent quite some time googling for answers, if it’s maybe some usual beginner’s problem, but with no luck.
It’s not the source data, I tried it more than once, with data from different sources (Europe extracts from geofabrik.de and cloudmade.com). And moreover if something was wrong with them, somebody else would surely notice it before me. Instructions are also pretty simple, there’s hardly anything to do wrong. Only thing I can think of, maybe I need to run some additional/different commands when I don’t use the whole planet file?
Example for random place in Moscow (/reverse?format=xml&lat=55.7228675&lon=37.6252422):
- my server:
<reversegeocode timestamp="Fri, 17 Feb 12 18:58:14 +0100" attribution="Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0." querystring="format=xml&lat=55.7228675&lon=37.6252422&zoom=1&addressdetails=1">
<result place_id="56615019" osm_type="way" osm_id="100025151" lat="55.7233085827364" lon="37.6256259390441">
40 с2, Большая Серпуховская улица, район Замоскворечье, Ленинский район, Центральный административный округ, Moscow region, 115093, United States of America
</result>
<addressparts>
<house_number>40 с2</house_number>
<road>Большая Серпуховская улица</road>
<city>район Замоскворечье</city>
<county>Ленинский район</county>
<state_district>Центральный административный округ</state_district>
<state>Moscow region</state>
<postcode>115093</postcode>
<country>United States of America</country>
<country_code>us</country_code>
</addressparts>
</reversegeocode>
<reversegeocode timestamp="Fri, 17 Feb 12 17:57:45 +0000" attribution="Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0." querystring="format=xml&lat=55.7228675&lon=37.6252422&zoom=1&addressdetails=1">
<result place_id="91531280" osm_type="way" osm_id="100025151" lat="55.7233085776391" lon="37.6256259496167">
40 с2, Большая Серпуховская улица, район Замоскворечье, Ленинский район, Центральный административный округ, Moscow, Центральный федеральный округ, 115093, Ruská federace
</result>
<addressparts>
<house_number>40 с2</house_number>
<road>Большая Серпуховская улица</road>
<city>район Замоскворечье</city>
<county>Ленинский район</county>
<state_district>Центральный административный округ</state_district>
<state>Moscow</state>
<administrative>Центральный федеральный округ</administrative>
<postcode>115093</postcode>
<country>Ruská federace</country>
<country_code>ru</country_code>
</addressparts>
</reversegeocode>
Strangely some places resolve correctly, e.g. Moscow’s Red Square which I first wanted to use as an example (lat=55.7539072&lon=37.6190031). But most russian locations (tried with about hundered random ones) are wrong.
Any ideas what I might want to check? It would be best if it was some simple to fix beginner mistake, but I’m for any solution. No problem trying it from the start again if needed (although ~5 days import time does not help much with experimenting).