You are not logged in.
- Topics: Active | Unanswered
Announcement
#51 2008-05-25 06:17:43
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
дык вроде как в осм круги и полагается рисовать кольцами, не разрезая.
Offline
#52 2008-05-25 18:11:54
- red_rebel
- Member
- Registered: 2008-03-24
- Posts: 8
Re: Конвертер OSM -> MP
2 liosha.
Нда. И в самом деле удивительная улица... Она рисовалась в потлахе 0.5 версии. А не в этой ли версии был глюк, когда создавались дубликаты объектов? Вполне возможно, что эта улица получилась объединением из двух версий одной улицы. А может и просто неудачно нарисовали...P.S. Кстати, а ведь Red_rebel делал конвертер и у него уже была автогенерация роутингового графа. Может стоит выйти на него ради обмена опытом?
Да была такая шутка у потлаха - дублировал дороги. Я это замечал только по енпонятно откуда взявшимся роутинговым узлам посередине дороги. Потом шел в ЖОСМ и правил.
У меня конвертор написан на "остором-С". Таскает квадратиками данные с ОСМа и сохраняет в кеше. Пока внешнего настроечного файла нет и по слоям не бьет.
Offline
#53 2008-05-25 21:15:56
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
дык вроде как в осм круги и полагается рисовать кольцами, не разрезая.
Рисовать - да, но на кругах (обычно) больше одного въезда-выезда, поэтому это не проблема.
Offline
#54 2008-05-26 10:39:57
- AkMeR
- Member
- From: Samara
- Registered: 2008-02-27
- Posts: 1,158
Re: Конвертер OSM -> MP
Добавим в конфиг? Домики:
building yes p 0x13 0 0
А еще изменить. Я, совместно с домиками, рисую границы районов...
landuse commercial p 0x08 1 2
landuse industrial p 0x0c 1 2
landuse retail p 0x08 1 2
landuse residential p 0x02 1 2
Offline
#55 2008-05-26 18:32:29
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Добавим в конфиг? Домики:
...
А еще изменить. Я, совместно с домиками, рисую границы районов...
добавил.
сделал ещё поиск на самопересечения, пока такие дороги просто не включаются в граф.
позже буду думать, как их порезать
кстати, в потлахе можно найти объект по id?
; Road! WayID = 23397249
; highway=primary
; FIX: this line should be broken at 2
; ERROR: WayID=23397249 seems to have self-crosses or dupes
[POLYLINE]
Type=0x02
EndLevel=3
Label=Обводное шоссе
DirIndicator=1
Data0=.....
; RoadID=1668
; RouteParams=3,4,1,0,0,0,0,0,0,0,0,0
; Nod1=0,839
; Nod2=1,3275
; Nod3=2,3746
; Nod4=3,3275
; Nod5=15,921
[END]
Offline
#56 2008-05-26 18:54:33
- MBNEWS
- Member
- Registered: 2008-05-26
- Posts: 30
Re: Конвертер OSM -> MP
и кстати, если кому-то другие области нужно в MP, кроме Москвы, скажите нужный bbox
Можно еще Мурманскую область: 68.887109375, 33.04221875 - 69.062890625, 33.39378125
Offline
#57 2008-05-26 19:31:27
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Можно еще Мурманскую область: 68.887109375, 33.04221875 - 69.062890625, 33.39378125
добавил в список
теперь будет делаться попытка компиляции с роутингом (personal-версией маппера).
Offline
#58 2008-05-26 20:38:10
- MBNEWS
- Member
- Registered: 2008-05-26
- Posts: 30
Re: Конвертер OSM -> MP
MBNEWS wrote:Можно еще Мурманскую область: 68.887109375, 33.04221875 - 69.062890625, 33.39378125
добавил в список
теперь будет делаться попытка компиляции с роутингом (personal-версией маппера).
Спасибо!
Offline
#59 2008-05-26 21:56:10
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
сделал ещё поиск на самопересечения, пока такие дороги просто не включаются в граф.
позже буду думать, как их порезать
Хмм. Я вижу проблему только в кольцах (start_node=end_node), все остальные вроде как
несложно порезать.
Вот бы еще автоматически объединить два way, касающихся в нероутинговом ноде и с совпадающими тэгами.
кстати, в потлахе можно найти объект по id?
Было бы неплохо, но думаю что нет.
Я пользуюсь
./get_ways_by_list 2>/dev/null
и редактирую в JOSM
#!/bin/bash
if [ $# -ne 1 ]
then
echo Usage: $0 waylist
exit 1
fi
waylist=$1
if [ ! -f ${waylist} ]
then
echo can not open waylist=${waylist}
exit 1
fi
echo '<?xml version="1.0" encoding="UTF-8"?>'
echo '<osm version="0.5" generator="get_ways_by_list">'
for way_id in `cat ${waylist}`
do
rm -f way$$
curl "http://api.openstreetmap.org/api/0.5/way/${way_id}" |\
awk '{if ($1 != "<?xml" && $1 != "<osm" && $1 != "</osm>") print}' | tee way$$
awk -F\" '{if ($1 == " <nd ref=") system("curl http://api.openstreetmap.org/api/0.5/node/"$2)}' way$$ |\
awk '{if ($1 != "<?xml" && $1 != "<osm" && $1 != "</osm>") print}'
rm -f way$$
done
echo '</osm>'
Offline
#60 2008-05-26 21:57:25
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
теперь будет делаться попытка компиляции с роутингом (personal-версией маппера).
Так и до поиска с индексом скоро доберемся
Offline
#61 2008-05-27 18:57:01
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Добавил поиск и фильтрацию дупов точек, одноточечных линий и двухточечных полигонов
Все найденные ошибки теперь grep-ятся в файл errors.log
; ERROR: WayID=22745318 has dupes
; ERROR: WayID=22771488 has self-intersections
; ERROR: WayID=22873079 area has too few nodes
; ERROR: WayID=22984864 has dupes
Offline
#62 2008-05-28 08:14:59
- akaDamian
- Member
- Registered: 2007-11-07
- Posts: 6
Re: Конвертер OSM -> MP
надо бы как в osmxapi - minlon,minlat,maxlon,maxlat
Конвертер работает не с файлами .osm, а с живой базой, с которой скачивает данные? Или просто формат сделан похожим?
Просто если это живая база, то для того, чтобы запустить конвертер на сервере для генерации карт в автоматическом режиме, то надо будет:
- либо обеспечить устойчивую работу основного сервера OSM, с которого все время будут качаться гигабайты данных (что вряд ли понравится его администраторам),
- либо поднимать копию базы на сервере с конвертером, через osmosis заливать туда diff-файлы и работать с ней.
Offline
#63 2008-05-28 08:49:03
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Конвертер работает не с файлами .osm, а с живой базой, с которой скачивает данные? Или просто формат сделан похожим?
конвертер работает с файлом OSM, но есть отдельный скрипт, который по крону раз в сутки тянет текущие данные по osmxapi, конвертирует и выкладывает на ftp. вот ему-то bbox и нужен
сейчас всё это запускается на моём домашнем компе.
москва в .osm весит примерно 27 мегов, всё остальное ещё меньше, так что о гигабайтах речи не идёт
Offline
#64 2008-05-28 09:14:56
- akaDamian
- Member
- Registered: 2007-11-07
- Posts: 6
Re: Конвертер OSM -> MP
конвертер работает с файлом OSM, но есть отдельный скрипт, который по крону раз в сутки тянет текущие данные по osmxapi, конвертирует и выкладывает на ftp. вот ему-то bbox и нужен
Понятно. Тут OSMXAPI используется просто для ускорения процесса, чтобы не резать planet.osm, выделяя из него необходимые участки?
москва в .osm весит примерно 27 мегов, всё остальное ещё меньше, так что о гигабайтах речи не идёт
Это если говорить о России. А если иметь в виду использование конвертера для всех пользователей OSM, то обзорные карты по странам, плюс общая по Европе/США/и т.д., плюс карты городов и весей потянут на много. Не зря же planet.osm теперь такого размера.
Offline
#65 2008-05-28 09:39:58
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
А если иметь в виду использование конвертера для всех пользователей OSM, то обзорные карты по странам, плюс общая по Европе/США/и т.д., плюс карты городов и весей потянут на много. Не зря же planet.osm теперь такого размера.
ну, я пока так не размахивался...
сейчас сам конвертер в глубокой бете, так что результаты выкладываются только для его обкатки.
Offline
#66 2008-05-28 14:44:13
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
А если иметь в виду использование конвертера для всех пользователей OSM, то обзорные карты по странам, плюс общая по Европе/США/и т.д., плюс карты городов и весей потянут на много.
Карты Европы можно взять порезанные здесь http://download.geofabrik.de/osm/europe
Для переработки же полного planet.osm проще модифицировать osm2pgsql, а не возиться с простыми
перл-парсерами.
Не зря же planet.osm теперь такого размера.
Количество "XML мусора" там очень даже внушительно.
Offline
#67 2008-05-28 14:47:38
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
liosha wrote:надо бы как в osmxapi - minlon,minlat,maxlon,maxlat
Конвертер работает не с файлами .osm, а с живой базой, с которой скачивает данные?
По моему это живая postgis база, которая пополняется (в почти реальном времени) диффами из основной mysql базы.
Offline
#68 2008-05-28 14:52:57
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
Я поправил вчера вручную многие "разорванные" дороги, пользуясь результатами работы конвертера
Теперь самая неприятная проблема это "порезанные" без необходимости дороги, и таких очень и очень много.
Offline
#69 2008-05-28 18:53:53
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
Карты Европы можно взять порезанные здесь http://download.geofabrik.de/osm/europe
Протестировал конвертер на странах Европы
Исходный Результат Время
размер MP конвертации
Польша 130 Mb 32 Mb 1:25
Италия 199 Mb 52 Mb 2:35
Франция 393 Mb 105 Mb 5:00
Англия 948 Mb 292 Mb 10:40
машинка Athlon 2600, 1.2 Gb, WinXP
результат могу выложить, в принципе, но мапедит даже Польшу открывает 10 минут
Offline
#70 2008-05-28 19:27:14
- MBNEWS
- Member
- Registered: 2008-05-26
- Posts: 30
Re: Конвертер OSM -> MP
?????????, ???, ???????????: ?????????????? .osm ? .img ? ??????? mkgmap. ?????? ????? GPSMapEdit ? .nm2 ??? «????????».
????? ?????, ??? ???????. ?? ???????? ???. ??? ? ???????? ?? ????? ???? ??? ????? ??????????? ??? ???? ?????????
Offline
#71 2008-05-28 19:29:55
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
?????????????? .osm ? .img ? ??????? mkgmap. ?????? ????? GPSMapEdit ? .nm2 ??? «????????».
????? ?????, ??? ???????. ?? ???????? ???.??? ? ???????? ?? ????? ???? ??? ????? ??????????? ??? ???? ?????????
?) mkgmap ?? ????? ?????? ???????. ? ?? ????? ????????
?) ???? ???? ? mkgmap ? ????, ??????? ?? ????? ?????? ??????? ?? img (? ?? ????? ?????)
Offline
#72 2008-05-28 19:32:41
- MBNEWS
- Member
- Registered: 2008-05-26
- Posts: 30
Re: Конвертер OSM -> MP
MBNEWS wrote:?????????????? .osm ? .img ? ??????? mkgmap. ?????? ????? GPSMapEdit ? .nm2 ??? «????????».
????? ?????, ??? ???????. ?? ???????? ???.??? ? ???????? ?? ????? ???? ??? ????? ??????????? ??? ???? ?????????
?) mkgmap ?? ????? ?????? ???????. ? ?? ????? ????????
?) ???? ???? ? mkgmap ? ????, ??????? ?? ????? ?????? ??????? ?? img (? ?? ????? ?????)
????. ?? ????? ????, ????? ??? ????????? ?????????? ?? ?????? ???????.
P.S. ???? ??? ??????? ????? ? ?? ????? - ?? ????? ?????? ? ? ??? ???????? ???? ?????????????.
Last edited by MBNEWS (2008-05-28 19:33:48)
Offline
#73 2008-05-28 22:40:55
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
Протестировал конвертер на странах Европы
Исходный Результат Время размер MP конвертации Польша 130 Mb 32 Mb 1:25 Италия 199 Mb 52 Mb 2:35 Франция 393 Mb 105 Mb 5:00 Англия 948 Mb 292 Mb 10:40
машинка Athlon 2600, 1.2 Gb, WinXP
результат могу выложить, в принципе, но мапедит даже Польшу открывает 10 минут
Я взялся за самый большой файл:)
Германия 1.5GB 422MB 6:33.04
машинка 2xOpteron250 2.4GHz, 8 GB, Linux
Скрипту понадобилось около 2ГБ памяти
gpsmapedit падает на выходном .mp
Самодельный gpsmapedit-0.98б собранный с помощью winelib работает,
но там нет роутинга.
gpsmapedit ругается здесь
(WARNING (offset 5D5571h): Latitude value is expected. The point will be ignored.)
; NodeID =
; place=village
[POI]
Type=0x0C00
Data0=(,)
EndLevel=2
Label=Nutha
City=Y
[END]
<node id="240023524" timestamp="2008-01-19T17:06:38Z" user="OpenGeoDB Bot" lat="51.9667" lon="12">
<tag k="openGeoDB:is_in" v="Anhalt-Zerbst,Dessau,Sachsen-Anhalt,Bundesrepublik Deutschland,Europe"/>
<tag k="openGeoDB:name" v="Nutha"/>
<tag k="openGeoDB:sort_name" v="NUTHA"/>
<tag k="openGeoDB:community_identification_number" v="15151042"/>
<tag k="openGeoDB:is_in_loc_id" v="275"/>
<tag k="openGeoDB:layer" v="6"/>
<tag k="place" v="village"/>
<tag k="openGeoDB:location" v="political_structure"/>
<tag k="openGeoDB:postal_codes" v="39264"/>
<tag k="openGeoDB:combination_of_public_administration" v="Verwaltungsgemeinschaft Elbe-Ehle-Nuthe,Elbe-Ehle-Nuthe"/>
<tag k="is_in" v="Anhalt-Zerbst,Dessau,Sachsen-Anhalt,Bundesrepublik Deutschland,Europe"/>
<tag k="openGeoDB:loc_id" v="21850"/>
<tag k="openGeoDB:version" v="0.2.6.11 / 2007-12-04 / http://fa-technik.adfc.de/code/opengeodb/dump/"/>
<tag k="openGeoDB:population" v="287"/>
<tag k="population" v="287"/>
<tag k="openGeoDB:type" v="Gemeinde"/>
<tag k="openGeoDB:license_plate_code" v="AZE"/>
<tag k="openGeoDB:telephone_area_code" v="03923"/>
<tag k="name" v="Nutha"/>
<tag k="created_by" v="opengeodb2osm0.5.2"/>
<tag k="openGeoDB:auto_update" v="population,place,name,is_in"/>
</node>
Last edited by usm78-gis (2008-05-29 00:53:48)
Offline
#74 2008-05-29 05:15:52
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Конвертер OSM -> MP
нода не прочлась, потому что в долготе точки нет исправлю
новую версию надеюсь выложить, когда сделаю порезку дорог на самопересечениях
а память он кушает нипадеццки, это да. примерно под размер исходного .osm
там все основные структуры хэшами сделаны
и это всё цветочки: если начать поддержку релейшнов, памяти будет уходить ещё больше
Offline
#75 2008-05-29 16:11:23
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,662
Re: Конвертер OSM -> MP
и это всё цветочки: если начать поддержку релейшнов, памяти будет уходить ещё больше
Это точно.
Я вот сейчас думаю, как быть с такими вещами (если учитывать и oneway, то будет еще запутаннее)
10982333 -> 22346590
22346590 -> 10982333
<way id='4459751' timestamp='2007-10-19T17:28:31Z'>
<nd ref='10982333'/>
<nd ref='22346590'/>
<tag k='highway' v='residential'/>
</way>
<way id='23232699' user='Mirt' osmxapi:users='Mirt' timestamp='2008-03-09T16:48:17Z'>
<nd ref='251347811'/>
<nd ref='22351705'/>
<nd ref='22351716'/>
<nd ref='22352581'/>
<nd ref='22346590'/>
<nd ref='10982333'/>
<nd ref='251356232'/>
<nd ref='251351067'/>
<nd ref='251351048'/>
<nd ref='251351070'/>
<tag k='highway' v='residential'/>
<tag k='name' v='Церковная ул.'/>
</way>
Offline