Журнал LinuxFormat - перейти на главную

LXF134:Open Street Map

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

OSM: Сам се­бе кар­то­граф

Ви­ки­пе­дия по­сте­пен­но ста­но­вит­ся име­нем на­ри­ца­тель­ным, но ока­зы­ва­ет­ся, ана­ло­гич­ный «кол­хоз­ный» под­ход мож­но при­ме­нить не толь­ко к тек­стам, но и к кар­там. Уча­ст­ник про­ек­та OpenStreetMap Сер­гей Се­ме­нов де­лит­ся опы­том.


С древних вре­мён лю­ди ри­со­ва­ли кар­ты, что­бы не блу­ж­дать бес­смыс­лен­но по про­сто­рам на­шей лю­би­мой пла­неты, но блу­ж­дать со смыс­лом. По­лез­ность се­го яс­на не сра­зу, и я – как, на­вер­ное, мно­гие – остав­лял те­ма­ти­ку кар­то­гра­фии за граница­ми сво­их ин­те­ре­сов. До тех пор, по­ка во­лею судь­бы не при­шлось мне за­блу­дить­ся на Байка­ле. На­ку­ро­ле­сив по ме­ст­ным про­сё­лоч­ным до­ро­гам 250 км, по воз­вра­щении до­мой во Вла­ди­во­сток я стал по­ду­мы­вать о GPS.

Кар­ты — ка­кие они?

Что GPS без кар­ты? Про­сто на­бор ко­ор­ди­нат на чёр­но-бе­лом фо­не. По­гру­зив­шись в Ин­тернет, я вдруг по­нял: ог­ром­ное ко­ли­че­ство объ­е­динений лю­дей соз­да­ёт де­сят­ки раз­ных карт одних и тех же уча­ст­ков ме­ст­но­сти – раз­ной де­та­ли­зи­ро­ван­но­сти, на­полнен­но­сти, плат­но­сти и пра­вил рас­про­странения. В си­лу их за­кры­то­сти но­вые кар­ты не мо­гут на­сле­до­вать уже со­б­ран­ную ин­фор­ма­цию, и по­то­му ри­су­ют­ся с ну­ля или поч­ти с ну­ля, тем са­мым уве­ли­чи­вая боль­шой спи­сок всё тех же непол­ных карт. А ведь нуж­на все­го од­на кар­та – хо­ро­шая. И что­бы об­нов­ля­лась ре­гу­ляр­но, и что­бы со­дер­жа­ла мак­си­мум ин­фор­ма­ции, и что­бы объ­е­ди­ня­ла уси­лия всех кар­то­гра­фов во­еди­но и по­зво­ля­ла по­пра­вить/до­ба­вить нуж­ный объ­ект, ес­ли та­кой най­дёт­ся.

К сво­ей ра­до­сти, я на­шёл та­кой про­ект – это OpenStreetMap (http://openstreetmap.org), объ­е­динив­ший ог­ром­ное ко­ли­че­ство лю­дей над соз­данием от­кры­той, бес­плат­ной кар­ты ми­ра. Один из его глав­ных плю­сов – мож­но стать пол­но­прав­ным уча­стником и всё-та­ки нанести на ми­ро­вую кар­ту свой дом, се­ло, где ро­дил­ся, про­ход по уще­лью гор и тот пре­крас­ный родник, у ко­то­ро­го на­пил­ся сам и ко­то­рый, быть мо­жет, уто­лит жа­ж­ду та­ко­му же ски­таль­цу с GPS-на­ви­га­то­ром.

Ка­кой же взять на­ви­га­тор?

Ко­гда-то я то­же за­да­вал се­бе этот во­прос, но ­ско­ро до­га­дал­ся, что луч­ше не от­кры­вать Аме­ри­ку, а спро­сить у спе­циа­ли­стов. По­это­му, до­ве­рив­шись от­кры­то­сти про­ек­та OpenStreetMap, я по­шёл пря­ми­ком на http://wiki.openstreetmap.org/wiki/RU:Main_Page и стал ис­кать ин­фор­ма­цию о том, ка­кой же на­ви­га­тор бу­дет пол­но­цен­но ра­бо­тать с OSM и с Linux.

На стра­ни­це http://wiki.openstreetmap.org/wiki/GPS_Reviews да­но опи­са­ние боль­шо­го (да­же слиш­ком) ко­ли­че­ст­ва уст­ройств, но, как вы­яс­ни­лось, боль­шин­ст­во «опыт­ных OSM’щиков» пред­по­чи­та­ет Garmin 60c(s)x из-за на­дёж­но­сти и точ­но­сти по­зи­цио­ни­ро­ва­ния. По­чи­тав http://wiki.openstreetmap.org/wiki/Garmin/GPS_series, я по­нял, что это оно, вот толь­ко... Толь­ко Garmin Dakota уж боль­но ин­те­ре­сен. И с этим ин­те­ре­сом я по­шёл в ма­га­зин, где мы по­ста­ви­ли экс­пе­ри­мент над Garmin 60csx и Garmin Dakota. По­ка Dakota упор­но ис­кал спут­ни­ки, 60-ка уже по­ка­зы­ва­ла ко­ор­ди­на­ты. Вы­бор был сде­лан.

И что с этим де­лать?

Итак, на­ви­га­тор есть, кар­ты есть. Оста­лось под­ру­жить их с Linux и друг с дру­гом и как-то на­чать этим поль­зо­вать­ся. У на­ви­га­то­ров есть две основ­ные функ­ции. Пер­вая и глав­ная – вы­да­вать ин­фор­ма­цию о те­ку­щем ме­сто­по­ло­жении. И вто­рая, не менее важ­ная – запи­сы­вать «трек», то есть спи­сок из то­чек с ко­ор­ди­на­та­ми, вы­со­той и вре­менем, когда путник на­хо­дил­ся в этой точ­ке. Этот трек и по­ка­зы­ва­ет дорогу, ко­то­рой путник про­шёл. Тре­ки мож­но вы­гру­жать, ре­дак­ти­ро­вать, пре­об­ра­зо­вы­вать в пу­ти, до­ро­ги, но это те­ма дальней­ше­го по­ве­ство­вания, а по­ка нам нуж­но за­гру­зить кар­ты в наш на­ви­га­тор.

В слу­чае на­ви­га­то­ров Garmin, кар­та пред­став­ля­ет со­бой один файл с именем gmapsupp.img, ле­жа­щий на флэш-кар­те на­ви­га­то­ра в ди­рек­то­рии Garmin (имен­но с боль­шой бу­к­вы). Итак, вынима­ем кар­ту, под­клю­ча­ем её к ком­пь­ю­те­ру че­рез пе­ре­ходник как обыч­ную «флэш­ку», соз­да­ём в корне ди­рек­то­рию Garmin (ес­ли её там нет). Да­лее нам нуж­но ска­чать са­му кар­ту.

По умол­чанию кар­ты OpenStreetMap кон­вер­ти­ру­ют­ся в фор­мат на­ви­га­то­ров Garmin и вы­кла­ды­ва­ют­ся на сайт http://gis-lab.info/data/mp/ раз в су­тки. Од­на­ко там пуб­ли­ку­ют­ся ар­хи­вы, со­дер­жа­щие на­бор фай­лов, ко­то­рые нуж­но от­кры­вать с по­мо­щью спе­ци­аль­но­го ре­дак­то­ра карт. Мы же мо­жем по­сту­пить про­ще – ска­чать уже пол­но­стью сфор­ми­ро­ван­ную кар­ту России для Garmin с тор­рент-тре­ке­ра: http://rutracker.org/forum/viewtopic.php?t=1911128 (об­нов­ля­ет­ся при­мер­но раз в ме­сяц). За­гру­зив файл gmapsupp.img, ско­пи­руй­те его на кар­ту на­ви­га­то­ра. Вставь­те ее в уст­рой­ство, вклю­чи­те, и... вуа­ля – у нас в на­ви­га­то­ре от­кры­тая кар­та всей России!

А как ре­дак­ти­ро­вать?

В ре­дак­ти­ро­вании, как и в за­лив­ке, есть несколь­ко спо­со­бов. Есть про­стые – и есть удоб­ные. Рас­смот­рим са­мый про­стой – ре­дак­тор Potlatch, напи­сан­ный на Flash. Что­бы восполь­зо­вать­ся им, доста­точ­но за­ре­ги­ст­ри­ро­вать­ся на сай­те http://openstreetmap.org, вой­ти под сво­им именем и на­жать на кноп­ку Прав­ка ввер­ху эк­ра­на. От­кро­ет­ся Potlatch; вы­брав в нем ре­жим прав­ки, мож­но при­сту­пить к ри­со­ванию, на­при­мер, сво­его до­ма.


Клю­че­вым эле­мен­том яв­ля­ет­ся точ­ка. Точ­ки фор­ми­ру­ют линии, линии об­ра­зу­ют за­коль­цо­ван­ные по­ли­го­ны (мно­го­угольники). Вот в об­щем-то и вся слож­ность. Что­бы раз­ли­чать, ка­кая линия есть ре­ка, а ка­кая – до­ро­га или тро­пин­ка, с ка­ж­дым при­ми­ти­вом мож­но свя­зы­вать тэ­ги, у ко­то­рых есть ка­кое-ли­бо зна­чение. Как на­звание тэ­га, так и его зна­чение мо­жет быть лю­бым. Од­на­ко для то­го, что­бы эти тэ­ги влия­ли на от­ри­сов­ку дан­но­го объ­ек­та на кар­те в брау­зе­ре или в на­ви­га­то­ре, их сле­ду­ет брать из оп­ре­де­лён­но­го спи­ска тэ­гов, часто упот­реб­ляе­мых со­об­ще­ством. Его мож­но най­ти по ссыл­ке http://wiki.openstreetmap. org/wiki/RU:Map_Features.

Ко­ор­ди­на­ты и на­бо­ры тэ­гов, пе­ре­дан­ные на сер­вер http://openstreetmap.org, впо­след­ствии об­ра­ба­ты­ва­ют­ся и ли­бо кон­вер­ти­ру­ют­ся в файл карт для раз­лич­ных на­ви­га­то­ров, ли­бо от­ри­со­вы­ва­ют­ся в ви­де изо­бра­жений на кар­те, ко­то­рую мы ви­дим на глав­ной странице про­ек­та.

За­кре­пим изу­чен­ное на прак­ти­ке. На­при­мер, мы хо­тим на­ри­со­вать наш дом; для это­го на кар­те http://openstreetmap.org на­хо­дим свой рай­он про­жи­вания, жмём Прав­ка, вы­би­ра­ем «Прав­ка с со­хранением» и ри­су­ем пря­мо­угольник, по­след­няя точ­ка ко­то­ро­го со­еди­ня­ет­ся с на­чаль­ной. Те­перь нуж­но со­об­щить систе­ме, что это дом. Ниже есть кноп­ка со зна­ком +; под­свет­ка ска­жет, что это зна­чит «До­ба­вить но­вый тэг'». На­жми­те кноп­ку и ука­жи­те вме­сто key на­звание на­ше­го тэ­га – building. Зна­чение вы­ставь­те в «yes». Из­вест­ные тэ­ги по­яв­ля­ют­ся в вы­па­даю­щем спи­ске. На­жи­ма­ем Со­хранить. Че­рез неко­то­рое вре­мя на основ­ной кар­те мы смо­жем на­блю­дать наш дом. Так же ри­су­ют­ся до­ро­ги, пе­ре­крё­ст­ки, точ­ки ин­те­ре­са и т. п. Бо­лее то­го, на­жав кноп­ку За­дание на­стро­ек, мож­но вы­брать под­лож­ку в ви­де косми­че­ских фо­то­сним­ков рай­она от Yahoo! и про­чих, что об­лег­чит ри­со­вание объ­ек­тов.

Од­на­ко не сто­ит за­бы­вать, что всё это име­ет мно­го мень­шую точ­ность, чем са­ми тре­ки с на­ви­га­то­ра. Космосним­ки, к при­ме­ру, мо­гут иметь сме­щение в 50 и бо­лее мет­ров, то есть ри­со­вать до­ро­гу сто­ит не столь­ко на осно­ве спутнико­вых карт, сколь­ко по тре­кам на­ви­га­то­ра. Их мож­но ото­бра­зить, на­жав кноп­ку По­ка­зать GPS-тре­ки. Ес­ли дру­гие «мап­пе­ры» за­гру­жа­ли на сер­вер тре­ки, про­хо­дя­щие по ва­шей ме­ст­но­сти, то они ото­бра­зят­ся. В ре­жи­ме ре­дак­ти­ро­вания мож­но смот­реть, ка­кие тэ­ги ис­поль­зу­ют «мап­пе­ры», ри­суя объ­ек­ты, со­седние с ва­ши­ми, про­сто вы­де­лив со­седний объ­ект. Для всех этих за­дач есть со­от­вет­ствую­щее ПО. Да­вай­те рас­смот­рим все про­цес­сы ра­бо­ты с GPS, ис­поль­зуя ин­ст­ру­мен­та­рий Linux.

Ис­ход­ные дан­ные

Ба­зо­вым ПО для ра­бо­ты с на­ви­га­то­ром Garmin в Windows яв­ля­ет­ся MapSource (http://www8.garmin.com/support/download_details.jsp?id=209). Его прак­ти­че­ски пол­ным ана­ло­гом в Linux (и не толь­ко) слу­жит Qlandkarte GT (http://www.qlandkarte.org). Одним из за­ме­чен­ных мной от­ли­чий яв­ля­ет­ся от­сут­ствие под­держ­ки по­иска по ад­ре­сам в на­се­лён­ных пунк­тах. Ины­ми сло­ва­ми, фай­лы для сбор­ки карт, по­лу­чен­ные, на­при­мер, с сай­та http://gis-lab.info/data/mp/, с по­мо­щью Qlandkarte GT мож­но успеш­но за­гру­зить в на­ви­га­тор, од­на­ко по­иск улиц в го­ро­дах ра­бо­тать не бу­дет. В осталь­ном же про­грам­ма справ­ля­ет­ся со сво­ей за­да­чей.

До­полнитель­но к Qlandkarte GT необ­хо­ди­мо уста­но­вить на­бор драй­ве­ров для раз­лич­ных уст­ройств от Garmin. В мо­ем ди­ст­ри­бу­ти­ве (Gentoo) это па­кет sci-geosciences/qlandkartegt-garmindev. Де­ло в том, что драй­вер для уст­ройств Garmin в яд­ре (garmin_gps) не слиш­ком хо­ро­шо ра­бо­та­ет, по­это­му пе­ред за­пуском Qlandkarte GT его нуж­но ли­бо вы­гру­зить, ли­бо за­маски­ро­вать со­от­вет­ствую­щим об­ра­зом:

# cat /etc/modprobe.d/blacklist|grep garmin
# blacklist garmin_gps


Уста­но­вив qlandkartegt и qlandkartegt-garmindev, под­клю­чим GPS-уст­рой­ство к ком­пь­ю­те­ру че­рез USB и за­пустим Qlandkarte GT. В на­строй­ках (Уста­нов­ки > Основ­ные > GPS-уст­рой­ство) вы­ста­вь­те ко­ди­ров­ку в cp1251 (в вер­си­ях стар­ше 0.15.x та­кой воз­мож­но­сти нет), ука­жи­те тип уст­рой­ства и его по­сле­до­ва­тель­ный порт – /dev/ttyUSB0. Да­лее, восполь­зуй­тесь ме­ню Трек > За­гру­зить и Пу­те­вые точ­ки > За­гру­зить, что­бы ска­чать с уст­рой­ства тре­ки и точ­ки ин­те­ре­са.. Сле­ва внизу вы­би­ра­ем вклад­ку Кар­ты, два раза щел­ка­ем по OSM – в ре­зуль­та­те под­лож­ка бу­дет под­гру­жать­ся с openstreetmap.org. За­гру­жен­ные точ­ки и тре­ки мож­но вы­гру­зить в ви­де GPX-фай­ла для дальней­шей ра­бо­ты или пуб­ли­ка­ции на openstreetmap.org. Это де­ла­ет­ся че­рез ме­ню Файл > Сохранить GEO-дан­ные; нуж­но вы­брать фор­мат GPX.

Дан­ный спо­соб хо­рош для эпи­зо­ди­че­ско­го ис­поль­зо­вания, но не очень удо­бен для ре­гу­ляр­ной ра­бо­ты с тре­ка­ми. Бо­лее гиб­ким ре­шением здесь бу­дет восполь­зо­вать­ся ути­ли­той GPSBabel (http://www.gpsbabel.org), ко­то­рая долж­на быть в ре­по­зи­то­ри­ях ва­ше­го ди­ст­ри­бу­ти­ва (в мо­ем она на­зы­ва­ет­ся sci-geosciences/gpsbabel). Ути­ли­та по­зво­ля­ет ска­чи­вать и при на­доб­но­сти об­ра­ба­ты­вать тре­ки и точ­ки, а так­же кон­вер­ти­ро­вать их в раз­лич­ные фор­ма­ты.

# gpsbabel -w -r -t -i garmin,encoding=windows-1251 -f usb: \
-x track,pack \
-x discard,hdop=5,vdop=5 \
-x position,distance=5m \
-x interpolate,time=60 \
-o gpx -F out_file.gpx

Что здесь про­ис­хо­дит?

  • -w – ска­чи­ва­ем и точ­ки ин­те­ре­са в том чис­ле
  • -r – ска­чи­ва­ем мар­шру­ты.
  • -t – ска­чи­ва­ем тре­ки.
  • -x track,pack – этот фильтр объ­е­ди­ня­ет тре­ки от­дель­ных пе­ре­хо­дов в один боль­шой.
  • -x discard,hdop=5,vdop=5 – этот фильтр вы­бра­сы­ва­ет из тре­ка точ­ки, для ко­то­рых го­ри­зон­таль­ная или вер­тикаль­ная ме­ра ошиб­ки боль­ше 5 (как HDOP, так и VDOP свя­за­ны с мет­ра­ми). На прак­ти­ке этот фильтр дей­стви­тель­но эф­фек­тив­но от­сеи­ва­ет точ­ки, внезап­но «вы­ско­чив­шие» из тра­ек­то­рии. Зна­чение «5» – эм­пи­ри­че­ское; иногда я ука­зы­ваю да­же «10».
  • -x position,distance=5m – объ­е­ди­ня­ет точ­ки, рас­стояние ме­ж­ду ко­то­ры­ми мень­ше 5 м (ко­рот­кие оста­нов­ки).
  • -x interpolate,time=60 – ин­тер­по­ли­ру­ет трек так, что­бы ме­ж­ду со­седними точ­ка­ми бы­ло не бо­лее 60 се­кунд (это один из са­мых по­лез­ных фильт­ров для соз­дания гео­тэ­гов!).

Гео­тэ­ги мы рас­смот­рим несколь­ко поз­же. Смысл всех осталь­ных оп­ций ясен из опи­сания. Ис­поль­зуя GPSBabel, мож­но напи­сать скрипт, ко­то­рый при вы­зо­ве бу­дет ска­чи­вать тре­ки, пра­вить их и скла­ды­вать в нуж­ное ме­сто с именем, со­стоя­щим из да­ты, а за­тем фор­ми­ро­вать сим­воль­ную ссыл­ку на него ви­да «но­вые_тре­ки.gpx». Скрипт мож­но вы­зы­вать че­рез udev, при под­клю­чении оп­ре­де­лён­но­го ти­па уст­рой­ства (ва­ше­го GPS-на­ви­га­то­ра) и то­му по­доб­ное – ав­то­ма­ти­за­ция ру­ти­ны ог­раничи­ва­ет­ся лишь ва­шей фан­та­зи­ей.

Здесь сто­ит упо­мя­нуть об од­ной до­сад­ной непри­ят­но­сти. В ба­зо­вой ин­стал­ля­ции GPSBabel некор­рект­но об­ра­ба­ты­ва­ет па­ра­мет­ры ко­ди­ров­ки, по­это­му русские име­на в точ­ках ин­те­ре­са бу­дут в «кра­ко­зяб­рах». Во вся­ком слу­чае, так ещё бы­ло в вер­сии 1.3.6. Что­бы по­пра­вить это недо­ра­зу­мение, есть патч от Алек­сан­д­ра Де­жи­на (http://forum.openstreetmap.org/viewtopic.php?id=3753). Вы так­же най­де­те его на LXFDVD. Это ис­прав­ление бы­ло от­прав­ле­но раз­ра­бот­чи­кам – воз­мож­но, вско­ре оно поя­вит­ся в основ­ной вет­ке.

Ска­чав трек, мож­но вы­ло­жить его на сайт: openstreetmap.org > GPS-тре­ки > По­ка­зать толь­ко ва­ши тре­ки, или Пе­ре­дать но­вый трек на сер­вер > Об­зор. По умол­чанию я вы­став­ляю тип Об­ще­ доступ­ный. Ка­кой вы­ста­ви­те вы – ре­шать вам. Об­ще­доступ­ным тре­ком смо­гут восполь­зо­вать­ся дру­гие «мап­пе­ры», ре­дак­ти­рую­щие тот же рай­он кар­ты.

Соз­да­ем кар­ту

При­шло вре­мя за­нять­ся пол­но­цен­ным ре­дак­ти­ро­ванием кар­ты с по­мо­щью со­от­вет­ствую­ще­го ПО. На вы­бор есть два основ­ных ре­дак­то­ра: JOSM (на java) и Merkaartor (на Qt). Я пред­по­чи­таю Merkaartor (http://www.merkaartor.org). Уста­но­ви­те его, как обыч­но (па­кет sci-geosciences/merkaartor) и за­пусти­те коман­дой merkaartor. Да­лее, зай­ди­те в Tools > Па­ра­мет­ры > Дан­ные и ука­жи­те ва­ши имя и па­роль на openstreetmap.org, что­бы из­менения вы­гру­жа­лись под ва­шей учёт­ной запи­сью.


За­гру­зи­те трек: Файл > От­крыть, и ука­жи­те наш GPX-файл с тре­ка­ми и точ­ка­ми ин­те­ре­са. На­жми­те кноп­ку За­гру­зить ещё, что­бы под­гру­зить кар­ту OSM в ви­ди­мую на эк­ране об­ласть. Те­перь мож­но при­сту­пать к ре­дак­ти­ро­ванию. У ка­ж­до­го при­ми­ти­ва есть всё те же тэ­ги: манипу­ли­руя ими, а так­же не за­бы­вая све­рять­ся с тре­ка­ми и «под­гля­ды­вая», как ре­дак­ти­ро­ва­ли дру­гие «мап­пе­ры», мож­но бы­ст­ро по­нять ло­ги­ку. По­сле за­вер­шения ре­дак­ти­ро­вания нуж­но вы­гру­зить из­менения на openstreetmap.org, на­жав кноп­ку Опуб­ли­ко­вать.

Од­на­ко здесь есть неко­то­рые тон­ко­сти – это слои и под­лож­ки. Тре­ки, точ­ки, под­гру­жае­мая ин­фор­ма­ция, ре­дак­ти­руе­мые эле­мен­ты – всё это на­хо­дит­ся на сво­ём слое. Вы­гру­жа­ет­ся на сер­вер толь­ко «Слой чер­но­ви­ка». Со­от­вет­ствен­но, что­бы сфор­ми­ро­вать из тре­ка до­ро­гу, нуж­но на­жать пра­вой кноп­кой по слою «ACTIVE LOG #2” (в мо­ём слу­чае, см. ри­су­нок) и вы­брать «Из­влечь ре­дак­ти­руе­мый слой». Убе­ри­те ви­ди­мость со слоя тре­ка (что­бы не ме­шал­ся при ре­дак­ти­ро­вании) – и те­перь у нас есть пол­но­цен­ный путь. Так как за­частую ну­жен не весь путь, а лишь часть его, то эту часть нуж­но от­де­лить, вы­де­лив один из уз­лов и на­жав До­ро­га > Раз­де­лить. «От­ку­сив» та­ки­ми опе­ра­ция­ми ку­со­чек тре­ка, мо­жем на­ве­ши­вать на него тэ­ги. Тут-то и про­яв­ля­ет­ся тон­кость ра­бо­ты со слоя­ми: мы ре­дак­ти­ро­ва­ли слой «Из­вле­чение ACTIVE LOG #2», а что­бы пе­ренести то, что мы там на­ре­дак­ти­ро­ва­ли, на «Слой чер­но­ви­ка», нуж­но вы­де­лить наш но­вый пе­ше­ход­ный уча­сток, на­жать Прав­ка/Ско­пи­ро­вать и вста­вить фи­гу­ры че­рез Прав­ка > Paste Figure(s). По­сле это­го путь поя­вит­ся на слое чер­но­ви­ка. Про­ве­рить это мож­но, вклю­чив/вы­клю­чив ви­ди­мость со­от­вет­ствую­щих сло­ёв. И ещё раз на­пом­ню, что за­гру­жая кар­ту по кноп­ке За­гру­зить, не за­бы­вай­те вы­став­лять га­лоч­ку «Так­же за­гру­зить необ­ра­бо­тан­ные тре­ки GPS», что­бы под­гру­зить тре­ки дру­гих «мап­пе­ров» в этом рай­оне, уве­ли­чив этим точ­ность ва­ших объ­ек­тов. К сло­ву, на те­ку­щий вид кар­ты мож­но до­ба­вить за­клад­ки че­рез ме­ню Вид > За­клад­ки > До­ба­вить.

Что­бы мож­но бы­ло чи­тать подпи­си к точ­кам ин­те­ре­са, нуж­но уб­рать га­лоч­ку «Толь­ко чтение» со слоя «Мар­шрут­ные точ­ки». Для удоб­ства ре­дак­ти­ро­вания мож­но под­клю­чать слой под­лож­ки – на­при­мер, спутнико­вые сним­ки Yahoo! или Космосним­ки, ес­ли по­кры­тие в ва­шем го­ро­де у них луч­ше. Для вы­бо­ра под­лож­ки в сло­ях на­жми­те пра­вой кноп­кой по слою Кар­та и от­меть­те «Yahoo – WMS». При же­лании мож­но на­стро­ить локаль­ный кэ­ши­рую­щий сер­вер для под­лож­ки, что­бы при ка­ж­дом из­менении мас­шта­ба не по­сы­лал­ся за­прос к Yahoo. Сам Merkaartor не кэ­ши­ру­ет кар­ты из-за за­пре­та это­го в ли­цен­зии к кар­там.

Опуб­ли­ко­ван­ные из­менения по­яв­ля­ют­ся на кар­те спустя неко­то­рое вре­мя: от двух ми­нут до су­ток. Для удоб­ства ка­ж­дые су­т­ки де­ла­ет­ся вы­груз­ка и кон­вер­та­ция карт по кра­ям и об­ластям стра­ны: http://gis-lab.info/data/mp/. Ска­чав этот ар­хив, рас­па­куй­те его и от­крой­те в Qlandkarte GT (Файл > За­гру­зить кар­ту) и вы­бе­ри­те файл osm.tdb. За­гру­зив од­ну кар­ту, вы мо­же­те за­хо­теть со­вместить её с дру­гой – на­при­мер, кар­той рель­е­фа России: http://rutracker.org/forum/viewtopic.php?t=1686360. За­гру­зи­те её в Qlandkarte GT ана­ло­гич­ным об­ра­зом. На вклад­ке карт вы­би­ра­ем нуж­ную, жмём F5 и на­жи­ма­ем на об­ласть кар­ты. В дан­ном слу­чае я вы­брал При­мор­ский край. Вы­би­ра­ем кар­ту рель­е­фа, жмём F5, на­жи­ма­ем ле­вую кноп­ку мы­ши и вы­де­ля­ем уча­сток бло­ков, кар­ты вы­сот ко­то­рых мы хо­тим вы­гру­зить для на­ви­га­то­ра. К сло­ву, рель­еф всей России вы­гру­зить не уда­ст­ся, из-за ог­раничений плат­фор­мы Garmin. В ле­вом нижнем уг­лу вы­би­ра­ем Вы­бран­ные кар­ты и жмём или Кар­та > Пе­ре­дать, что­бы пе­ре­дать её на под­клю­чён­ный к USB GPS-на­ви­га­тор, или Экс­пор­ти­ро­вать кар­ту, что­бы со­хранить её в файл gmapsupp.img на ком­пь­ю­те­ре для по­сле­дую­ще­го ко­пи­ро­вания на кар­ту на­ви­га­то­ра.

При­ят­ные ме­ло­чи

На прак­ти­ке обыч­но вы­яс­ня­ет­ся, что боль­шое ко­ли­че­ство ин­фор­ма­ции тре­бу­ет­ся за­но­сить ку­да-то по­ми­мо на­ви­га­то­ра. Сю­да по­па­да­ют но­ме­ра до­мов, на­звания ка­фе, ки­но­те­ат­ров, па­мятников, же­лез­но­до­рож­ных стан­ций и про­чее. Мож­но ис­поль­зо­вать блок­нот, но удобнее – обыч­ный циф­ро­вой фо­то­ап­па­рат. Ло­ги­ка со­сто­ит в сле­дую­щем: вы син­хронизи­руе­те вре­мя на обо­их уст­рой­ствах и, ри­суя трек, фо­то­гра­фи­руе­те лю­бую до­полнитель­ную ин­фор­ма­цию. В EXIF-дан­ные к ка­ж­до­му сним­ку фо­то­ап­па­рат за­пи­шет вре­мя соз­дания, со­поста­вив ко­то­рое в дальней­шем с ана­ло­гич­ным вре­менем точ­ки тре­ка, мы по­лу­чим GPS-ко­ор­ди­на­ту фо­то­гра­фии, ко­то­рую спе­ци­аль­ной ути­ли­той мож­но допи­сать к ка­ж­до­му сним­ку. По­сле это­го фо­то­гра­фии мож­но за­гру­жать в Merkaartor и, ви­дя их на тре­ке, чёт­ко понимать, что же там дей­стви­тель­но на­хо­дит­ся в ре­аль­но­сти. В этом нам по­мо­жет ути­ли­та Happy Camel (http://happycamel.sourceforge.net).

Как все­гда, есть несколь­ко ва­ри­ан­тов ис­поль­зо­вания. Пер­вый – ка­ж­дый раз пе­ред «мап­пин­гом» вы­став­лять вре­мя фо­то­ап­па­ра­та по вре­мени на­ви­га­то­ра. Тогда по при­хо­ду до­мой вы ска­чи­вае­те с фо­то­ап­па­ра­та сним­ки, трек с на­ви­га­то­ра, за­хо­ди­те в ди­рек­то­рию с фо­то­гра­фия­ми и за­пускае­те коман­ду:

#/usr/bin/happycamel -x y --utc-offset=+10:00
--exiftool=y --elevation=2
--use-outside=y -t трек.gpx `ls *.jpg`

где --utc-offset=+10:00 – сдвиг по вре­мени от­но­си­тель­но Грин­ви­ча (во Вла­ди­во­стоке – 10 ча­сов).

Ес­ли всё прой­дёт хо­ро­шо, то в EXIF-блок ка­ж­дой фо­то­гра­фии бу­дет допи­са­на ин­фор­ма­ция о GPS-ко­ор­ди­на­тах, где бы­ла про­ве­де­на съём­ка. Од­на­ко это слиш­ком слож­но с точ­ки зрения ко­ли­че­ства дей­ствий. Здесь есть про­стор для ав­то­ма­ти­за­ции. Вто­рой ва­ри­ант – ка­ж­дый раз пе­ред «мап­пин­гом» вы фо­то­гра­фи­руе­те эк­ран на­ви­га­то­ра, на ко­то­ром долж­ны быть вид­ны те­ку­щая да­та и вре­мя, и, не кор­рек­ти­руя вре­мя в фо­то­ап­па­ра­те, про­дол­жае­те мап­пинг. При­дя до­мой, вы за­пускае­те в ди­рек­то­рии с фо­то­гра­фия­ми сле­дую­щую коман­ду:

#/usr/bin/happycamel -x y --calibrate=файл_фо­то­гра­фии_вре­ме­ни_на­ви­га­то­ра.jpg \
	 2010-02-18-09-51-19 --fix-dates=y --utc-offset=+10:00 --exiftool=y \
	 --elevation=2 --use-outside=y -t трек.gpx `ls *.jpg

где

  • файл_фо­то­гра­фии_вре­мени_на­ви­га­то­ра.jpg – фо­то­гра­фия навигатора
  • 2010‑02‑18‑09‑51‑19 – вре­мя на на­ви­га­то­ре, за­пе­чат­лён­ное на этой фо­то­гра­фии, в фор­ма­те год-ме­сяц-день-час-ми­ну­ты-секунды
  • трек.gpx – трек с на­ви­га­то­ра

В ре­зуль­та­те скрипт сам вы­счи­та­ет сме­щение вре­мени ме­ж­ду фо­то­ап­па­ра­том и на­ви­га­то­ром с точ­но­стью до се­кун­ды и по­пра­вит вре­мя фо­то­гра­фий, а так­же до­пи­шет ко­ор­ди­на­ты в со­от­вет­ствии с но­вым вре­менем.

Да­лее от­кры­ва­ем Merkaartor, за­гру­жа­ем ту­да трек и фо­то­гра­фии (Файл > От­крыть, вы­де­лить все сним­ки). Merkaartor спро­сит, ка­кой слой ис­поль­зо­вать – вы­бе­ри­те слой тре­ка «ACTIVE LOG #2” (в мо­ём слу­чае) и со­гла­си­тесь снять с него флаг «толь­ко чте­ние». В ре­зуль­та­те на тре­ке мы уви­дим чёр­ные квад­ра­ты; вы­брав ка­кой-ли­бо квад­ра­т мы­шью, мож­но по­смот­реть изо­бра­жение, не за­быв пе­ред этим вклю­чить со­от­вет­ствую­щее ок­но че­рез ме­ню Ок­на > Панели > GeoImage.

К сло­ву, Merkaartor 0.15 некор­рект­но воспринима­ет пу­ти с русски­ми сим­во­ла­ми, по­это­му для за­груз­ки фо­то­гра­фий Merkaartor’ом мне при­шлось де­лать ссыл­ку на фо­то­гра­фии на анг­лий­ском язы­ке:

# ln -sf ~/Фо­то­гра­фии/Но­вое/2010.04.11-23:56:35 new

При­ят­но­го «мап­пин­га»!

По­лез­ные ссыл­ки

Персональные инструменты
купить
подписаться
Яндекс.Метрика