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

Т.е. смысл моей просьбы:
сохранить адресную информацию для полигонов типа Здание (building) путём применения к ним после строки 1031 куска кода стр. стр. 2238 - 2263

только как это правильно сделать, я ни наю.

Не, мапедит говорит, что типа к полигонам 0x13 адрес не прилепливается.

neutron, адресация для домов у меня давно сделана и работает.
Как конкретно ты конвертируешь? Ключ --navitel не забыл?

А я никак не конвертирую… Я готовый скачал… Щас затестим с --навителом

Сделал, чтобы номера шоссе вытаскивались из релейшенов.
Если где будут двоиться (как М5 возле Пензы) - значит, в разных местах ref задан в разных алфавитах.

Вроде бы должен был вылечиться баг с номерами автобусов, но сейчас проверить негде.

UPD
Добавил поддержку релейшенов street - из них берётся имя улицы для домов.

liosha, тут в теме “Ограничения на поворот”

Calibrator, не конвертятся.
Теоретически можно, но их всё равно поймёт только гармин.

А как тогда правильно запрещать разворот как в данном случае?

по синим стрелкам движение разрешено, по красной - запрет разворота.
Может сделать так, что бы при конвертации запрещался поворот через точку (обведена зеленым)? Или сразу ставить не запрет разворота а запрет поворота? Я, в принципе, так и сделал. Хотя это и не соответствует действительности, т.к. знак стоит именно запрещающий разворот и перемычка между направлениями около 2-3 м всего…

Этот случай как раз простой - можно запретить поворот налево в этой точке. Бывают случаи гораздо хитрее…

Конвертером поддерживается тег is_in:region? А то у нас в ленобласти много НП с таким тэгом…

только для городов (place=*)

Сплиттер падает :frowning: Строчку падения, к сожалению, пока получить не удалось - нечем просмотреть столь большой файл. Что-нибудь можно сделать?

Initialising grid...          8026265 nodes -> 1155 cells
Calculating...                +++++++.+..+.++........ 12 tiles
Pass #1
Reserving memory...           12 tiles
Loading nodes...              Bit::Vector::Bit_On(): index out of range at D:\Pr
ojects\osm2mp\splitter.pl line 284, <IN> line 16891970.

Ivan Komarov, там надо $maxnodes и $maxways до современных реалий повысить :slight_smile:

Спасибо, процесс двинулся дальше. Чувствую, правда, подбирать их придется, чтобы osm2mp потом не подавился слишком большими тайлами.
Upd: сейчас узлов ~70010^6, линий - 5310^6

Ivan Komarov, на размер тайла влияет $max_tile_nodes, он же --maxnodes из командной строки.
А $maxnodes etc определяют управляют только резервированием памяти

Спасибо, разобрался.

Для всей всей России выставил


my $MAXNODES    = 720_000_000;
my $MAXWAYS     =  60_000_000;

поделил, правда несколько часов работал

А это не важно - для всей, или только для одной деревни :wink: Вопрос лишь в том, попадутся ли в обрабатываемую область недавно поставленные узлы.

Скачал очередные карты и появились вопросы:

Почему города, даже небольшие, в частности, райцентры, пригороды Москвы и т.п. обозначаются типом 0200h - “Мегаполис (5-10 млн.)”?

Почему массово дублируются города. Даже крупные, например, есть 2 Симферополя - один на площади, а другой - на железнодорожном вокзале?

Еще обнаружил конструкцию:

; WayID = 29102760
; building=yes
[POLYGON]
Type=0x13
Label=30
HouseNumber=30
StreetDesc=Ярцевская улица
CityName=Москва
RegionName=Москва город
CountryName=Россия (OSM)
EntryPoint=(55.7405521,37.4165066),Техносила
Data0=(55.74061,37.4163756), (55.7400509,37.4154994), (55.7400456,37.4154912), (55.7398015,37.4160129), (55.7399261,37.4161967), (55.7400933,37.4158392), (55.7402306,37.4160419), (55.7400587,37.4164093), (55.7402827,37.41674), (55.7402409,37.4168294), (55.7403249,37.4169534), (55.7403543,37.4168905), (55.7403734,37.4169107), (55.7404576,37.4167204), (55.7405521,37.4165066), (55.74061,37.4163756)
[END]

здесь интересна строчка с EntryPoint.
Во-первых, в ряде случаев после запятой вообще отсутствует что-либо.
Но самое интересное, что в ТЕКСТОВОМ файле текстовая константа не заключена в кавычки и при этом НЕ ЯВЛЯЕТСЯ единственной константой в строке, будучи отделенной только символами, которые могут встретиться в самой строке. В данном случае - запятой.
Кстати, по общим правилам после запятой ДОПУСТИМЫМ но НЕОБЯЗАТЕЛЬНЫМ символом является пробел. И в этом случае размещение текстовой константы после запятой просто недопустимо, т.к. запятая НЕ может являться разделителем для строки (максимум - для слова, не содержащего других разделителей, например, пробелов).

Потому что все city преобразовываются в 0x02.
И собственно этот тип вообще ни на что не влияет, это один из атавизмов.

http://www.openstreetmap.org/browse/node/252176252
http://www.openstreetmap.org/browse/node/337698647
Сколько есть, столько и конвертнулось

EntryPoint - это подъезды для навитела.
Что с ними не так и в чём вопрос, я не понял :slight_smile: