Начало работы с OpenStreetMap

Здравствуйте уважаемые участники сообщества OpenStreetMap.

Хотелось бы узнать где можно скачать файлы базы данных объектов OpenStreetMap для России?

Возникла необходимость программно получать такие объекты как улица для отслеживания движения по маршруту.

В каком виде представлена карта, XML?

Кто нибудь программно взаимодействовал с OpenStreetMap, поделитесь опытом

Всю планету выкладывают тут: http://planet.openstreetmap.org/
Нарезки по России и СНГ выкладывают здесь: http://gis-lab.info/projects/osm_dump/

Отфильтровать нужные данные из общего дампа можно при помощи osmosis

Редактируемые данные лежат на сервере, в базе данных. Из неё делаются выгрузки в разные форматы, в том числе и в xml.

Будет лучше, если вы опишите задачу целиком. Тогда легче будет направить в нужную сторону.

Задача состоит в том, что нужно определить улицу по которой движется автомобиль для того, чтобы информировать водителя о поворотах и перекрёстках.

Планирую извлекать данные
в формате

<node id='23' lat='58.87753645355202' lon='49.79290110146539'>
  <tag k='highway' v='traffic_signals' />
</node>
<node id='22' lat='58.87456113991739' lon='49.73690926857261' />
<node id='19' lat='58.89362576054878' lon='49.7492065402827' />
<way id='48'>
  <nd ref='19' />
  <nd ref='23' />
  <tag k='embankment' v='yes' />
  <tag k='highway' v='secondary' />
  <tag k='incline' v='up' />
  <tag k='lanes' v='2' />
  <tag k='maxspeed' v='60' />
  <tag k='name' v='улица Пожарского' />
</way>
<way id='24'>
  <nd ref='22' />
  <nd ref='23' />
  <tag k='highway' v='primary' />
  <tag k='lanes' v='6' />
  <tag k='lit' v='yes' />
  <tag k='name' v='проспект Минина' />
  <tag k='oneway' v='yes' />
  <tag k='ref' v='М84' />
</way>

и анализировать маршрут.
Карта должна располагаться на борту автомобиля.
По такому принципу мне кажется работают навигаторы

Для разработки хотелось бы использовать C# или Java.

Также можно информировать о допустимой на участке скорости движения

Как обрабатывать XML разобрался, большое спасибо.

Интересно откуда берется слой изображения карты?

Слой изображения карты делается отдельным картосервером, в базу данных которого импортируются данные в виде немного отличном от того как они хранятся в API серере. Чаще всего это PosrtgreSQL+PostGIS, а данные заливаются утилитой osm2pgsql. После этого настраивается связка mapnik + mod_tile (apache), где первый собственно рисует запрашиваемый регион в картинку, а второй является координатором, получая от пользователей запросы какой кусок им надо, нет ли его в кеше и если нет, то запрос к мапнику, что бы нарисовал.

Если вы хотите делать навигационную программу, то вам нужен будет свой рисовальщик карты, как 2D, так и 3D. Распространённые картосерверы тут вряд ли подойдут, они ориентированы на Web, поддерживают только 2D, у них проблемы с поворотом карты по направлению движения и т.д. и т.п.

Если будете писть на java то часть кода можно подсмотреть в коде josm’а (отображение) и osmosis’а (фильтрация, работа с геометрией).

Посмотрите http://wiki.openstreetmap.org/wiki/Routing есть и GPL, и web возможно что-нибудь вам подойдёт