Страница 1 из 1
Как сформировать базу в MySQL с данными из OSM по России?
Добавлено: 28 апр 2012, 16:05
malnor
Здравствуйте.
Мне бы хотелось получить локальную базу данных на MySQL с данными OSM по России. Интересуют объекты предприятия, города, границы областей.
Подскажите, правильно ли понимаю, что для этого необходимо
1) получить дамп данных OSM (например, воспользоваться дампом данных OSM по СССР, который есть на GIS-Lab).
2) с помощью Osmosis сгенерировать схему БД в MySQL
3) с помощью Osmosis перенести данные из OSM в БД
Re: Как сформировать базу в MySQL с данными из OSM по России
Добавлено: 28 апр 2012, 17:11
trir
Можно использовать fdo
http://fdo.osgeo.org/
Re: Как сформировать базу в MySQL с данными из OSM по России
Добавлено: 02 май 2012, 23:03
malnor
Насколько я понял, fdo - нечто промежуточного слоя между источниками данных и приложением. Мне же нужно получить локальную бд.
С помощью скрипта
http://gweb.bretth.com/apidb06-pgsql-latest.sql сгенерировал бд в mysql. Далее попытался выполнить команду в osmosis v0.40.1
Код: Выделить всё
osmosis --read-pbf file="ru.osm.pbf" --buffer --write-apidb validateSchemaVersion=no dbType="mysql" host="localhost" database="api06_test" user="user" password="user"
получил ошибку
Код: Выделить всё
SEVERE: Thread for task 1-read-xml failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: An output error has occurred, aborting.
at org.openstreetmap.osmosis.core.store.DataPostbox.checkForOutputErrors(DataPostbox.java:78)
at org.openstreetmap.osmosis.core.store.DataPostbox.populateCentralQueue(DataPostbox.java:134)
at org.openstreetmap.osmosis.core.store.DataPostbox.put(DataPostbox.java:184)
at org.openstreetmap.osmosis.core.buffer.v0_6.EntityBuffer.process(EntityBuffer.java:38)
at org.openstreetmap.osmosis.xml.v0_6.impl.NodeElementProcessor.end(NodeElementProcessor.java:118)
at org.openstreetmap.osmosis.xml.v0_6.impl.OsmHandler.endElement(OsmHandler.java:107)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:108)
at java.lang.Thread.run(Unknown Source)
Кто разворачивал локально бд osm на mysql подскажите как делали?
Также попробовал использовать postgresql (без postgis). Но при попытке создать схему БД возникла ошибка
Код: Выделить всё
ОШИБКА: нет доступа к файлу "/path/to/libpgosm.so": No such file or directory
Для генерации схемы использовал скрипт apidb_0.6.sql из каталога script\contrib, как советуют в вики по osmosis.
Поделитесь опытом разворачивания на win7.
Re: Как сформировать базу в MySQL с д анными из OSM по Росси
Добавлено: 08 авг 2012, 22:58
Novik
Данные OpenStreetMap из
открытой БД PostGIS можно скопировать в свою БД MySQL с помощью
brigantine