Дамп карты России

Собственно вопрос: где брать сабж?
Единственное известное мне место: http://downloads.cloudmade.com/asia/russian_federation
Но там он появляется раз в неделю и с задержкой в неделю :frowning:

UPD.
Теперь есть ещё на http://osm.tesoro-shop.ru/
Обновляется по возможности ежедневно

На геофабрике Россию забыли. Или не смогли выбрать куда положить. Можно попробовать им написать. Я себе автоапдэйт для Беларуси сделал каждые пару минут. Если базу для России поднять, то можно раз в день самому патчить дифом и выгонять в файл.
А ещё можно посмотреть что на геофабрике в Азию попадает. Может проще оттуда вырезать.

Так может кто-нибудь уже озаботился и готов поделиться? :slight_smile:
А если нет, то как проще всего поднять базу для России?
Чтобы с небольшими затратами, комп у меня не особо мощный.

Ó ìåíÿ êîìï äîñòàòî÷íî ìîùíûé, åñëè íóæíî ïîäíèìó îòäåëüíûé.
Äàâàéòå èíñòðóêöèþ :slight_smile:

  1. файл с Россией по-новее (можно больше чем Россия) - не более недельной давности
  2. MySQL
  3. скрипт создания базы (я использовал последнюю версию сайта OSM)
  4. osmosis --read-xml file.osm --boundary-polygon file=russia.txt --migrate – write-mysql-0.6 authFile=some.auth forceUtf8=yes
  5. самое интересное наступает с обновлениями. у osmosis нету возможности обрезать osc файлы по полигону, но могу подкинуть версию с такими возможностями. Единственное ещё не полностью протестированную - бывает хватает чего за пределами области.
    osmosis --read-change-interval-init work initialDate=$INITIAL_DATE - для инициализации. Если файл давности не более дня - можно ничего не менять. иначе поменять файл work/configuration.txt
  • заменить hourly на daily,
  • поставить intervalLength=86400
  • changeFileBeginFormat=yyyyMMdd
  • changeFileEndFormat=yyyyMMdd
  1. потом запускать переодически
    osmosis --read-change-interval work --migrate-change --bounding-polygon-change-0.6 file=russia.txt filterIncompleteEntities=yes authFile=some.auth forceUtf8=yes --write-mysql-change-0.6 authFile=some.auth forceUtf8=yes

Вот тут модифицированный осмосис: http://files.leonenko.info/osmosis-0.30.2-bin.zip

Потом можно выгонять базу в файл или сразу к базе доступаться. Можно использовать локальное апи (если сайт поставить).

что-то он у меня вообще не запускается

SEVERE: Execution aborted.
java.lang.NoClassDefFoundError: org/java/plugin/PluginLifecycleException
        at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:73)

А обычный запускается?

обычный да.
в этом почему-то jpf не подцепляется, а в обычном его нет

А обычный какой версии был? Этот последний с репозитория. Плагины недавно, как я понимаю появилися.

обычный 0.30 - работает
у собранного из svn 0.30.2 кривой bat-файл, там путь до библиотек неправильный
если исправить, то вроде бы запускается

UPD
удалось добиться выполнения --read-xml … --write-mysql
но --read-xml … --migrate --write-mysql-0.6 работать отказывается, выдаёт ошибку

SEVERE: Thread for task 1-read-xml failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create streaming resultset.
        at org.openstreetmap.osmosis.core.mysql.common.DatabaseContext.executeStreamingQuery(DatabaseContext.java:218)
        at org.openstreetmap.osmosis.core.mysql.v0_6.impl.SchemaVersionValidator.validateDBVersion(SchemaVersionValidator.java:88)
        at org.openstreetmap.osmosis.core.mysql.v0_6.impl.SchemaVersionValidator.validateVersion(SchemaVersionValidator.java:59)

это не из за схемы бд ошибка? если да, то где её взять для 0.6?
для 0.5 брал тут: http://wiki.openstreetmap.org/wiki/Database_schema#MySQL

Базу 0.6 я создавал миграциями для сайта OSM (http://svn.openstreetmap.org/sites/rails_port_branches/api06)

А можно для тормозов помедленнее :slight_smile:
Поставил mySQL, скачал osmosis 0.3.2 , пол-вечера разбирался в том, что в батнике нужно внести изменение

MAINCLASS=org.openstreetmap.osmosis.core.Osmosis

и переместить библиотеки из каталога default
Осмосис заработал.
Скачал схему данных с http://wiki.openstreetmap.org/wiki/Database_schema и создал ее с mySQL
Скачал дамп России с cloudmade
Запускаю Osmosis:

osmosis.bat --rx file="C:\NAVI\russian_federation.osm.bz2" --wm host="localhost" user="user" database="osm"

Через пол-часа жужжания он валится со следующими словами:

C:\1\bin>C:\WINDOWS\system32\java.exe  -Xmx1048M -cp C:\1\osmosis.jar;C:\1\lib\mysql-connector-java-5.1.6.jar;C:\1\lib\bzip2-0.1.jar;C:\1\lib\commons-logging-1.0.4.jar;C:\1\lib\jpf-1.5.jar;C:\1\lib\postgis-1.3.
2.jar;C:\1\lib\postgresql-8.3-603.jdbc4.jar;C:\1\lib\wstx-lgpl-3.2.8.jar org.openstreetmap.osmosis.core.Osmosis  --rx file="C:\NAVI\russian_federation.osm.bz2" --wm host="localhost" user="root" database="osm"
17.03.2009 0:00:17 org.openstreetmap.osmosis.core.Osmosis run
INFO: Osmosis Version 0.30.2
17.03.2009 0:00:17 org.openstreetmap.osmosis.core.Osmosis run
INFO: Preparing pipeline.
17.03.2009 0:00:17 org.openstreetmap.osmosis.core.Osmosis run
INFO: Launching pipeline execution.
17.03.2009 0:00:17 org.openstreetmap.osmosis.core.Osmosis run
INFO: Pipeline executing, waiting for completion.
17.03.2009 0:07:22 org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SEVERE: Thread for task 1-rx failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to bulk insert ways into the database.
        at org.openstreetmap.osmosis.core.mysql.v0_5.MysqlWriter.flushWays(MysqlWriter.java:621)
        at org.openstreetmap.osmosis.core.mysql.v0_5.MysqlWriter.process(MysqlWriter.java:1059)
        at org.openstreetmap.osmosis.core.container.v0_5.WayContainer.process(WayContainer.java:60)
        at org.openstreetmap.osmosis.core.mysql.v0_5.MysqlWriter.process(MysqlWriter.java:1009)
        at org.openstreetmap.osmosis.core.xml.v0_5.impl.WayElementProcessor.end(WayElementProcessor.java:103)
        at org.openstreetmap.osmosis.core.xml.v0_5.impl.OsmHandler.endElement(OsmHandler.java:113)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.openstreetmap.osmosis.core.xml.v0_5.XmlReader.run(XmlReader.java:109)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1814575-1' for key 'PRIMARY'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
        at org.openstreetmap.osmosis.core.mysql.v0_5.MysqlWriter.flushWays(MysqlWriter.java:619)
        ... 19 more
17.03.2009 0:07:22 org.openstreetmap.osmosis.core.Osmosis main
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
        at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
        at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:85)
        at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:30)

Но таблицы вроде как заполняет.
Вопрос: это нормально, и если нет, то как бороться?
update:
Кажется, дело в этом:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘1814575-1’ for key ‘PRIMARY’

Я писал в базу в формате 0.6. С ним легче работать - там отдельная таблица для тэгов нод. Если конкретных завязак нету, то рекомендую. В данном случае базу нужно будет создать миграциями для сайта osm из svn - там самая правильная схема.
В вашем случае можно попробовать поискать в файле путь 1814575 не повторяется ли он в xml. Или это неправильная интерпретация osmosis’a.

А как базу мигрировать в 0.6? Если можно, по пунктам.

osmosis --read-xml … --migrate --write-mysql-0.6 …

… table "osm.schema_migrations’ doesn’t exist
я же просил, по пунктам :sunglasses:

  1. Нужно создать базу. Тут скрипт http://files.leonenko.info/osmdb06.sql.zip. Может не самый новый, но должен работать.
  2. osmosis --read-xml … --migrate --write-mysql-0.6 forceUtf8=yes …

…угу

C:\1\bin>C:\WINDOWS\system32\java.exe  -Xmx1048M -cp C:\1\osmosis.jar;C:\1\lib\mysql-connector-java-5.1.6.jar;C:\1\lib\bzip2-0.1.jar;C:\1\lib\commons-logging-1.0.4.jar;C:\1\lib\jpf-1.5.jar;C:\1\lib\postgis-1.3.
2.jar;C:\1\lib\postgresql-8.3-603.jdbc4.jar;C:\1\lib\wstx-lgpl-3.2.8.jar org.openstreetmap.osmosis.core.Osmosis  --rx file="C:\NAVI\russian_federation.osm.bz2" --migrate  --write-mysql-0.6 host="localhost" user
="root" database="osm"
17.03.2009 1:19:58 org.openstreetmap.osmosis.core.Osmosis run
INFO: Osmosis Version 0.30.2
17.03.2009 1:19:59 org.openstreetmap.osmosis.core.Osmosis run
INFO: Preparing pipeline.
17.03.2009 1:19:59 org.openstreetmap.osmosis.core.Osmosis run
INFO: Launching pipeline execution.
17.03.2009 1:19:59 org.openstreetmap.osmosis.core.Osmosis run
INFO: Pipeline executing, waiting for completion.
17.03.2009 1:19:59 org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SEVERE: Thread for task 1-rx failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Database version mismatch. The schema is missing migrations [19, 22, 17, 23, 18, 24, 15, 16, 13, 14, 11, 12, 21, 3, 20, 2, 1, 10, 7, 6, 5, 4, 9, 8], may n
eed to upgrade schema or specify validateSchemaVersion=no.
        at org.openstreetmap.osmosis.core.mysql.v0_6.impl.SchemaVersionValidator.validateDBVersion(SchemaVersionValidator.java:127)
        at org.openstreetmap.osmosis.core.mysql.v0_6.impl.SchemaVersionValidator.validateVersion(SchemaVersionValidator.java:59)
        at org.openstreetmap.osmosis.core.mysql.v0_6.MysqlWriter.initialize(MysqlWriter.java:341)
        at org.openstreetmap.osmosis.core.mysql.v0_6.MysqlWriter.process(MysqlWriter.java:1110)
        at org.openstreetmap.osmosis.core.migrate.MigrateV05ToV06.process(MigrateV05ToV06.java:46)
        at org.openstreetmap.osmosis.core.container.v0_5.BoundContainer.process(BoundContainer.java:68)
        at org.openstreetmap.osmosis.core.migrate.MigrateV05ToV06.process(MigrateV05ToV06.java:37)
        at org.openstreetmap.osmosis.core.xml.v0_5.impl.BoundElementProcessor.end(BoundElementProcessor.java:85)
        at org.openstreetmap.osmosis.core.xml.v0_5.impl.OsmHandler.endElement(OsmHandler.java:113)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.openstreetmap.osmosis.core.xml.v0_5.XmlReader.run(XmlReader.java:109)
        at java.lang.Thread.run(Unknown Source)
17.03.2009 1:20:00 org.openstreetmap.osmosis.core.Osmosis main
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
        at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
        at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:85)
        at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:30)

Вот:

Поэтому я рекомендую поставить себе сайт osm из svn. Хотя бы для обновления базы.

СПАСИБО! Заработало.