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

мда, это плохо… кушать-то он её кушает, но с ней возни больше.
отстал о жизни мапедит…

а про формат маппера лучше в самом маппере смотреть:
http://cgpsmapper.com/manual.htm
http://gpsmapsearch.com/osm/Test_img.mp

liosha,

Дык, может два варианта сделать?

дело ещё в том, что для гармина такая адресация бесполезна: там нет индексации зданий
там индексируются только участки улиц
а как я уже говорил, я ориентируюсь именно на гармин, я не использую навител/руссы/etc

поэтому первый вопрос: как для улицы определить город, к которому она относится?

Нда, посмотрел - это уже обсуждалось, только добавлять дополнительный тэг.
Чего не пойму, так если этого нет в gpsmapedit , то с его помощью не получится сделать адресный поиск для гармина? Как это вообще тогда делается?

очень даже получается
http://4pda.ru/forum/index.php?showtopic=70509&view=findpost&p=2032230
(нужно зарегистрироваться)

ó ìàïïåðà åñòü îøèáêà: R005:Maximum allowed NODID value is 1048575
ñ RoadID íàâåðíîå òî æå ñàìîå

20 ??? 0xfffff. ? ??? ??? ?? ??? “???” ?

äà, ñëåäèò
ñîáñòâåííî, âîò ïðîñòåíüêèé “ïåðåíóìåðîâûâàòåëü” :wink:

my $cnode = 1;
my %nodes;

my $croad = 1;
my %roads;

while (<>) {
    s/^RoadID=(\d+)/sprintf "RoadID=%d", reroad($1)/ie;
    s/^Nod(\d+)=(\d+),(\d+),(\d+)/sprintf "Nod$1=$2,%d,$4", renode($3)/ie;

    s/^Nod=(\d+)/sprintf "Nod=%d", renode($1)/ie;
    s/^TraffPoints=(\d+),(\d+),(\d+)/sprintf "TraffPoints=%d,%d,%d", renode($1), renode($2), renode($3)/ie;
    s/^TraffRoads=(\d+),(\d+)/sprintf "TraffRoads=%d,%d", reroad($1), reroad($2)/ie;

    print;
}

sub renode {    
    if (!$nodes{$_[0]})  {  $nodes{$_[0]} = $cnode++;  }
    return $nodes{$_[0]};
}
sub reroad {    
    if (!$roads{$_[0]})  {  $roads{$_[0]} = $croad++;  }
    return $roads{$_[0]};
}

Ok, ???. ? ??? ? ??? ??? ?? ???, ? ??? ?? ?? ??? ??? ?? ???, ? ??? ??? ? ?? ??? :wink:

Ещё один пример, как НЕ НАДО рисовать карты :confused:

Иркутск:

В список для ежедневной сборки добавлены Псков и Карелия
http://gpsmapsearch.com/osm/mp

скоро будет индексация улиц :sunglasses:
как выяснилось, ничего особо сложного там нет
используется схема
is_in=City,Region,Country
is_in=City,Country
is_in=City

единственная проблема - города, которые есть в is_in, но нет на самой карте, придётся как-то добавлять

Теперь сконвертированные карты выкладываются и адресным поиском.
Глюки есть, но пока сложно сказать, кто виноват: конвертер или маппер.
http://gpsmapsearch.com/osm/mp/

Версия 0.60
http://gpsmapsearch.com/osm/osm2mp_v060.zip

  • добавлен наконец поиск по улицам (из тега is_in)
  • добавлены опции командной строки
  • добавлен список приоритетных тегов для Label
  • разные мелкие фиксы

liosha, у тебя конкурент появился :slight_smile: http://wiki.openstreetmap.org/wiki/GroundTruth

не первый, таких конкурентов полно :slight_smile:
роутинга у него пока нет, а самые пляски как раз там начинаются

Почему бы Вам не написать Веб интерфейс к скрипту? Я чтобы его запустить загрузил на сервер, так как искать, устанавливать, допольнительные Perl модули под Windows во первых достаточно долго, во вторых совершенно недоступно для “чайника”
Ведь там нет ничего сложного: написать форму и выплянуть нужный “header”
Я бы сам написал, только совершенно подзабыл Perl, больше в последние годы PHP пользую.

Странный вопрос… Кому интересно будет, тот напишет. Я в этом смысла не вижу.

Дополнительные модули под виндой ставятся без проблем через Perl\bin\ppm.bat

Версия 0.65
http://gpsmapsearch.com/osm/osm2mp_v065.zip

вроде бы работает достаточно стабильно

  • добавлена обрезка по прямоугольнику
  • добавлена адресация POI
  • полностью переделана обработка запретов
  • ну и по мелочи…

начал делать обработку береговой линии
с Онежским озером уже справляется :sunglasses:
http://gpsmapsearch.com/osm/mp/karelia.rar