Может быть и мало. Система 64х-битная?
в общем разобрался, если кто столкнется с таким же. решил проблему (вроде уже сталкивался, но запамятовал )))) после слияния двух файлов ОСМ нужно было по файлу ОСМ пройтись osmsort.pl (osmsort.pl RU-KDA.test.osm > RU-KDA.osm)
после osmsort.pl , скрипт osm2mp.pl успешно конвертнул ОСМ в МР
посмотрите пжлт почему дороги с ОДНИМ тегом highway = service нормально конвертируются в МР, а если ещё присутствуют теги service = parking_aisle и surface = asphalt, то в МР вообще дорога не попадает
файл Russia-KDA-osm-mp.zip с рамблера
http://www.openstreetmap.org/?lat=45.00993&lon=39.08018&zoom=17&layers=M
Это навителовский исходник. Из них service = parking_aisle убраны.
В гарминовских такого исключения нет.
убраны или нет. но вместе с ним пропадает тег highway = service, что означает убраны и дворовые проезды
выше написано. даже с картинками
лично для себя дропнул теги service = parking_aisle из файла ОСМ, конвертнудись и дворовые проезды highway = service
Вовсе не означет.
Дворовые проезды не обозначают комбинацией тегов
highway=service
service=parking_aisle
так обозначают проезды на парковках, у больших гипермаркетов например
http://wiki.openstreetmap.org/wiki/RU:Tag:highway%3Dservice
Fortress я в курсе что не обозначают. но кто то уже обозначил же. и после конвертера из за этих тегов пропали внутри дворовые проезды
я что плохо объясняю?
Nikolya, в таком случае, нужно удалить тег service=parking_aisle с дворовых проездов.
Fortress ну сугубо для себя и слитого дампа с гис лаба дропнул теги service=parking_aisle , обсолютно все. сконвертились все внутри дворовые проезды
а вот искать по всему краю в онлайн, сорри нет времени. запустите БОТа и то так то… нужны какие то правила… очень тонко настроить
в общем удалить теги service=parking_aisle если они не входят в паковочную территорию и соответственно не обозначен тегом amenity=parking иль ещё каким подходящим
кста а проезды с таким тегом service=parking_aisle вообще конвертятся? может проще конфиг поковырять у конвертора
проезды с таким тегом service=parking_aisle вообще конвертятся? может проще конфиг поковырять у конвертора
Nikolya, service=parking_aisle убраны из конвертации именно для того, чтобы не загромождать выходную карту. Если кто-то неправильно трактует тег, это проблема отнюдь не рендера.
service=parking_aisle убраны из конвертации
да мне этот тег и не нужен. вы прочтите ВНИМАТЕЛЬНО!!! мне тужно чтоб дворовые проезды не резались конвертером, а именно попадал тег highway=service
dimuzz и смысл вашего поста? причем тут вообще рендер? мне как конечному пользователю интересна карта для навигатора
если конвертируют карты таким образом что дворовые проезды удаляются (не попадают), а так же проезды межпарковочных мест, вблизи тех же мегамагазинов. то тег service=parking_aisle теряет свою ценность, удаляйте его до конвертирования. иначе … навигации междворовой и парковочной кирдык )))
картинки же есть, до и после. специально для особенных
п.п.с. мое дело было подметить, рассказать и т.д., я дефолтными данными не пользуюсь, все равно под себя редактирую и добавляю. ваше право оставить как есть либо изменить
Nikolya, улыбнул
liosha
Помоги пожалуйста настроить значение Floors “по-умолчанию” для объектов, у которых отсутствуют показатели высотности в базе. Уж очень глупо выглядят пятиэтажные гаражи в ситигиде
В файл cfg добавил
[Values]
...
default_floors: 1
В конфиге полигонов
…
action:
- action: write_polygon
type: 0x13
Label: %house
Floors: !!perl/code |-
{
my $tags = shift()->{tag};
my $levels = extract_number($tags->{‘building:levels’});
return $levels if $levels;
$levels = int(extract_number($tags->{‘building:height’} || $tags->{‘height’} || 0) / 3);
return $levels || undef;
return $levels || $values->{default_floors} || undef;
}
- action: address_poi
В результирующем полише Floors отсутствует.
А так работает
return $levels || 0;
или
return $levels || 1;
Спасибо!
liosha
Предлагаем патч для конвертера osm2mp
Суть проблемы: в Украине (и в других местах) “привязываение” домов к улице задано с помощью релейшена. При этом название улицы присутствует в релейшене только на украинском языке в теге name. Названия улицы на других языках есть только в тегах отрезков улицы, входящих в релейшен улицы.
При конвертации в “польский” формат (при создании карты на языке, отличающемся от того, что используется в name, например, на русском) происходит следующее: в базе адресного поиска возникают вместо одной улицы две: на русском и на украинском. При этом поиск домов возможен только по украинскому названию улицы (потому что оно записано в name в релейшене). То есть, поиск работает неправильно.
Предлагается брать названия улиц из тегов веев улиц, а не только из тегов релейшена.
Вот что предлагается исправить в коде, начиная со строчки №410. (код правил товарищ Larry0ua, а я тестировал)
if ( $flags->{street_relations} ) {
for my $type ( qw{ street associatedStreet } ) {
my $list = $relations->{$type};
next if !$list;
while ( my ($relation_id, $members) = each %$list ) {
my $street_name;
for my $member ( @$members ) {
next if !( $member->{role} eq 'street' );
next if !( $member->{type} eq 'way' );
$street_name = name_from_list( 'street', $waytag->{$member->{ref}} );
next if !$street_name;
last;
}
$street_name = name_from_list( 'street', $reltag->{$relation_id} ) if !$street_name;
next if !$street_name;
for my $member ( @$members ) {
next if !( $member->{role} ~~ [ 'house', 'address' ] );
$street{"$member->{type}:$member->{ref}"} = $street_name;
}
}
}
printf STDERR " %d houses with associated street\n", scalar keys %street;
}
Вот ссылка на переделанный конвертор: http://sendfile.su/681255
return $levels || $values->{default_floors} || undef;
Сейчас кодовые action-ы ещё не доделаны, поэтому $values туда не пробрасывается, и даже ошибки не обрабатываются. Пока можно оставить $levels || 1.
При этом название улицы присутствует в релейшене только на украинском языке в теге name. Названия улицы на других языках есть только в тегах отрезков улицы, входящих в релейшен улицы.
Что-то мне кажется, что так неправильно. Почему не вынести name:{lang} в релейшен?
Что-то мне кажется, что так неправильно. Почему не вынести name:{lang} в релейшен?
Да, это кажется нелогичным. Но сейчас сделано именно так. Если прописывать name:{lang} в теги релейшена, будет дублирование информации, поскольку, эти name:{lang} уже присутствуют в тегах веев. А если убрать name:{lang} из тегов веев улиц, то пропадут названия улиц из большинства отрендеренных карт.
В украинской ветке форума уже есть мнение, что названия улиц надо писать только в тегах релейшена, а в тегах веев не писать вообще. Увы, эту прекрасную идею пока не поддерживают ни рендеры, ни софт по конвертации, ни большинство участников OSM.
А, кстати, есть ещё проблема: если в тегах домика задано addr:street на украинском языке, то даже если рядом есть вей с таким же названием в name и тегом name:ru, то всё равно конвертор пишет только то, что прописано в addr:street, игнорируя name:ru в тегах веев и игнорируя релейшены улиц.
Проблема не связана с патчем. В оригинальной версии то же самое.
Да, это кажется нелогичным. Но сейчас сделано именно так. … В украинской ветке форума уже есть мнение, что названия улиц надо писать только в тегах релейшена, а в тегах веев не писать вообще. Увы, эту прекрасную идею пока не поддерживают ни рендеры, ни софт по конвертации, ни большинство участников OSM.
Вот поэтому и будет лучше сделать поддержку языковых тегов в самих релейшенах, - тогда будет повод их расставлять
Ну, пока этого нет, и будет нескоро. Так что пусть названия улиц берутся из тегов веев, входящих в релейшен улицы.
Кроме того, с предлагаемым патчем конвертор сможет брать названия улиц и из тегов веев, и из тегов релейшена.
Так что пусть названия улиц берутся из тегов веев, входящих в релейшен улицы
Нет, это очень плохая идея. Имхо, конвертация в конечные продукты должна способствовать хорошей структуризации данных, а не их засиранию
Я подумаю, как это лучше будет сделать.
Пока сделал, чтобы на дорогу ставилось название из релейшена.