You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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

RomanEM wrote:

Добрый день!

Случайно заметил, что несколько объектов стали  ограничиваться не береговой линией, а неким тегом
    leisure = marina

http://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

dimuzz wrote:

Конфигурация для какого навигатора?

Конфигурация по умолчанию.
В итоге карта на Гармине используется.

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

Paravoz wrote:

где копать

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

Paravoz wrote:

все установлено

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 --force
cpan 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::Deep
cpan Math::Clipper

проверяем работу:

perl osm2mp/osm2mp.pl
perl osm2mp/getbound/trunk/getbound.pl

Last 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

akks wrote:

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

liosha wrote:

Всё в том же самом: есть кривая пре-альфа версия интерфейса для плагина.
http://forum.openstreetmap.org/viewtopi … 75#p305675
Самим плагином я не слышал чтобы кто-то занимался.

Он же должен  быть на перле, кто же им займётся smile
Вряд ли кто даже догадается, что из этого 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

akks wrote:

кто же им займётся

Я не в курсе

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) = @_ - это жесть даже для плюсовиков smile )

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

akks wrote:

Какие методы у какого класса надо дописать? (их там что-то очень много)

Все методы из OSM::Hash где-то используются.

На самом деле это просто вынесенные в отдельный модуль обращения ко внутреннему хранилищу, без изменения логики. Если есть идеи, как упростить - welcome.

akks wrote:

(да и на классы это не очень похоже...)

Угу, если хочется переделать на Moose-style - тоже welcome big_smile

Offline

#3445 2013-05-06 14:46:21

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

Re: Конвертер OSM -> MP

liosha wrote:
akks wrote:

(да и на классы это не очень похоже...)

Угу, если хочется переделать на Moose-style - тоже welcome big_smile

Там ещё забористее, пусть уж как сейчас smile

liosha wrote:
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

akks wrote:

То есть, OSM - это само хранилище данных (с функцией чтения в память - load? ), a OSM::Hash - методы доступа к загруженным и, самое, страшное, предобработанным данным?

Предполагалось, что OSM - это всё связанное с чтением и хранением, a OSM::Hash - [один из возможных] storage engine.
Но сейчас это разделение не доделано (и поэтому их взаимодействие пока сделано через ж**у).

akks wrote:

И надо переписать методы OSM::Hash, но так, чтобы они возвращали всё как раньше?

Нет, нужно сбоку сделать что-то типа OSM::Sqlite, который реализует тот же функционал, что и OSM::Hash.

akks wrote:

Больше всего пугают вызовы set_tags и особенно set_latlon не только при чтении файла, но и потом - read-only хранилище этого делать всяко не сможет, на диск писать - может затормозиться в разы, а кэшировать - жестковато (разве что там единичные объекты изменяются)...

Да, я знаю, что это плохо big_smile
Но это единичные объекты, поэтому для начала кеш спасёт, а потом нужно переделать.

Offline

#3448 2013-05-06 15:36:35

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

Re: Конвертер OSM -> MP

liosha wrote:

Нет, нужно сбоку сделать что-то типа 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 кэшами), а всё остальное грузить как раньше, только из таблиц?

И боюсь, что пилить конвертер тут может только один человек smile

Last edited by akks (2013-05-06 16:01:07)

Offline

Board footer

Powered by FluxBB