Рендеринг карт openstreetmaps с помощью mapnik в gentoo linux


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; вы­брав в нем ре­жим прав­ки, мож­но при­сту­пить к ри­со­ванию, на­при­мер, сво­его до­ма.

Ре­дак­тор Potlatch по­зво­ля­ет вно­сить из­ме­не­ния в кар­ты, не по­ки­дая сай­та OpenStreetMap.

Клю­че­вым эле­мен­том яв­ля­ет­ся точ­ка. Точ­ки фор­ми­ру­ют линии, линии об­ра­зу­ют за­коль­цо­ван­ные по­ли­го­ны (мно­го­угольники). Вот в об­щем-то и вся слож­ность. Что­бы раз­ли­чать, ка­кая линия есть ре­ка, а ка­кая – до­ро­га или тро­пин­ка, с ка­ж­дым при­ми­ти­вом мож­но свя­зы­вать тэ­ги, у ко­то­рых есть ка­кое-ли­бо зна­чение. Как на­звание тэ­га, так и его зна­чение мо­жет быть лю­бым. Од­на­ко для то­го, что­бы эти тэ­ги влия­ли на от­ри­сов­ку дан­но­го объ­ек­та на кар­те в брау­зе­ре или в на­ви­га­то­ре, их сле­ду­ет брать из оп­ре­де­лён­но­го спи­ска тэ­гов, часто упот­реб­ляе­мых со­об­ще­ством. Его мож­но най­ти по ссыл­ке 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? >

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

Настроить со­единение с GPS­ навигатором в Qlandkarte GT до­статочно просто

Уста­но­вив 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). Ути­ли­та по­зво­ля­ет ска­чи­вать и при на­доб­но­сти об­ра­ба­ты­вать тре­ки и точ­ки, а так­же кон­вер­ти­ро­вать их в раз­лич­ные фор­ма­ты.

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

  • -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? >

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

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

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

Илон Маск рекомендует:  DateToStr - Функция Delphi

Подобно GIMP, редактор карт Merkaator поддерживает работу со слоями

За­гру­зи­те трек: Файл > От­крыть, и ука­жи­те наш 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).

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

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

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

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

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

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

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

Как сделать Тайлы PNG из OpenStreetMap

Для своего приложения мне необходимы тайлы карт OpenStreetMap, как их сделать (например из данных http://download.geofabrik.de/index.html) ?
Видел решения на основе postgresql+web, что мне излишне совсем, мне нужны только png
Что можно попробовать ?


Выкачать.
Или же рендерить из шейпов.

Maperitive (.NET/Mono)

Какой размер области, какой стиль? Так-то mapnik и другие рендеры (alacarte например) умеют работать с .osm файлом, просто загружая его в память. Но если в память он не влезет, то без базы не обойтись. Далее, насколько я помню, в оф. стиль зашиты прямо postgres запросы, так что опять возвращаемся к базе. А web тебя никто не заставляет поднимать.

В любом случае — все доки есть на wiki.openstreetmap.org

нельзя по лицензии, насколько я понял

подробнее, это наверно я и хочу знать

пробовал, не понравилось

А web тебя никто не заставляет поднимать.

Для локального рендеринга лучше использовать Maperitive.

Для глобольного рендеринга лучше использовать Mapnik или же MapBox.

Предоставь полное ТЗ и требования к тайлам

область — Россия или менее
Стиль — «как в OpenStreetMap», не знаком со стилями чтобы сказать конкретнее

В любом случае — все доки есть на wiki.openstreetmap.org

в гугле их еще больше, но думал есть простое решение типа: get_me_my_tiles *.osm_file -zoom-from 1 -zoom-to 10 ./png_dir

Загугли про рендеринг мапником.
Вкратце, выкачиваешь нужные регионы, определяешь в скриптах зум, область рендеринга и рендеришь. Будь готов к тому, что весь мир на обычном компе наверно месяц будешь рендерить.

Предоставь полное ТЗ и требования к тайлам

get_me_my_tiles *.osm_file -zoom-from 1 -zoom-to 10 ./png_dir

выкачать я могу, но как это согласуется с https://operations.osmfoundation.org/policies/tiles/ ?
Могу я применять скаченные тайлы в своих программа как угодно (копирайт напишу или чего там нужно) ?
Если ДА, то вопрос исчерпан, но я не знаю

Думаю ограничения связаны с нагрузкой на тайловый сервер, а не с лицензией на тайлы. Т.е. если тебе удастся потихоньку скачать/закешировтаь все нужные тайлы, то после к тебе претензии врядли будут.

Т.е. если тебе удастся потихоньку скачать/закешировтаь все нужные тайлы, то после к тебе претензии врядли будут.

ну если так, то ок
пока такой вариант и остается, но решил поискать иные

OpenStreetMap data is free for everyone to use

Тайлы можешь использовать как хочешь.

Главное не лазь на их сервер в своём приложении.

Могу я применять скаченные тайлы в своих программа как угодно (копирайт напишу или чего там нужно) ?

Можешь делать всё что угодно в рамках «policy»

Можешь делать всё что угодно в рамках «policy»

Правильный User-Agent, идентифицирующий ваше приложение. Подделка User-Agent — приведёт к блокировке вашего доступа.


как я могу «подделать» свое приложение ?

Массовое скачивание категорически не рекомендуется.

так я же и хотел массовое
1 тайл в 100 мсек нормально ?

чувствую забанят меня )

Понятно. Поднимай базу и мапник.

придется попробовать, зело букв там много, но опыт он всегда полезен

Здравствуйте, вы решили свою проблему? Если да, то можно узнать каким способом?

Я делал через GDAL из bluemarble. gdal_translate -of GTiff -a_srs WGS84 -a_ullr -180E 90N -90E 0N world.200407.3x21600x21600.A1.png world.200407.3x21600x21600.A1.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr -90E 90N 0E 0N world.200407.3x21600x21600.B1.png world.200407.3x21600x21600.B1.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr 0W 90N 90E 0N world.200407.3x21600x21600.C1.png world.200407.3x21600x21600.C1.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr 90E 90N 180E 0N world.200407.3x21600x21600.D1.png world.200407.3x21600x21600.D1.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr -180E 0N -90E -90N world.200407.3x21600x21600.A2.png world.200407.3x21600x21600.A2.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr -90E 0N 0E -90N world.200407.3x21600x21600.B2.png world.200407.3x21600x21600.B2.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr 0W 0N 90E -90N world.200407.3x21600x21600.C2.png world.200407.3x21600x21600.C2.tiff gdal_translate -of GTiff -a_srs WGS84 -a_ullr 90E 0N 180E -90N world.200407.3x21600x21600.D2.png world.200407.3x21600x21600.D2.tiff

А потом geotiff можно в картографический сервер или в png опять же gdal.

А если тебе нужны тайлы из geofabrik то самое простое это: 1) скачать карту 2) загрузить а постгрес 3) настроить mapnik 4) сгенерировать для него style.xml 5) запустить наночь генерацию тайлов

это займет 20gb оперативки, 24 часа. (можно уменьшить до 4gb но ждать будешь значительно дольше), это только загрузка в пострес.

время генерации тайлов зависит от зума. я ждал 2 суток на 8 ядрах. при 15 кратном зуме.

Форум русскоязычного сообщества Ubuntu

Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Домашний рендеринг карт из данных OSM на Lubuntu 14.04 ? (Прочитано 2392 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страница сгенерирована за 0.074 секунд. Запросов: 24.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Илон Маск рекомендует:  Что такое код swfdisplayitem >setratio

Map rendering using OpenStreetMap

Does OpenStreetMap just provide GIS data? To render maps and have a browser based UI to show maps with data, would a developer need to use something like Mapnik?

4 Answers 4

OpenStreetMap provides data yes, and you’ll need specific tools to make map with them. You first need to put the data in a true GIS format, which OSM is not. Think about PostGIS, an osm2pgsql tool is designed for that. Then, you’ll need a rendering tool, i.e. a cartographic engine. You can use Mapnik or MapServer. Tilemill or Kosmtik can help you designing your map styles. Take a look here.

There’s a fuller list of rendering libraries for OpenStreetMap data here, both free and commercial.

Disclosure: I am the developer of one of them.

OpenStreetMap provides map data out to a wide sprawling ecosystem of different downloads and tools offering developers different map-making and map using possibilities. Here is a diagram I drew which captures some of this:

So the data comes out of the core of OpenStreetMap, in the form of ‘planet downloads’, one big unwieldy blob of XML (and diffs), but from there it fans out into a range of other offerings to developers, many of which are provided by 3rd parties. Taken together «OpenStreetMap & Friends» provide lots of possibilities.

Цинизм в IT


FastNetMon

вторник, 6 октября 2009 г.

Установка Mapnik как рендера к OpenStreetMap

Ставим саму баблиотеку Mapnik. Оффсайт: http://wiki.openstreetmap.org/wiki/Mapnik Оффмануал: http://trac.mapnik.org/wiki/CentOS/RHEL

Увы, но сначала придется ставить новый Boost т.к. в Центосе он старый (1.33).
http://phpsuxx.blogspot.com/2009/10/boost-134-centos-5.html

# к этому подходит 1.33 Буст
cd
svn co http://svn.mapnik.org/trunk mapnik-libs
cd mapnik-libs
apt-get remove python-mapnik
apt-get install libboost-thread1.35-dev libboost-regex1.35-dev libboost-python1.35-dev libboost-iostreams1.35-dev libtiff4-dev libpng12-dev libltdl3-dev libxml2-dev libfreetype6-dev postgresql-server-dev-8.3

# Для Ред-Хатов:
yum -y install freetype-devel libtool-ltdl-devel libpng-devel libtiff-devel libjpeg-devel gcc-c++ libicu-devel python-devel bzip2-devel
python scons/scons.py
python scons/scons.py install # на продакшенах так делать КРАЙНЕ нежелательно
# Для 32 битных платформ
echo «/usr/local/lib» | tee /etc/ld.so.conf.d/mapnik-i386.conf
# Для 64 битных платформ
echo «/usr/local/lib64» | tee /etc/ld.so.conf.d/mapnik-i386.conf
ldconfig

На Дебияне это не нужно:

cd /usr/lib
ln -s libboost_filesystem.so libboost_filesystem-mt.so
ln -s libboost_regex.so libboost_regex-mt.so
ln -s libboost_iostreams.so libboost_iostreams-mt.so
ln -s libboost_program_options.so libboost_program_options-mt.so
ln -s libboost_thread.so libboost_thread-mt.so
ln -s libboost_python.so libboost_python-mt.so

Ставим сам рендер карт:

cd
svn checkout http://svn.openstreetmap.org/applications/rendering/mapnik
cd mapnik

# this empty if your database is on the local machine.
export MAPNIK_DBHOST=»127.0.0.1″

# This is the name of the database where the OSM data is stored.
export MAPNIK_DBNAME=»my_test_database»

# This is the username we should use to log into the PostgreSQL database.
export MAPNIK_DBUSER=»my_db_user»

# This is the password we should use to log into the PostgreSQL database.
export MAPNIK_DBPASS=»qwerty»

. ./set-mapnik-env
./customize-mapnik-map > osm.xml
mkdir -p /var/www/html/tiles/ # создаем папку для отрендереных «плиток»

cd
cd mapnik
wget -c http://tile.openstreetmap.org/world_boundaries-spherical.tgz
wget -c http://tile.openstreetmap.org/processed_p.tar.bz2
wget -c http://tile.openstreetmap.org/shoreline_300.tar.bz2

tar xzf world_boundaries-spherical.tgz
tar -xjf processed_p.tar.bz2
tar xjf shoreline_300.tar.bz2 -C world_boundaries
mv processed_p.* world_boundaries

Запускаем генерацию имаджей

А вот координаты для генерации карты Российской Федерации:

z = 10
imgx = 500 * z
imgy = 1000 * z

А вот для карты Самары:

z = 150
imgx = 50 * z
imgy = 50 * z

А вот конфиг для программы generate_tiles.py:

render_tiles(bbox, mapfile, tile_dir, minZoom, maxZoom, «World»)

Теперь устанавливаем apache для раздачи «плиток» карт:

dr_kitaetsc

Артём Светлов


Для создания схем маршрутов транспорта зачастую используются картографические основы Google Maps, или же ихние спутниковые снимки. Это концептуально неверно, потому что они являются обьектом авторского права, и в общем-то «правомерность публикации не подтверждена». К счастью, большинство городов с электротранспортом отрисованы на OpenStreetMap. Картографические данные распространяются под открытой лицензией, и их можно использовать в качестве картоосновы, а созданные схемы загружать на СТТС, печатать, и даже теоретически продавать за деньги.

Вкратце, схема работы OpenStreetMap выглядит так: в базе данных хранится картографическая информация, которую пользователи могут считывать, редактировать различными редакторами, и загружать отредактированные данные обратно. Эти данные можно отрендрить специальными программами, которые на выходе выдают графические файлы с картами, или же 3D-модель участка местности, или даже вычисляют маршрут между какими-нибудь деревнями, оптимизированый для велосипеда. Лююбой желающий может сделать себе карту с нужными ему обьектами и своими условными обозначениями, например уделить на ней особое внимание путевому развитию железных дорог, или кафе быстрого обслуживания. Это большое отличие от сервисов наподобие Google Maps, где рендер картинок с картами только один. Зайдите на страницу http://osm.amdmi3.ru где собранны ссылки на веб-карты сгенерированные различными рендерами, и впечатлитесь.

Сейчас мы отрендрим картографическую подложку для рисования карты ОТ какого-нибудь города в программе Maperitive http://wiki.openstreetmap.org/wiki/RU:Maperitive

Она читает файл данных в формате .osm, и генерирует растровый(PNG) или векторный (SVG) графический файл заданного размера, масштаба, и с любой схемой условных обозначений (правилами). Если область, для которой необходимо создать карту невелика, то данные можно скачать в самом maperitive. При запуске программы на дисплей выведется веб-карта. Сдвиньтесь на нужное место, и введите комманду download-osm.

Если же город большой, то сервер XAPI откажется от выполнения запроса. В таком случае, идём на http://gis-lab.info/projects/osm-export.html, там каждый день выкладываются дампы по областям бывшего СССР, а так же приведены ссылки на страницы с дампами других городов. Скачиваем osm xml. Maperitive умеет читать файлы в архивах bz2. Открывается файл данных через меню, или коммандой load-source Data/filename.osm
Наконец, если ничего не работает, то всегда можно скачать данные через основную программу редактирования карт — JOSM. http://wiki.openstreetmap.org/wiki/RU:JOSM , там есть ссылка на java-webstart. Программа запускается без установки и не требует регистрации. В ней можно скачать любую область по кускам, и сохранить в .osm-файл.

Теперь можно сохранить карту в виде графического файла. Вводим комманду export-bitmap file=Output/cityname.png w >На странице http://maperitive.net/docs/manual/Commands/ExportBitmap.html указаны параметры этой комманды, используя их можно получить карту необходимого вам размера и разрешения.

Теперь самое интересное. Создаём копию файла Rules/default.txt и открываем её в текстовом редакторе Notepad++ (в Maperitive лексический анализатор немного кривоват). Читаем список самых популярных тегов в OSM: http://wiki.openstreetmap.org/wiki/RU:Howto_Map_A и руководство по написанию файлов правил: http://maperitive.net/docs/manual/Rulesets.html Попробуйте сделать специализированую карту для любителей транспорта: с указанием остановок ОТ и макдональдсами.
Есть один ньюанс — в стиле по умолчанию в строке «building : building=yes» удалите «: building=yes», а то он будет рисовать не все здания.

Несколько примеров карт отрендреных в Mapertive:

Трамвайные линии Санкт-Петербурга

Карта Уручья с подписаными остановками

Карта этажности домов возле трамвайной линии

Дома расположенные дальше всего от остановок ОТ

Installing an OpenStreetMap Tile Server on Ubuntu

Introduction

This page shows how OpenStreetMap Carto can be used to implement a tile server using the same software adopted by OpenStreetMap. It includes step-by-step instructions to install an Ubuntu based Tile Server and is limited to describe some best practices, in the consideration that the main scope of this site is to provide tutorials to set-up a development environment of OpenStreetMap Carto and offer recommendations to edit the style.

The OSM Tile Server is a web server specialized in delivering raster maps, serving them as static tiles and able to perform rendering in real time or providing cached images. The adopted web software by OpenStreetMap is the Apache HTTP Server, together with a specific plugin named mod_tile and a related backend stack able to generate tiles at run time; programs and libraries are chained together to create the tile server.

As so often with OpenStreetMap, there are many ways to achieve a goal and nearly all of the components have alternatives that have various specific advantages and disadvantages. This tutorial describes the standard installation process of the OSM Tile Server used on OpenStreetMap.org.

It consists of the following main components:

  • Mapnik
  • Apache
  • Mod_tile
  • renderd
  • osm2pgsql
  • PostgreSQL/PostGIS database, to be installed locally (suggested) or remotely (might be slow, depending on the network).
  • carto
  • openstreetmap-carto

All mentioned software is open-source.

For the tile server, a PostGIS database is required, storing geospatial features populated by osm2pgsql tool from OSM data. Also, a file system directory including the OSM.xml file, map symbols (check openstreetmap-carto/symbols subdirectory) and shapefiles (check openstreetmap-carto/data subdirectory) is needed. OSM.xml is preliminarily produced by a tool named carto from the openstreetmap-carto style (project.mml and all related CartoCSS files included in openstreetmap-carto).

When the Apache web server receives a request from the browser, it invokes the mod_tile plugin, which in turn checks if the tile has already been created (from a previous rendering) and cached, so that it is ready for use; in case, mod_tile immediately sends the tile back to the web server. Conversely, if the request needs to be rendered, then it is queued to the renderd backend, which is responsible to invoke Mapnik to perform the actual rendering; renderd is a daemon process included in the mod_tile sources and interconnected to mod_tile via UNIX queues. renderd is the standard backend currently used by www.openstreetmap.org, even if some OSM implementations use Tirex; Mapnik extracts data from the PostGIS database according to the openstreetmap-carto style information and dynamically renders the tile. renderd passes back the produced tile to the web server and in turn to the browser.

The renderd daemon implements a queuing mechanism with multiple priority levels to prov >1

Even if the tileserver dynamically generates tiles at run time, they can also be pre-rendered for offline viewing with a specific tool named render_list, which is typically used to pre-render low zoom level tiles and takes significant time to accomplish the process (tens of hours in case the full planet is pre-rendered); this utility is included in mod_tile, as well as another tool named render_expired, which provides methods to allow expiring map tiles. More detailed description of render_list and render_expired can be found in their man pages.

A background on the tiles expiry method can be found at tiles expiry mechanism.

The overall process is here represented 2 .


client browser
Disk Cache (tiles) Apache Web Server Web page
renderd mod_tile tiles
Mapnik XML Mapnik
PostgreSQL PostGIS shapefiles data directory

An additional description of the rendering process of OpenStreetMap can be found at OSM architecture.

The following step-by-step procedure can be used to install and configure all the necessary software to operate your own OpenStreetMap tile server on Ubuntu 18.04 LTS, 16.04 LTS or 14.04. 3

The goal for this procedure is to use Ubuntu packages and official PPAs whenever possible.

We consider using Ubuntu 18.04 LTS Bionic Beaver, suggested operating system version.

Other tested O.S. include Ubuntu 16.04 LTS Xenial Xerus, Ubuntu 15.4 Vivid Vervet or Ubuntu 14.04.3 LTS Trusty Tahr (other versions should work). All should be 64-bit computing architecture. Other distributions like Debian might be checked, but could require changes to the installation procedure.

This procedure is updated to the version of OpenStreetMap Carto available at the time of writing. To get the correct installation procedure, the INSTALL history should be checked, considering that the OpenStreetMap Carto maintainers use to keep the INSTALL page updated. Check also the README changelog.

Илон Маск рекомендует:  Что такое код extends

General setup for Ubuntu

This procedure also supports WSL — Windows Subsystem for Linux. This means that a Windows 10 64-bit PC can be used to perform the installation, after setting-up WSL.

Update Ubuntu

Make sure your Ubuntu system is fully up-to-date:

Previous command returns the Ubuntu version.

To update the system:

If on a brand new system you also want to do sudo apt-get dist-upgrade && sudo shutdown -r now .

Install essential tools

For the subsequent installation steps, we suppose that cd defaults to your home directory.

Configure a swap

Importing and managing map data takes a lot of RAM and a swap is generally needed.

To check whether a swap partition is already configured on your system, use one of the following two commands:

Reports the swap usage summary (no output means missing swap):

Display amount of free and used memory in the system (check the line specifying Swap):

If you do not have an active swap partition, especially if your physical memory is small, you should add a swap file. First we use fallocate command to create a file. For example, create a file named swapfile with 2G capacity in root file system:

Then make sure only root can read and write to it.

География, геология

AWeather

AWeather — расширяемое плагинами приложение для просмотра, в режиме реального времени, метеорологических данных. AWeather интегрирует различные метеорологические данные в единый пользовательский интерфейс и автоматически обновляет данные о погоде в реальном времени.

Emerillon


Проект Emerillon представляет собой разработку простой, открытой и расширяемой программы просмотра карт, которая позволит просматривать открытые картографические данные, вести поиск по картам и «отмечать» на картах места (запоминать), куда в дальнейшем можно будет возвратиться.

Geomajas

Geomajas является комплексным ГИС-решением на основе Java. Благодаря использованию Google Web Toolkit (GWT), Hibernate, GeoTools и Spring, Geomajas предлагает корпоративную среду для создания веб-ГИС приложений.

gipfel

gipfel — это программа, с помощью которой можно находить на изображениях имена горных вершин или других точек, представляющих интерес для вас.

GMapCatcher

GMapCatcher — это вспомогательное приложение, которое позволяет просматривать различные карты, такие как Google Maps, без использования Интернета.

Google Earth

Google Earth — это программа, с помощью которой можно не выходя из дома виртуально посетить различные уголки нашей планеты. Так же помимо планеты Земля есть фотографии Луны, планеты Марс и звездного неба.

GPSBabel

Преобразование GPS-файлов и их перенос в/из GPS навигаторов.

GpsDrive

Универсальная (aвтомобильная, велосипедная, пешеходная, водная, воздушная) навигационная система.

GRASS

GRASS (англ. Geographic Resources Analysis Support System) — система для обработки географической информации.

MAPS.ME

MAPS.ME — набор бесплатных приложений для мобильных устройств на основе свободной географической карты OpenStreetMap.

Marble

Приложение Marble является одной из самых известных программ для просмотра карт в Linux.

Merkaartor

Визуальный редактор OpenStreetMap карт.

NextGIS

Облачный сервис, позволяющий создать собственную веб-ГИС прямо в браузере. С помощью этого сервиса вы сможете:

OpenGeo Suite

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

OpenGTS

OpenGTS (Open GPS Tracking System) – достаточно простая платформа для создания web-сервиса GPS-трекинга. Платформа предназначена для демонстраций, и для коммерческих предприятий начального уровня, но благодаря большим возможностям конфигурирования и масштабирования, ее можно использовать и для крупных коммерческих проектов.

OpenOrienteering Mapper


OpenOrienteering Mapper — — свободная программа для рисования карт для спортивного ориентирования.

Как вносить изменения на Open Street Map (OSM)

18 июня 2015 в 12:11

Согласно Wikipedia, OpenStreetMap (дословно «открытая карта улиц»), сокращённо OSM — некоммерческий веб-картографический проект по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира.

Для создания карт используются данные с персональных GPS-трекеров, аэрофотографии, видеозаписи, спутниковые снимки и панорамы улиц, предоставленные некоторыми компаниями, а также знания человека, рисующего карту. Использование для создания карт сервисов, подобных Google Maps, без разрешения правообладателя невозможно.

В OpenStreetMap при создании карты используется принцип вики. Каждый зарегистрированный пользователь может вносить изменения в карту.

Сейчас мы и начнем наше повествование о том, как же вносить измения и дополнения на эту довольно подробную, развивающуюся и удобную в использовании карту.

Для начала необходимо зайти на официальный сайт OSM http://www.openstreetmap.org/ . Вход на сайт можно, как с использованием своего личного почтового ящика, так и путем привязки существующего аккаунта в различных сообществах, пиктограммы которых приведены на рисунке:

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

Теперь возникает вполне закономерный вопрос: как же все-таки редактировать карту?

Карту можно редактировать как онлайн, с помощью двух онлайн редакторов: iD и Potlatch 2 — так и офлайн, с помощью установленного на компьютере редактора. Второй способ удобен тем, у кого очень низкая скорость интернета или существуют ограничения по использованному трафику, где все изменения можно делать у себя на компьютере, а затем отправлять их на сервер OSM. Правки отправляются ввиде XML файла, поэтому существенного влияния на трафик они не окажут.

В этой статье будем править карту онлайн с помощью редактора iD, т.к. принцип работы редакторов iD и Potlatch 2 одинаковый, только Potlatch 2 позволяет наносить на карту большее количество различных классов объектов и из-за этого он более тормознутый. Для нанесения и редактирования на карте дорог вполне достаточно быстрого редактора iD.

В верхнем левом углу у нас ходитятся выделенные три пункта «Правка», «История» и «Экспорт». Причем пункт «Правка» неактивен. При наведении на него курсора мышки появляется подсказка, о том, что нужно увеличить масштаб для редактирования

После увеличения карты до нужного масштаба кнопка «Правка» станет активной, при нажатии на нее появится всплывающее меню, где можно выбрать необходимый редактор карты.

Выбираем iD редактор и начинаем работать с картой. Вносить изменения на карту можно как в ручную, используя спутниковые снимки, предоставляемые сервисом OSM, так и путем нанесения путей, полученных с сохраненных в навигаторе пройденных треков. На следующем изображении показано окно редактирования карты редактором iD. Редактирование станет доступным только после увеличения масштаба, причем масштаб должен быть очень большим. На рисунке указан предельно малый масштаб, который доступен для редактирования. Как видно, такой масштаб не очень подходит для нанесения объектов по космоснимкам, но зато может использоваться для нанесения дорог по GPS трекам.

Как можно заметить редактор очень простой и позволяет наносить на карту только три типа объектов: точку, линию и полигон. Как не трудно догадаться, точка — это название определенного места или точечный объект, линия — это дороги, полигон — это различные площади (леса, населенные пункты, дома и т.д.).

На панели инструментов, расположенной справа, интерес представляют только две кнопки:

настройка подложки. Т.е. того, что будет отображаться на карте (Google снимок, OSM карта и т.д.)

данные карты. Вот при помощи этой кнопки из загружаются GPS треки в редактор, а также выбирать те классы объектов, которые должны отображаться или быть спрятаны на карте при редактировании.

А теперь разберемся, как же все-таки наносить объекты на карту. Я посмотрел, что в покатушке По краю: Березина — Стоялово маршрут проходил местами по лесным дорогам, которых нет на карте OSM. Нужно исправить этот недостаток. Для этого скачиваем реальный GPS трек от Rafael и начинаем наносить дороги на карту по реальному GPS треку. В этом примере я хочу нанести красивую лесную дорожку, которая была у нас перед привалом на озере. Вот фото этой дорожки:

Трек загружен, теперь нужно прорисовать эту дорогу.

На рисунке розовым цветом отображен загруженный реальный трек, белая линия по треку — это нанесенная на карту дорога. Любой нанесенный объект можно редактировать. Для этого достаточно просто выбрать его при помощи курсора мышки. Объект не обязательно должен быть вашим. Для завершения нанесения линии на карту необходимо кликнуть по последней точке. Точка начала и конца линии важны, т.к. они определяют направление движения. Это особенно важно при нанесенинии дорог с односторонним движением, а также рек. Но в любой момент направление движения можно изменить, путем выбора соответствущей пиктограммы, появляющейся после активации объекта. На существующем объекте можно изменять положение существующих точек, добавлять свои (перетаскивать стрелку, расположенную между точками), а также удалять точки. Т.е. здесь ничего сложного нет.

При выборе только что нанесенного объекта с левой стороны экрана появляется меню типа объекта

У нас дорога, поэтому ее и выбираем. После этого появится список возможных дорог. У нас лесная дорога, поэтому ее и выбираем

После этого вводим необходимые атрибуты лесной дороги. Данные атрибуты важны для карты OSM, потому что по ним в дальнейшем делается автоматическая навигация в зависимости от выбранного транспортного средства, а также возможность отображения объекта на карте, при отбрасывании ненужных объектов (допустим Ferrari по лесно дороге не поедет, поэтому водитель такого автомобиля не захочет, чтобы полевые и лесные дорожки засоряли карту и участвовали в автоматической прокладке маршрута).

Для созданной дороги я ввел следующие аттрибуты:

Покрытие: unpaved (без покрытия)


Ширина: 3 м

Легальный доступ: велосипед, автомототранспорт, наездникам, пешеходам

Тип проселочных дорог: Скорее мягкая: укатанный грунт с примесями твёрдых материалов

Проходимость: Крепкие колёса: гибридные велосипеды, машины, рикши

Сложность трассы для горного велосипеда: 0: ровный гравий/утоптанная земля, без препятствий, широкие повороты

Карты openstreetmap для garmin

На моем сайте есть отличная статья про установку карт от gis-lab.

Но времена меняются и сегодня я расскажу как устанавливать карты osm более легким способом.

Сборка карт от maptourist.org

Скачаем карты osm на ваш навигатор гармин в два простых шага:

1. Скачиваем нужный нам архив карт со страницы https://maptourist.org/osm-garmin/

Небольшое пояснение по файлам:

OSM-MapTourist-gmapsupp-RU.zip — всё покрытие целиком

OSM-MapTourist-gmapsupp-east-RU.zip — восточная часть

OSM-MapTourist-gmapsupp-west-RU.zip — западная часть

Также в сборке есть нарезка карт по федеральным округам:

Центральный федеральный округ
OSM-MapTourist-cfo-RU.zip

Южный федеральный округ
OSM-MapTourist-yfo-RU.zip

Северо-Западный федеральный округ
OSM-MapTourist-szfo-RU.zip

Дальневосточный федеральный округ
OSM-MapTourist-dfo-RU.zip

Сибирский федеральный округ
OSM-MapTourist-sfo-RU.zip

Уральский федеральный округ
OSM-MapTourist-ufo-RU.zip

Приволжский федеральный округ
OSM-MapTourist-pfo-RU.zip

Северо-Кавказский федеральный округ
OSM-MapTourist-skfo-RU.zip

2. С тем какой архив с картами загружать я думаю вы определились.

Распаковываем архив и файл с расширением .img копируем на карту памяти в папку Garmin, если такой папки нет то создаем.

На моем навигаторе eTrex 20 карты копируются достаточно медленно, поэтому я вытаскиваю флешку и копирую через карт-ридер.

Преимущества по сравнению со сборкой карт от gis-lab:
— Более приятный внешний вид карт
— Современный компилятор OSM
— Простое копирование файлов без установки дополнительных программ
— Ежедневная пересборка архивов с картами

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL