You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#3426 2013-04-07 18:08:39
- Nikolya
- Member
- From: Краснодар
- Registered: 2010-08-17
- Posts: 937
Re: Конвертер OSM -> MP
на счет
perl -MCPAN -e "install Math::Clipper"
cpan Math::Clipper
на самом деле помогло как леша говорил, переустановил
ppm install MinGW
только после этого Math::Clipper собрался
п.с. до этого ругался на, установил до переустановки MinGW
cpan Module::Build::WithXSpp
и
cpan ExtUtils::CppGuess
Last edited by Nikolya (2013-04-07 18:11:05)
Offline
#3427 2013-04-23 12:44:12
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: Конвертер OSM -> MP
День добрый!
FreeBSD, perl-5.12.4_4
Понадобилось сделать карту, скачал osm-файл с geofabrik.de, обновил скрипт из trunk до 754 и :
---| OSM -> MP converter 1.03-754 (c) 2008-2013 liosha, xliosha@gmail.com
Loading configuration...
Unknown condition: only_rel at cfg/osm2mp.pl line 159Попробовал на на одном из предыдущем :
---| OSM -> MP converter 1.01_2 (c) 2008-2012 liosha, xliosha@gmail.com
Loading configuration...
Loading OSM data from file osm/iceland.osm...
Can't locate object method "merge_multipolygons" via package "OSM::Hash" at cfg/osm2mp.pl line 265.Пришлось использовать старую версию 90b.
С уважением, Сергей.
Offline
#3428 2013-04-24 08:14:35
- RomanEM
- Member
- Registered: 2010-12-09
- Posts: 75
Re: Конвертер OSM -> MP
Добрый день!
Случайно заметил, что несколько объектов стали ограничиваться не береговой линией, а неким тегом
leisure = marina
http://www.openstreetmap.org/browse/way/116915725
Ещё три месяца назад всё было нормально...
Конвертер эту хрень просто отбрасывает...
Вопрос, коненчо филосовский, но как быть?
Offline
#3429 2013-04-24 08:55:59
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертер OSM -> MP
Добрый день!
Случайно заметил, что несколько объектов стали ограничиваться не береговой линией, а неким тегом
leisure = marinahttp://www.openstreetmap.org/browse/way/116915725
Ещё три месяца назад всё было нормально...Конвертер эту хрень просто отбрасывает...
Вопрос, коненчо филосовский, но как быть?
Конфигурация для какого навигатора?
Offline
#3430 2013-04-24 09:27:58
- RomanEM
- Member
- Registered: 2010-12-09
- Posts: 75
Re: Конвертер OSM -> MP
Конфигурация для какого навигатора?
Конфигурация по умолчанию.
В итоге карта на Гармине используется.
Offline
#3431 2013-05-02 06:57:14
- Paravoz
- Member
- From: Ярославль
- Registered: 2009-12-01
- Posts: 728
Re: Конвертер OSM -> MP
Добрый день.
После переустановки системы, и как следствие, Перла конвертор начал вываливаться в ошибку:
Loading necessary ways... Can't use string ("56.9945126") as an ARRAY ref while
"strict refs" in use at C:/Perl/site/lib/Math/Polygon/Tree.pm line 351, <IN> lin
e 5586874.Перл версия - 5.16.3 1603
Пакеты вроде все установлены.
Подскажите пожалуйста где копать
Offline
#3432 2013-05-02 08:23:11
- Kostik
- Member

- From: Moscow
- Registered: 2011-01-02
- Posts: 2,114
Re: Конвертер OSM -> MP
где копать
cpan Math:Polygon:Tree
Offline
#3433 2013-05-02 17:49:23
- Paravoz
- Member
- From: Ярославль
- Registered: 2009-12-01
- Posts: 728
Re: Конвертер OSM -> MP
Да вроде проверил - все установлено
Offline
#3434 2013-05-02 18:01:19
- Kostik
- Member

- From: Moscow
- Registered: 2011-01-02
- Posts: 2,114
Re: Конвертер OSM -> MP
все установлено
Math:Polygon:Tree какой версии?
Описанную выше команду нужно было выполнить из командной строки.
Offline
#3435 2013-05-02 18:23:56
- Paravoz
- Member
- From: Ярославль
- Registered: 2009-12-01
- Posts: 728
Re: Конвертер OSM -> MP
Я понял, вот что выдает:
C:\Users\Денис>cpan Math:Polygon:Tree
Set up gcc environment - 3.4.5 (mingw-vista special r3)
CPAN: Term::ANSIColor loaded ok (v4.02)
CPAN: Storable loaded ok (v2.34)
Reading 'C:\Perl\cpan\Metadata'
Database was generated on Wed, 01 May 2013 12:29:02 GMT
CPAN: Module::CoreList loaded ok (v2.80)
Math::Polygon::Tree is up to date (0.068).Offline
#3436 2013-05-03 10:37:46
- Kostik
- Member

- From: Moscow
- Registered: 2011-01-02
- Posts: 2,114
Re: Конвертер OSM -> MP
Написал небольшую инструкцию по установке с нуля на 64бит операционной системе.
Ставим osm2mp и getbound, для этого нужно установить TortoiseSVN и дать от администратора через командную строку команду:
svn checkout http://osm2mp.googlecode.com/svn/trunk/ osm2mp
svn checkout http://osm-getbound.googlecode.com/svn/ osm2mp/getboundСтавим ActivePerl 5.16.3.1603 (я ставил 64бит версию)
от администратора через командную строку выполняем по порядку команды:
cpan Config:Std
cpan CPAN
cpan Template
cpan Inline::MakeMakerВ первый раз на вопрос Do you want to install Inline::C? [y] нажал Enter, потом повторно запустил и набрал n и нажал Enter.
принудительно ставим Inline::C через ключ --force, иначе не соберутся Math::Geometry::Planar::GPC::Polygon и Math::Polygon::Tree
ppm install Inline::C --forcecpan List::Util
cpan Getopt::Long
cpan YAML
cpan YAML::Any
cpan YAML::XS
cpan Encode::Locale
cpan List::MoreUtils
cpan Math::Polygon
cpan Math::Geometry::Planar::GPC::Polygon
cpan Math::Polygon::Tree
cpan Tree::R
cpan Geo::Openstreetmap::Parser
cpan Geo::Parse::PolishFormat
cpan Data::Dump
cpan Text::Unidecode
cpan PerlIO::via::Unidecode
cpan File::Slurp
cpan Carp
cpan Log::Any
cpan Log::Any::AdapterЧтобы поставился Math::Clipper нужны дополнительные телодвижения, во первых из папки C:\Perl64\site\lib\auto\MinGW\bin нужно в папку C:\Perl64\site\bin скопировать dll`ки:
libgcc_s_sjlj-1.dll, libstdc++-6.dll или прописать папку C:\Perl64\site\lib\auto\MinGW\bin в PATH в винде.
и установить ещё несколько необходимых пакетов для сборки Math::Clipper
cpan Module::Build::WithXSpp
cpan ExtUtils::CppGuess
cpan ExtUtils::Typemaps::Default
cpan Test::Deepcpan Math::Clipperпроверяем работу:
perl osm2mp/osm2mp.pl
perl osm2mp/getbound/trunk/getbound.plLast edited by Kostik (2013-05-03 13:14:33)
Offline
#3437 2013-05-03 14:44:29
- Paspartu
- Member
- From: Владивосток
- Registered: 2011-03-12
- Posts: 318
Re: Конвертер OSM -> MP
Странно, у меня windows 8 64 bit, но таких сложных телодвижений не помню.
Offline
#3438 2013-05-03 20:35:00
- Kostik
- Member

- From: Moscow
- Registered: 2011-01-02
- Posts: 2,114
Re: Конвертер OSM -> MP
Paspartu А в чем сложность? Если не нужен getbound так всё довольно просто, на wiki есть инструкции.
Offline
#3439 2013-05-06 13:34:33
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
A в каком состоянии у нас сейчас поддержка БД как источника данных (PostgreSQL, sqlite, spatialite, ...) ? Уже есть с чем экспериментировать?
Last edited by akks (2013-05-06 13:36:48)
Offline
#3440 2013-05-06 13:40:25
- liosha
- Member

- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
A в каком состоянии у нас сейчас поддержка БД как источника данных (sqlite, spatialite, ...) ?
Всё в том же самом: есть кривая пре-альфа версия интерфейса для плагина.
http://forum.openstreetmap.org/viewtopi … 75#p305675
Самим плагином я не слышал чтобы кто-то занимался.
Offline
#3441 2013-05-06 14:22:39
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
Всё в том же самом: есть кривая пре-альфа версия интерфейса для плагина.
http://forum.openstreetmap.org/viewtopi … 75#p305675
Самим плагином я не слышал чтобы кто-то занимался.
Он же должен быть на перле, кто же им займётся ![]()
Вряд ли кто даже догадается, что из этого http://code.google.com/p/osm2mp/source/ … OSM.pm#238 - интерфейс...
Last edited by akks (2013-05-06 14:24:25)
Offline
#3442 2013-05-06 14:23:31
- liosha
- Member

- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
кто же им займётся
Я не в курсе
Offline
#3443 2013-05-06 14:26:32
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
Какие методы у какого класса надо дописать? (их там что-то очень много)
(да и на классы это не очень похоже... и параметры у методов по принципу my ($self, $fh, %opt) = @_ - это жесть даже для плюсовиков
)
Last edited by akks (2013-05-06 14:28:42)
Offline
#3444 2013-05-06 14:32:01
- liosha
- Member

- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Какие методы у какого класса надо дописать? (их там что-то очень много)
Все методы из OSM::Hash где-то используются.
На самом деле это просто вынесенные в отдельный модуль обращения ко внутреннему хранилищу, без изменения логики. Если есть идеи, как упростить - welcome.
(да и на классы это не очень похоже...)
Угу, если хочется переделать на Moose-style - тоже welcome ![]()
Offline
#3445 2013-05-06 14:46:21
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
akks wrote:(да и на классы это не очень похоже...)
Угу, если хочется переделать на Moose-style - тоже welcome
Там ещё забористее, пусть уж как сейчас ![]()
akks wrote:Какие методы у какого класса надо дописать? (их там что-то очень много)
Все методы из OSM::Hash где-то используются.
На самом деле это просто вынесенные в отдельный модуль обращения ко внутреннему хранилищу, без изменения логики. Если есть идеи, как упростить - welcome.
То есть, OSM - это само хранилище данных (с функцией чтения в память - load? ), a OSM::Hash - методы доступа к загруженным и, самое, страшное, предобработанным данным? И надо переписать методы OSM::Hash, но так, чтобы они возвращали всё как раньше?
Last edited by akks (2013-05-06 14:46:40)
Offline
#3446 2013-05-06 15:12:59
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
Больше всего пугают вызовы set_tags и особенно set_latlon не только при чтении файла, но и потом - read-only хранилище этого делать всяко не сможет, на диск писать - может затормозиться в разы, а кэшировать (кроме релейшенов, разве что) - жестковато (разве что там единичные объекты изменяются)... Что-то с fix_close_nodes надо придумывать. Можно его на этапе предобработки делать, как _merge_multipolygon ?
Хотелось бы как-то отделить чтение файла (с предобработкой) от использования хранилища (в основном - iterate_*, get_lonlat, единичные get_tags).
И есть нехорошие опасения, что при вытаскивании точек по ID из БД производительность дико просядет... Там же вызовов get_lonlat(...) вагон и маленькая тележка... Точки совсем вразброс достаются? Кэш на пару миллионов точек с ключом ID (LRU?) может помочь?
Last edited by akks (2013-05-06 15:32:09)
Offline
#3447 2013-05-06 15:32:16
- liosha
- Member

- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
То есть, OSM - это само хранилище данных (с функцией чтения в память - load? ), a OSM::Hash - методы доступа к загруженным и, самое, страшное, предобработанным данным?
Предполагалось, что OSM - это всё связанное с чтением и хранением, a OSM::Hash - [один из возможных] storage engine.
Но сейчас это разделение не доделано (и поэтому их взаимодействие пока сделано через ж**у).
И надо переписать методы OSM::Hash, но так, чтобы они возвращали всё как раньше?
Нет, нужно сбоку сделать что-то типа OSM::Sqlite, который реализует тот же функционал, что и OSM::Hash.
Больше всего пугают вызовы set_tags и особенно set_latlon не только при чтении файла, но и потом - read-only хранилище этого делать всяко не сможет, на диск писать - может затормозиться в разы, а кэшировать - жестковато (разве что там единичные объекты изменяются)...
Да, я знаю, что это плохо ![]()
Но это единичные объекты, поэтому для начала кеш спасёт, а потом нужно переделать.
Offline
#3448 2013-05-06 15:36:35
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
Нет, нужно сбоку сделать что-то типа OSM::Sqlite, который реализует тот же функционал, что и OSM::Hash.
Да, что нужен другой класс - это понятно. Только там половина функционала для заполнения хранилища, его переписывать тоскливо...
А при чтении osm кроме пропуска тегов и склеивания мультиполигонов в что-нибудь происходит?
Да и сама склейка мультиполигонов - то ещё развлечение, со стороннего-то формата данных... Их, видимо, тоже надо заранее целиком грузить в память без изменения алгоритма, вместе с релейшенами.
Last edited by akks (2013-05-06 15:46:10)
Offline
#3449 2013-05-06 15:40:14
- liosha
- Member

- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Теоретически можно обойтись и без заполнения, а подсовывать готовое. Но опять же: сейчас для этого ничего не готово, нужно пилить сам конвертер.
Offline
#3450 2013-05-06 15:59:34
- akks
- Member
- From: Ufa
- Registered: 2010-06-11
- Posts: 1,728
Re: Конвертер OSM -> MP
В общем, видимо всё упрётся в вопрос структуры базы - если она не заточена под конвертер, а имеет какой-то общий вид
https://www.gaia-gis.it/fossil/spatiali … te_osm_raw
вытаскивать из неё обработанные объекты нереально. mpoly хотя бы немного, а вот chains - они же сожрут всю память, нет?
Хотя, наверное, это теги и координаты сжирают память. Может, только их динамически тащить из базы (c LRU кэшами), а всё остальное грузить как раньше, только из таблиц?
И боюсь, что пилить конвертер тут может только один человек ![]()
Last edited by akks (2013-05-06 16:01:07)
Offline