Concediu, dulce concediu

Mâine plecăm spre litoral. Nu, nu pe litoralul românesc ci spre cel bulgăresc. Vreau să dau încă o palmă managerilor de hoteluri de pe litoralul românesc. Acum 3 ani am luat decizia să nu mai calc prin niciun hotel dintre Mamaia și Mangalia. Și nu am călcat, chiar dacă numai anul astă am făcut 3 drumuri spre mare. Numai că este mai ieftin să plec sâmbătă dimineața cu mașina, să mă întorc sâmbătă seara, și să plec duminică din nou decât să plătesc o noapte de cazare la noi. Trist!

Oricum m-am întins cam mult, cert e de mâine am program de plajă, somn și mâncare. Nu s-ar zice că vreau să scap de vreo 5 kilograme. Ne citim lunea viitoare!

Tutorial IV – Restricții de circulație

Un element pe care nu l-am prezentat până acum, dar care este din ce în ce mai prezent în cadrul proiectului OSM este relația. Folossind o relație poți defini o serie de elemente interesante ca de exemplu:
– grupări de elemente (de exemplu avem o stradă care la un moment dat are un pod, deci a fost nevoie să formăm cel puțin 3 elemente cu același nume).
– definirea de clădiri ce au o curte interioară (relații de tip multipoligon)
– restricții de circulație (de exemplu semnul obligatoriu la dreapta înainte de o intersecție). Despre acestea vom vorbi în continuare.

În general relaţiile au mai mulţi membri (care pot fi noduri sau drumuri  în funcţie de nevoi), fiecare nod având un rol bine determinat. În cazul  restricţiilor de circulaţie avem următorii membri:

1. „from” – este strada de pe care se vine atunci când intri în  intersecţie, sau altfel spus strada pe care te afli când vezi semnul de  circulaţie
2. „to” – este strada pe care doreşti să intri şi care are respectiva  restricţie
3. „via” – pot exista exista mai mulţi membri cu acest rol, minim unul.  Pot fi noduri sau drumuri (ways). În cele mai multe cazuri va fi nodul  care este centrul intersecţiei şi care face legătura între cele 2 străzi.
4. „location_hint” – este opţional şi va fi un nod. Este folosit pentru  a oferi unui motor de rendering o locaţie unde poate fi afişat semnul de  circulaţie corespunzător. Se poate crea un nod nod, alăturat străzii care apare cu rolul „from” cu câţiva metri înainte de intersecţie.

Pe lângă membri relaţia mai are şi anumite atribute:

1. „type” – în cazul nostru tipul va fi „restriction”
2. „restriction” – tipul de restricţie, va fi ales din următoarele:  no_right_turn / no_left_turn / no_u_turn / no_straight_on /  only_right_turn / only_left_turn / only_straight_on. Sper că sunt  suficient de clare şi nu necesită traducere.
3. „except” – categoria de vehicule pentru care nu se aplică restricţia  (poate conţine mai multe categorii): psv / bicycle / hgv / motorcar
4. „day_on”, „day_off” – zilele între care este impusă restricţia:  day_on=Monday;day_off=Friday
5. „hour_on”, „hour_off” – orele între care este impusă restricţia:  hour_on=07:30;hour_off=09:30 şi posibil alte atribute în funcţie de necesităţi.

Un lucru interesant e faptul că o restricţie de tipul „obligatoriu înainte sau la dreapta” este dificil de reprezentat în momentul de faţă, ea trebuind să fie probabil înlocuită cu o restricţie de tipul „interzis
la stânga”, altfel utilizarea a 2 relaţii ( una de tipul  „only_right_turn” şi una de tipul „only_straight_on”) poate crea  confuzie prin utilizarea termenului „only”. Pentru mine cazul acesta rămâne deschis, e posibil să fie destul de rar întâlnit.

Şi am să încerc să dau şi un exemplu:

Exemplul 1

Exemplul 1

În figura de mai sus să presupunem că suntem pe way1 în partea de jos şi  avem interzis la dreapta pe way2. Membrii relaţii vor fi:
1. „from” = way1
2. „to” = way2
3. „via” = node1
4. „location_hint” = node2

Un exemplu în care avem un drum folosit ca membru cu rolul „via” este cazul străzilor în care sensurile sunt despărţite printr-un scuar. În acest caz dacă avem un drum de legătură între cele 2 sensuri pe care este de exemplu interzisă întoarcerea, această legătură va avea rolul de  „via”, iar membrii vor fi:
1. „from” – un sens al străzii
2. „to” – celalat sens
3. „via” – drumul de legătură
4. „location_hint” – un nod aflat probabil între cele 2 sensuri

OpenStreetMap România – recensământ de vară

Spuneam aici că îmi doresc ca la sfârșitul verii să avem aproximativ 100 de contributori la OSM în România și extrasul zilnic al bazei de date la nivelul țării noastre să depășească 10MBytes.

Se pare că nu am fost prea optimist pentru că pe data de 20 august 2008 am putut să număr 133 de utilizatori OSM a căror locație este în România (e posibil să fie mai mulți deci), iar extrasul din ziua de 26 august 2008 a depășit pentru prima dată 10MBytes.

De la primul post legat de OSM România lucrurile au mers chiar bine. Am reușit să importăm o suită de trasee oferite de o companie de fleet management, ceea ce a dus la o creștere considerabilă a acoperirii la nivelul drumurilor naționale. Un tabel cu informații complete este disponibil pe pagina proiectului OSM România.

Deasemenea am pus și bazele unei liste de discuții RO-OSM în cadrul căreia putem dezbate orice problemă întâlnită la nivelul OSM. Avem în vedere o serie de colaborări cu profesioniști în domeniul cartografiei cum sunt cei de la www.geo-spatial.org precum și alți entuziaști care pot contribui la OSM cum sunt cei din cadrul Alpinet.

Dacă e să ne uităm în urmă am evoluat mult, și sperăm să nu ne oprim aici. Să umplem golul lăsat de provideri de hărți precum Google și Yahoo la nivelul României.

Călătorie prin Moldova – ziua II

A doua zi aveam în plan să facem o plimbare pe Ceahlău, dar previziunile meteo nu erau tocmai încurajatoare. Optimismul din mine însă nu mă lăsa să cred că ploaia ne va încurca planurile, ba chiar era să le răstoarne de tot.

Dimineața, după ce am luat micul dejun am putut să vedem că ploaia încă nu își făcuse apariția, dar norii erau prezenți în cantități suficiente.
Citește în continuare

Pe jos la McDrive

Cine a spus că trebuie să ai mașină ca să comanzi de la McDrive?

Pe jos la McDrive

Pe jos la McDrive

(Scuzați calitatea, poza e făcută cu telefonul și înainte de cafea)

Călătorie prin Moldova – ziua I

După cum spuneam, în prima zi (26 iulie) ne propusesem să ajungem pe seară la destinație și să ne oprim pe drum pentru că sunt multe locuri frumoase de vizitat în țara asta. Așa că mi-am propus o plecare la ora 8 ca să nu avem motiv de fugă, ci să putem admira pe îndelete tot ceea ce ne propusesem. Dar cum socoteala din târg nu se potrivește niciodată cu cea de acasă, am reușit să plecăm abia în jurul orei 10, când soarele deja era de mult pe cer. Din fericire „Doamna în roșu” avea deja plinul făcut de cu seară așa că nu a rămas decât să punem bagajele în mașină și să plecăm.

Plecam cu ceva emoții pentru că acel cod roșu din nordul Moldovei tocmai ce fusese prelungit până în acea zi la ora prânzului (și din păcate urma să fie prelungit pentru încă câteva zile după cum știți de altfel) dar sunasem în seara de dinainte la vila la care urma să stăm și mi-au spus că drumurile sunt bune, ceea ce s-a și adeverit. În Galați era o căldură moleșitoare, ceea ce ne ducea și mai abitir cu gândul la aerul curat și răcoros de munte, pânp atunci speram ca aerul condiționat din mașină să îți facă treaba.
Citește în continuare

Tutorial III – Hărți corecte cu JOSM și Validator

Acest post are la bază o discuție de pe lista OSM în română: http://groups.google.com/group/ro-osm

După drumul prin Moldova am avut de adăugat destule informații în diferite zone. Astfel am descoperit destule probleme existente la nivelul informației din OSM care pot fi evitate cu putină grijă. Dar pentru asta trebuie să folosim JOSM și plugin-ul Validator.

Validator este foarte folositor în multe cazuri, însă raportează ca warning-uri și multe lucruri false, deci trebuie să intervenim și noi în acest proces. Am să vă povestesc pe scurt despre erorile/avertismentele date de acest plugin și modalitățile de corectare pentru fiecare caz.

Erori:

1. Duplicated nodes – Apare când există mai multe noduri în aceeași locație. Poate fi corectat automat, prin comasarea proprietăților diferitelor noduri în unul singur.

2. Duplicated way nodes – Un nod apare de mai multe ori consecutiv într-un „way”, deci nu este vorba de drumuri care se intersectează singure. Poate fi corectat automat prin păstrarea doar a primei apariții a nodului.

Avertismente (Warning)

1. Self-intersecting ways – Am întâlnit acest warning în cel puțin 2 cazuri: o alee dintr-un parc, care revine prin unele puncte (poate fi evitat prin împărțirea aleei în mai multe zone) și in cazul unei albii de râu (Siret). Și în acest ultim caz se poate evita prin împărțirea albiei în 2 zone distincte care să aibă una sau mai multe laturi comune (citiți mai jos despre ce avertisment va da Validator în acest caz).

2. Nodes with same name – Am întâlnit acest warning la benzinării ale aceluiași operator sau în cazul sucursalelor aceleiași bănci. În aceste cazuri am ignorat avertismentul.

3. Unnamed ways – E simplu de înțeles ce se întâmplă, dar câteodată e greu de aflat numele unei străzi, mai ales dacă ne folosim de Yahoo Imagery, fără a merge exact pe acolo.

4. Crossing ways – E unul din avertismentele care poate fi evitat ușor, dar care poate crea probleme aplicațiilor de routing. De obicei lipsește un pod sau conexiunea dintre 2 străzi nu este realizată corect.

5. Clockwise coastline – Regula de bază în crearea unei zone marcate ca ‘water’ este ca direcția să fie în sensul acelor de ceasornic, altfel pot apare probleme la etapa de randare. Atenție că avertismentul poate
apare și la insule, conturul acestora trebuind să fie invers acelor de ceasornic.
În JOSM nu trebuie decât să schimbați direcția, apăsând tasta ‘R’ după ce în prealabil ați selectat zona respectivă.

6. Similar named ways – De obicei avem 2 segmente de drum denumite diferit, dar diferențele sunt foarte mici (în general diferă utilizarea diacriticelor). Rămâne la latitudinea utilizatorului să păstreze doar unul dintre nume dacă este cazul.

7. Untagged ways – drumuri care nu au nici o proprietate. Eu am lăsat intenționat astfel de drumuri când am intrat doar 5 metri pe un drum, ca după aceea să întorc, deci nu știu nimic despre acel drum, clasificare sau nume. Nu recomand ștergerea acestor segmente, poate doar etichetarea lor cu k=”fixme”, v=”motivul pentru care considerați că sunt necesare modificări”. Exemple: http://wiki.openstreetmap.org/index.php/Key:fixme. Sau puteți utiliza k=”note” v=”FIXME motiv”

Altele (Other)

1. Overlapping ways – este un warning care de obicei este fals. L-am întâlnit în următoarele condiții: a) parcare aflată chiar lângă drum, fără a fi demarcată, și care reutilizează punctele care formează strada; b) zone alăturate din albia unui râu, care au cel puțin o latură comună – vezi avertismentul ‘Self-intersecting ways’. În ambele cazuri eu l-am ignorat dar e posibil ca uneori să fie valid.

2. Overlapping highways – vezi 1

3. Overlapping railways – vezi 1

4. Untagged and unconnected nodes – noduri care pot fi eliminate dacă cunoașteți zona și nu există nimic acolo. Altfel pot fi păstrate, poate cineva știe ce există de fapt acolo. Eventual poate fi contactat userul care a creat nodul și întrebat care e rostul lui acolo (poate a uitat să adauge proprietățile)

Daca ați mai găsit alte erori/warning-uri puteți să le descrieți în comentarii. La fel si cu întrebările, sunt binevenite.

Călătorie prin Moldova – rezumat

Am fost plecat acum 2 săptămâni prin Moldova, mai precis am vrut să mergem un pic prin Ceahlău pentru că deși sunt moldovean, nu reușisem să ajung prin zonă până acum.

Mi-am programat 4 zile cu tot cu drum, și m-am uitat să văd pe unde pot ajunge astfel încât să pot adăuga drumuri noi pe harta OSM. și în același timp să vizitez locuri interesante. Am căzut de acord să petrecem prima zi mai mult pe drum facând o oprire în Piatra Neamț și una prin Târgu Neamț/Humulești. Urma să ajungem spre seara la Vila Ecotur, în comuna Ceahlău, unde trebuia să stăm 3 nopți. Apoi 2 zile de plimbări pe munte, urmând ca ultima zi să ne-o petrecem iarăși pe drum vizitând Lacul Roșu și Cheile Bicazului, și poate încă o oprire prin Piatra Neamț.

Din punct de vedere al contribuției la OSM a fost chiar bine. Am reușit să pun pe harta drumul dintre Piatra Neamț și Târgu Neamț (DN 15C), drumul dintre Târgu Neamț și Poiana Largului (DN 15B), și binențeles drumul spre Durău (DJ 155F). În plus am completat porțiunea lipsă de pe drumul DN 15 care înconjoară Lacul Izvorul Muntelui (Bicaz) prin est. Putem adăuga ceva corecții/mici adăugiri prin Piatra Neamț și Bacău precum și drumurile de acces la unele locuri pline de istorie cum sunt casa lui Ion Creangă din Humulești și Cetatea Neamțului.

Va urma prezentarea în detaliu a fiecărei zile din acest scurt periplu, cu exemplificări prin poze a lucrurilor plăcute și mai puțin plăcute pe care le-am întâlnit pe drum.

UPDATE: Călătorie prin Moldova – ziua I
UPDATE 2: Călătorie prin Moldova – ziua II
UPDATE 3: Călătorie prin Moldova – ziua III
UPDATE 4: Călătorie prin Moldova – ziua IV

Ceahlău - Vârful Toaca și Panaghia

Ceahlău - Vârful Toaca și Panaghia

Data oficială pentru lansarea iPhone3G în România: 22 august 2008

Urmăresc de mult site-ul Orange în așteptarea unei știri legate de data oficială. Astăzi s-a anunțat în sfârșit! Marea lansare va fi pe 22 august 2008. Probabil nu la ora 0.00 cum apare în comunicatul oficial ci undeva în jurul orei 12.00, dacă ținem cont de counter-ul disponibil pe site-ul Orange.

Din păcate lansarea va avea loc pe 22 august doar în București și în alte 5 orașe din țară, printre care nu se găsește și Galațiul. Așa că nu îmi rămâne altceva de făcut decât să mă înscriu online pe lista de așteptare și să mă apuc să scriu o aplicație pentru iPhone care să folosească datele de pe OpenStreetMap!

Dacă prima generație iPhone nu m-a încântat prea mult, faptul că au adăugat un modul de GPS îl face mult mai atractiv pentru mine, și probabil pentru mulți alții, în ciuda faptului că probabil nu vom avea hărți disponibile pentru România.

Tutorial II – JOSM

Java OpenStreetMap Editor (JOSM) este cel mai complet editor pentru OpenStreetMap, de aceea cred că merită prezentat un scurt tutorial.

Am să încep cu un exemplu de utilizare pentru crearea unei străzi noi pe baza unui track înregistrat (în format gpx, altfel pot apare pași suplimentari pentru conversie).

Înainte de a trece la utilizarea efectivă aveți nevoie să instalați Java (asta dacă nu o aveți deja instalată). Pentru aceasta mergeți aici: http://www.java.com/en/download/index.jsp
și apăsați „Free Java Download”. În pagina următoare verificați faptul că serverul a identificat corect sistemul de operare utilizat de dumneavoastră și apăsați încă o dată pe „Free Java Download”. Tot pe această pagină aveți și instrucțiunile de instalare complete, în funcție de browser.
Dupa ce ați instalat Java, mergeți la http://josm.openstreetmap.de/ si descărcaîi aplicaîia utilizând un link denumit Download.

După aceea nu rămâne decât să porniți JOSM ca orice altă aplicație Windows (dublu-click). Acum putem să trecem la modul de utilizare al editorului.

1. Pornim JOSM și vom instala o serie de plugin-uri. Selectați Edit->Preferences și apoi selectați a 5-a iconiță din stanga (cea cu priza). Daca nu ați utilizat nici un plugin până acum probabil aveți nevoie să descărcați lista de plugin-uri: click pe Download list. Apoi vom bifa din lista descarcată următoarele: utilsplugin, validator, wmsplugin și ywms. Apăsați OK, apoi restartați editorul.

2. Se încarcă track-ul dorit – Open, apoi se face zoom pe zona dorită folosind unealta de zoom: lupa din stânga sus. Se observă lista de layere în partea din dreapta sus – conține momentan doar un layer, cel cu traseul, de tip GPX.

3. Se descarcă datele de pe serverul OSM – Open->Download from OSM și bifați „OpenStreetMap data”, respectiv debifați „Raw GPS data” și „Download as new layer” – vi se va cere să introduceți userul și parola cu care vă conectați pe serverul OSM. Acest pas se poate repeta până se acoperă întreaga porțiune din track care nu există deja trasată în OSM.

4. Se convertește layerul care conține track-ul din ‘GPX” în „Data layer”: click dreapta pe layer și selectați „Convert to data layer”.

5. Pe layerul proaspăt convertit se selectează nodurile de început și sfârșit ale viitoarei străzi și se face împarte în două (Tools->Split way sau apăsați „P”). Pasul acesta se poate repeta pentru fiecare segment care va fi adăugat în OSM.

6. Ștergeți apoi secțiunile care deja există în OSM – această operație poate dura ceva mai mult timp în funcție de mărimea track-ului, aveți răbdare.

7. Acum vom folosi plugin-ul utilsplugin menționat la pasul 1: deoarece track-urile sunt înregistrate la nivel de secundă avem multe puncte care sunt redundante (în special pe drum drept) și astfel putem micșora cantitatea de date fără a pierde din calitate folosing funcția „Simplify” – trebuie să fie o iconiță în partea stângă cu câteva puncte puse în linie. Selectați segmentul rămas și apăsați butonul din stânga, ar trebui să vedeți efectul simplificării.

8. Marcați segmentul rămas corespunzător: nume, tip, restricții etc. folosind butonul „Add” din partea dreaptă sus și adăugând pe rând fiecare proprietate

9. Faceți legăturile cu străzile învecinate, acolo unde este cazul: treceți în modul „Adăugare” (a 3-a iconiță din stânga sus, sau apăsați „A”), click stânga pe nodul de început/sfârșit și apoi click pe strada la care doriți să vă conectați.

10. Ultima etapă, faceți upload la noile date: Open->Upload to OSM.

-Va urma-