Estic programant amb OpenLayers, últimament he fet els projectes de Catalunya Màgica i Quintana. Aprofitant que a OpenLayers és fàcil pintar una ruta GPX, volia posar totes les rutes BTT que he anat fent en un mateix mapa, i així dóna la idea d’activitat. Bé, no totes les rutes són de BTT, també n’hi ha de senderisme, i tampoc són totes les rutes que he fet, però dóna una idea.
El següent pas serà posar unes capes que es puguin activar/desactivar, per seleccionar BTT/senderisme, o bé per zona geogràfica.
Arxiu de la categoria: openstreetmap
Topònim Quintana a Catalunya
Seguint el mateix esquema i codi que hem fet amb la Catalunya Màgica en el post anterior, he publicat ràpidament els topònims Quintana que hi ha a Catalunya.
Una Quintana o quintà fa referència a la cinquena part que havien de pagar els pagesos d’impostos, i amb el temps una Quintana va acabar significant una masia i els camps que l’envolten, és a dir, el que avui en diríem una finca. D’aquí ve el cognom Quintana, tant en català com en castellà, que s’escriuen igual i ve directament del llatí. El meu cognom Quintana ve de la masia La Quintana d’Oristà, que vam tenir la sort de visitar fa uns anys, amb el meus pares, germans, cosins i família. Els Quintana de Cabrianes vénen d’aquesta casa de pagès d’Oristà. El meu besavi (l’avi del meu pare alcelsiga) era de Cabrianes i es va casar a Bagà. D’aquí el cognom Quintana de Bagà, Guardiola i Berguedà. Jo sóc de Barcelona, però aquestes són les meves arrels per part del meu avi patern.
Referències:
Catalunya Màgica
S’ha publicat la web de la Catalunya Màgica: dimonis, infern, bruixes i diables, amb informació agafada de OpenStreetMap.
Hem utiltizat OpenLayers 6.5.0 (amb el paradigma de imports), i les tiles estàndard de OSM i també TRESC, una capa de visualització que m’agrada molt. Les dades que s’obtenen poden ser nodes o vies, i hi ha hagut una feina prèvia de netejar una mica les dades, però tot plegat ha sigut un procés molt ràpid.
Referències:
Segments de ciclisme amb la API de Strava
De la API de Strava m’interessa sobretot la part de segments, que són trossos de rutes en què la gent es cronometra i es publica els rankings. Malauradament, sense una subscripció Premium no es pot accedir a tota la informació. Jugant una estona amb la API de Strava he arribat a poder veure els segments que hi ha en una zona geogràfica, i poder veure els punts d’aquest segment, que es poden representar en qualsevol mapa.
Per accedir a la informació d’un segment:
$ curl -X GET https://www.strava.com/api/v3/segments/229781 -H 'Authorization: Bearer *******************'
I el resultat:
{"id":229781,"resource_state":3,"name":"Hawk Hill","activity_type":"Ride","distance":2684.82,"average_grade":5.8,"maximum_grade":10.9,"elevation_high":247.2,"elevation_low":92.0,"start_latlng":[37.833112,-122.483436],"end_latlng":[37.828072,-122.498139],"elevation_profile":"https://d3o5xota0a1fcr.cloudfront.net/v6/charts/KO5P7GCFLK5P5NF5GNUX3D6IVFLIEYRYD6JRBEGMXHOCPENJUQZXD5IIEJOYINQE2HX3XLZMYRTF5GHG5JLQ====","start_latitude":37.833112,"start_longitude":-122.483436,"end_latitude":37.828072,"end_longitude":-122.498139,"climb_category":1,"city":"San Francisco","state":"CA","country":"United States","private":false,"hazardous":false,"starred":false,"created_at":"2009-09-21T20:29:41Z","updated_at":"2021-03-13T09:01:33Z","total_elevation_gain":155.2, "map":{"id":"s229781","polyline":"}g|eFnpqjVl@En@Md@HbAd@d@^h@Xx@VbARjBDh@OPQf@w@d@k@XKXDFPF\\CbGT`AV`@v@|@NTNb@?XOb@cAxAWLuE@eAFMBoAv@eBt@q@b@}@tAeAt@i@dAC`AFZj@dBA~@Yh@MbAVn@b@b@\\d@Ef@Qd@_@d@eB|@c@h@YfBI|AMpA?VF\\\\t@f@t@h@j@|@b@hCb@b@XTd@Bl@GtA?jAL`ALp@Tr@RXd@Rx@Pn@^Zh@Tx@Zf@`@FTCzDy@f@Yx@m@n@Op@VJr@","resource_state":3}, "effort_count":556805,"athlete_count":49100,"star_count":5022,"athlete_segment_stats":{"pr_elapsed_time":null,"pr_date":null,"pr_activity_id":null,"effort_count":0},"xoms":{"kom":"5:37","qom":"6:42","destination":{"href":"strava://segments/229781/leaderboard","type":"overall","name":"All-Time"}},"local_legend":{"athlete_id":54312907,"title":"Dalton Nonweiler","profile":"https://dgalywyr863hv.cloudfront.net/pictures/athletes/54312907/14907176/5/large.jpg","effort_description":"86 efforts in the last 90 days","effort_count":"86","effort_counts":{"overall":"86 efforts","female":"41 efforts"},"destination":"strava://segments/229781/local_legend?categories%5B%5D=overall"}}
Veiem que la polilínia està codificada en una cadena de text. La podem decodificar i obtenir-ne les coordenades:
$ pip3 install polyline $ python3 >> import polyline >> #polyline.decode(summary_polyline) >> polyline.decode("gxu{Fem|Kc@fAq@fAoApAMR[ZMXw@v@a@VQZi@j@sAhAk@hA_@f@oDxCiAhA_@j@a@~@{@pCC`@EFD^H`B?`@BNNZV@JGDMEqA@q@H]NOFSLo@t@eB^i@d@i@t@m@n@Yz@EHBR\\`AdDFdEJ`@RNHIVGf@ATH`At@VXDl@GJU@WY[e@YSKC_@GgA@YMKMc@eBYeBSWg@AUTSVa@|@[tAAPDb@Nr@@TCb@[bACd@BNJ^Xh@N^BNB`@Nn@DJTNZ\\Rn@?\\c@zAA^B\\JZHHh@NZDVHTRHJBNAb@I|@B\\Th@PTVf@F`@Cl@Sj@WJ{Ae@{@OKBSPOr@IvA[z@UTw@JWE_@]QUUKKCu@Hs@NMEIIi@kAOUGE]OUMGIGY?y@XiB@]E]U[SGU?c@XcA`Aw@|@i@~@WbASPK?IC_Au@q@_@SAI@g@Lo@XK?YB[MYOQSQYi@Y_@AK@CDg@X]Bg@KUMi@e@[k@GU@MHQb@a@DIFU@WIYg@u@]y@IqAP{ABq@Is@e@iB}@wAw@oBk@aAa@g@g@w@Km@Q{AYkB_AmCc@eB?]H]NWxAiBZq@JYFm@@m@C[G]OWa@k@eAu@o@k@iBkCm@k@SKc@CK@]LS@e@]]]E@GDEH@`@PZJd@CHEFI?OSMe@Uk@") [(41.40436, 2.11683), (41.40454, 2.11647), (41.40479, 2.11611), (41.40519, 2.1157), (41.40526, 2.1156), (41.4054, 2.11546), (41.40547, 2.11533), ... (41.41868, 2.11667), (41.41859, 2.11653), (41.41853, 2.11634), (41.41855, 2.11629), (41.41858, 2.11625), (41.41863, 2.11625), (41.41871, 2.11635), (41.41878, 2.11654), (41.41889, 2.11676)]
Referències:
Cales de Menorca
Amb motiu del #30DAYMAPCHALLENGE (novembre de 2020), el dia 16 toca fer un mapa d’una illa. Participo enviant al Twitter un mapa de les cales de l’illa de Menorca.
I en aquest mapa tinc dos objectius. El primer, utiltizar un angle per pintar els labels de les cales, de manera que els noms estiguin ben orientats al voltant de l’illa; i també vull que en fer zoom, el font size dels labels sigui més gran o més petit.
Per trobar totes les cales he fet una consulta a Overpass Turbo. La cosa no és tan fàcil, perquè les cales les he cercat en el tag “natural”=”beach”, i després he vist que també és important el tag “natural”=”bay”. A més, no només s’ha de cercar per Cala, sinó també per Cales i Caló
La idea inicial era fer un posicionament i orientació automàtic dels noms de les cales. Però no és una cosa fàcil i ràpida, o sigui que al final ho he fet manualment, i el resultat es pot veure a la foto.
El mapa s’ha programat amb OpenLayers sobre la base dels mapes de OpenStreetMap.
Referències:
Cap de Creus amb BTT
L’estiu s’ha acabat, i enguany al Port de la Selva m’he emportat la bici de muntanya. He posat tots els tracks gravats en un sol mapa, utilitzant el package de OpenLayers i partint de l’exemple de la documentació. D’aquesta manera puc posar en perspectiva els camins que he recorregut, i sobretot ja pensar en nous camins i zones per explorar l’any vinent.
Esglésies romàniques de Catalunya
Finalment he acabat el projecte de les esglésies romàniques. Han estat uns mesos de documentació i de picar pedra, poc a poc, sense estressar-me, enmig del confinament.
Resumint, la feina que s’ha fet és:
- generar una bases de dades mysql de totes les esglésies
- replicar tota aquesta informació a OSM: hi havia una gran quantitat d’esglésies que no existien; s’ha convertit molts nodes a vies; s’ha aprofitat per editar cases i granges de l’entorn de les esglésises; s’ha actualitzat molts tags, com ara wikidata, wikipedia, ruins, etc. S’ha respectat al màxim la informació editada per altres usuaris.
- fer una pàgina web, amb diferents exemples de mapes, entre ells la cartografia del ICGC
Les edicions que s’han fet a OSM són manuals, i s’ha utilitzat scripts python per associar i actualitzar la informació de la bd amb la informació de OSM. Ha estat una feina gran de documentació, i moltes vegades la informació s’ha hagut de contrastar amb altres fonts, com els mapes del ICGC.
No considero que la feina estigui acabada, hi ha algunes coses que vull discutir amb la comunitat de OSM, però això haurà de ser després de l’estiu. Per exemple, tot i que les esglésies en qüestió són romàniques, l’etiqueta building:architecture=romanesque no sempre serà correcta. Per exemple, l’església de la Torre de Faia (Capella de Santa Magdalena), a Gisclareny, i que conec, és una construcció més moderna que va aprofitar les pedres de l’antiga església romànica. Mereix el tag building:architecture=romanesque? I és que la realitat sempre supera en complexitat a la teoria…
Referències:
- Esglésies romàniques de Catalunya
- vídeo
- Base de dades mysql: descàrrega
Utilitzar els mapes del Institut Cartogràfic i Geològic de Catalunya (ICGC)
Últimament estic consultant bastant el mapa topogràfic del ICGC, doncs la toponímia és molt correcta, i ho utilitzo per actualitzar la informació de OpenStreetMap (tot i que els puristes diuen que això no es pot fer, que no es poden consultar altres fonts que no sigui la realitat del coneixement real). Això em serveix molt per al projecte en què estic ara, les esglésies romàniques de Catalunya (i de pas, moltes masies aïllades que hi ha arreu del territori).
Fins ara els mapes del ICGC només els consultava, però no m’havia plantejat d’utilitzar aquests mapes topogràfics (i les ortofotos) en els meus mapes. Pensava que les llicències no permetrien el seu ús. Doncs estava equivocat: el ICGC dóna informació de com utilitzar els mapes topogràfics (i les ortofotos) tant amb les llibreries Openlayers com Leaflet, i proporciona el codi bàsic per pintar els mapes. La única cosa és que l’exemple de Openlayers que proposen és amb OL3 i els enllaços a les llibreries no funcionen, millor utilitzar OL4. Ho tinc explicat a la wiki.
Així doncs, ja tinc una altra possibilitat a l’hora de pintar els meus mapes.
- Info a la wiki
- Condicions d’ús de la geoinformació ICGC
- Institut Cartogràfic i Geològic de Catalunya (ICGC)
La Casa de Papel: aplicació web
Aquest és un exemple que he fet mano a mano amb el Pere, ara que estem confinats per la COVID-19 i estem a la meitat de la 3a temporada de La Casa de Papel.
Per a mi també ha servit per fer una aplicació OpenLayers amb codi Node, que sembla ser que tot anirà cap aquí. Tot està explicat a la wiki i als enllaços a què fa referència.
La renderització que s’ha fet del mapa amb blanc i negre és l’estil toner de Stamen. A mi particularment m’agrada molt, i crec que hem aconseguit una bona integració amb el disseny propi de la sèrie, que juga amb els colors negre i vermell.
Enllaços:
Vegueries/regions de Catalunya. Densitat de població
He estat programant uns scripts per fusionar fronteres (veure enllaç). Ha estat una mica més difícil del que em pensava, i m’ha quedat un codi Python bastant guarro, però al final he aconseguit de fusionar comarques de Catalunya per tal d’obtenir les regions/vegueries. Ja miraré d’arreglar el codi quan pugui, doncs estudiar els diferents casos és un problema de topologia bastant interessant i no massa difícil. Però ara, degut al confinament provocat pel corona-virus i la COVID-19, aquest és el millor codi que m’ha soritit (i ja hi he dedicat més hores de les que desitjava).
Tot això ve perquè vaig estar cercant el geojson de les vegueries i vaig ser incapaç de trobar-ho. Aquest codi també ha de servir per fusionar altres casos. Estic pensant per exemple fusionar els municipis de l’Alt Berguedà.
Amb tot això he fet com a primer exemple la densitat de població, classificat per vegueries.
Nota 31-03-2020: He millorat el codi i ara ja estic content del resultat final. Amb la nova versió he fusionat els municipis de l’Alt Berguedà.