<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=OpenStreetMap_-_OSM</id>
	<title>OpenStreetMap - OSM - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=OpenStreetMap_-_OSM"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=OpenStreetMap_-_OSM&amp;action=history"/>
	<updated>2026-09-22T23:59:21Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=OpenStreetMap_-_OSM&amp;diff=258987&amp;oldid=prev</id>
		<title>Joan: /* Edició */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=OpenStreetMap_-_OSM&amp;diff=258987&amp;oldid=prev"/>
		<updated>2020-02-26T15:44:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Edició&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
=Introducció=&lt;br /&gt;
*https://www.openstreetmap.org/&lt;br /&gt;
*https://learnosm.org/en/&lt;br /&gt;
*http://rutesgps.joanillo.org/&lt;br /&gt;
&lt;br /&gt;
L'objectiu és poder editar el mapa, per tal de contribuir a la comunitat.&lt;br /&gt;
&lt;br /&gt;
Em registro a OSM: joanqc@gmail.com / jq********&lt;br /&gt;
&lt;br /&gt;
La primera contribució a OSM que he fet per aprendre'n és l'article sobre els arbres monumentals de Catalunya:&lt;br /&gt;
*[[Arbres_Monumentals_de_Catalunya_(programaci%C3%B3_OSM)]]&lt;br /&gt;
&lt;br /&gt;
=Edició=&lt;br /&gt;
Un cop logats, podem editar amb l'editor integrat '''iD'''. Però quan se'n sap una mica, la gent utilitza un editor com JOSM (basat en Java)&lt;br /&gt;
&lt;br /&gt;
Tutorials de JOSM&lt;br /&gt;
*https://labs.mapbox.com/mapping/&lt;br /&gt;
==Instal·lació JOSM==&lt;br /&gt;
*https://josm.openstreetmap.de/&lt;br /&gt;
&lt;br /&gt;
Instal·lo JOSM a Linux Mint:&lt;br /&gt;
*https://josm.openstreetmap.de/wiki/Download#Ubuntu&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo deb https://josm.openstreetmap.de/apt $(lsb_release -sc) universe | sudo tee /etc/apt/sources.list.d/josm.list &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download and register the public key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -q https://josm.openstreetmap.de/josm-apt.key -O- | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now refresh your sources (you may need to install sudo apt-get install apt-transport-https)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# You can skip this first line if these packages were not installed before.&lt;br /&gt;
sudo apt-get remove josm josm-plugins&lt;br /&gt;
&lt;br /&gt;
# For the tested version&lt;br /&gt;
sudo apt-get install josm&lt;br /&gt;
# for the development version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S'instal·la bé, però el problema és que de Java tinc el openjdk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ josm&lt;br /&gt;
No valid JVM found to run JOSM&lt;br /&gt;
&lt;br /&gt;
$ java -version&lt;br /&gt;
openjdk version &amp;quot;11.0.3&amp;quot; 2019-04-16&lt;br /&gt;
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però amb el jar directament sí que funciona:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd Baixades&lt;br /&gt;
$ java -jar josm-tested.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Programació (querying): Osmapi (API v0.6), OverpassAPI, scripts Python=&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/Downloading_data&lt;br /&gt;
*https://towardsdatascience.com/loading-data-from-openstreetmap-with-python-and-the-overpass-api-513882a27fd0&lt;br /&gt;
&lt;br /&gt;
La primera manera de descarregar les dades és amb l'editor JOSM. Es selecciona una àrea, i es baixa totes les dades que conté en format XML (extensió .osm).&lt;br /&gt;
&lt;br /&gt;
map request docs:&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/API_v0.6#Retrieving_map_data_by_bounding_box:_GET_.2Fapi.2F0.6.2Fmap&lt;br /&gt;
&lt;br /&gt;
Per exemple, des del navegador:&lt;br /&gt;
*https://api.openstreetmap.org/api/0.6/map?bbox=11.54,48.14,11.543,48.145&lt;br /&gt;
descarrega en format osm la informació continguda en aquesta selecció (left, bottom, up, right)&lt;br /&gt;
Però millor fer-ho amb wget:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -O muenchen.osm &amp;quot;https://api.openstreetmap.org/api/0.6/map?bbox=11.54,48.14,11.543,48.145&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per exemple, la informació del Xalet del Moixeró:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -O xalet_moixero.osm &amp;quot;https://api.openstreetmap.org/api/0.6/map?bbox=1.856,42.254,1.859,42.256&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 &amp;lt;way id=&amp;quot;737604624&amp;quot; visible=&amp;quot;true&amp;quot; version=&amp;quot;1&amp;quot; changeset=&amp;quot;76054580&amp;quot; timestamp=&amp;quot;2019-10-22T14:30:11Z&amp;quot; user=&amp;quot;joanillo&amp;quot; uid=&amp;quot;10376780&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098710&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098711&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098712&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098713&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098714&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098715&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906098710&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;tag k=&amp;quot;building&amp;quot; v=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;Xalet del Moixeró&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/way&amp;gt;&lt;br /&gt;
 &amp;lt;way id=&amp;quot;737614072&amp;quot; visible=&amp;quot;true&amp;quot; version=&amp;quot;1&amp;quot; changeset=&amp;quot;76055749&amp;quot; timestamp=&amp;quot;2019-10-22T14:57:02Z&amp;quot; user=&amp;quot;joanillo&amp;quot; uid=&amp;quot;10376780&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906169083&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906169084&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188385&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188386&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188387&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188388&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188389&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6854789453&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188390&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6854789449&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6854789448&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;1434952694&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188391&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188392&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188393&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188394&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906188395&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;nd ref=&amp;quot;6906169083&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;tag k=&amp;quot;landuse&amp;quot; v=&amp;quot;farmland&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;Camp Llarg&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/way&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I aquests nodes fan referència a una informació geogràfica que trobem en el mateix fitxer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
 &amp;lt;node id=&amp;quot;6906098710&amp;quot; visible=&amp;quot;true&amp;quot; version=&amp;quot;1&amp;quot; changeset=&amp;quot;76054580&amp;quot; timestamp=&amp;quot;2019-10-22T14:30:11Z&amp;quot; user=&amp;quot;joanillo&amp;quot; uid=&amp;quot;10376780&amp;quot; lat=&amp;quot;42.2544841&amp;quot; lon=&amp;quot;1.8582213&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==OverpassAPI==&lt;br /&gt;
*http://overpass-api.de/&lt;br /&gt;
És una API només per descarregar informació. Per exemple, posant en el següent formulari:nhttp://overpass-api.de/query_form.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osm-script&amp;gt;&lt;br /&gt;
  &amp;lt;query type=&amp;quot;way&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;bbox-query e=&amp;quot;1.859&amp;quot; n=&amp;quot;42.256&amp;quot; s=&amp;quot;42.254&amp;quot; w=&amp;quot;1.856&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/query&amp;gt;&lt;br /&gt;
  &amp;lt;print/&amp;gt;&lt;br /&gt;
&amp;lt;/osm-script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*http://overpass-api.de/query_form.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osm-script&amp;gt;&lt;br /&gt;
  &amp;lt;query type=&amp;quot;way&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;bbox-query e=&amp;quot;1.859&amp;quot; n=&amp;quot;42.256&amp;quot; s=&amp;quot;42.254&amp;quot; w=&amp;quot;1.856&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/query&amp;gt;&lt;br /&gt;
  &amp;lt;print/&amp;gt;&lt;br /&gt;
&amp;lt;/osm-script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
obtins les vies (unió de nodes). Aquí trobo tant carreteres, camins, però també arees que delimiten un edifici (Xalet del Moixeró) o un camp (Camp Llarg).&lt;br /&gt;
&lt;br /&gt;
Filtrem per building o Xalet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osm-script&amp;gt;&lt;br /&gt;
  &amp;lt;query type=&amp;quot;way&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;bbox-query e=&amp;quot;1.859&amp;quot; n=&amp;quot;42.256&amp;quot; s=&amp;quot;42.254&amp;quot; w=&amp;quot;1.856&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;has-kv k=&amp;quot;building&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/query&amp;gt;&lt;br /&gt;
  &amp;lt;print/&amp;gt;&lt;br /&gt;
&amp;lt;/osm-script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osm-script&amp;gt;&lt;br /&gt;
  &amp;lt;query type=&amp;quot;way&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;bbox-query e=&amp;quot;1.859&amp;quot; n=&amp;quot;42.256&amp;quot; s=&amp;quot;42.254&amp;quot; w=&amp;quot;1.856&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;has-kv k=&amp;quot;name&amp;quot; v=&amp;quot;Xalet del Moixeró&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/query&amp;gt;&lt;br /&gt;
  &amp;lt;print/&amp;gt;&lt;br /&gt;
&amp;lt;/osm-script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Resultat:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;osm version=&amp;quot;0.6&amp;quot; generator=&amp;quot;Overpass API 0.7.55.7 8b86ff77&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;note&amp;gt;The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.&amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;meta osm_base=&amp;quot;2019-10-22T17:48:02Z&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;way id=&amp;quot;737604624&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098710&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098711&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098712&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098713&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098714&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098715&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;nd ref=&amp;quot;6906098710&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;building&amp;quot; v=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;Xalet del Moixeró&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/way&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/osm&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Podem aplicar tots els filtres que vulguem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;osm-script&amp;gt;&lt;br /&gt;
  &amp;lt;query type=&amp;quot;way&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;bbox-query e=&amp;quot;1.859&amp;quot; n=&amp;quot;42.256&amp;quot; s=&amp;quot;42.254&amp;quot; w=&amp;quot;1.856&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;has-kv k=&amp;quot;name&amp;quot; v=&amp;quot;Xalet del Moixeró&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;has-kv k=&amp;quot;building&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/query&amp;gt;&lt;br /&gt;
  &amp;lt;print/&amp;gt;&lt;br /&gt;
&amp;lt;/osm-script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb overpass-turbo.eu podem visualitzar directament els resultats a la web:&lt;br /&gt;
&lt;br /&gt;
Per exemple, en sortida JSON&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
This shows all mountains (peaks) in the Dolomites.&lt;br /&gt;
You may want to use the &amp;quot;zoom onto data&amp;quot; button. =&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
[out:json];&lt;br /&gt;
// search the relation of the Dolomites&lt;br /&gt;
rel&lt;br /&gt;
  [place=region]&lt;br /&gt;
  [&amp;quot;region:type&amp;quot;=&amp;quot;mountain_area&amp;quot;]&lt;br /&gt;
  [&amp;quot;name:en&amp;quot;=&amp;quot;Dolomites&amp;quot;];&lt;br /&gt;
// show the outline&lt;br /&gt;
out geom;&lt;br /&gt;
// turn the relation into an area&lt;br /&gt;
map_to_area;&lt;br /&gt;
// get all peaks in the area&lt;br /&gt;
node&lt;br /&gt;
  [natural=peak]&lt;br /&gt;
  (area);&lt;br /&gt;
out body qt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
L'opció del mapa també funciona, amb l'inconvenient de què no navega automàticament a l'àrea d'interès.&lt;br /&gt;
&lt;br /&gt;
El formulari admet dos notacions, ''Overpass QL'' (la que veiem en l'exemple de les Dolomites) i ''Overpass XML''&lt;br /&gt;
&lt;br /&gt;
Es poden utilitzar expressions regulars:&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide#Non-exact_names&lt;br /&gt;
&lt;br /&gt;
Com es veu en l'article, al voltant de Overpass API podem programar amb NodeJS o Python:&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/Overpass_API#Programs.2FScripts_around_Overpass&lt;br /&gt;
Python:&lt;br /&gt;
===overpassify===&lt;br /&gt;
*https://pypi.org/project/overpassify/&lt;br /&gt;
*https://github.com/gappleto97/overpassify&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install overpass&lt;br /&gt;
$ pip install overpassify&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(no acaba de funcionar, todo)&lt;br /&gt;
===overpy (Python)===&lt;br /&gt;
*https://python-overpy.readthedocs.io/en/latest/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install setuptools&lt;br /&gt;
$ pip install overpy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
autopistes.py:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import overpy&lt;br /&gt;
&lt;br /&gt;
api = overpy.Overpass()&lt;br /&gt;
&lt;br /&gt;
# fetch all ways and nodes&lt;br /&gt;
result = api.query(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    way(50.746,7.154,50.748,7.157) [&amp;quot;highway&amp;quot;];&lt;br /&gt;
    (._;&amp;gt;;);&lt;br /&gt;
    out body;&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for way in result.ways:&lt;br /&gt;
    print(&amp;quot;Name: %s&amp;quot; % way.tags.get(&amp;quot;name&amp;quot;, &amp;quot;n/a&amp;quot;))&lt;br /&gt;
    print(&amp;quot;  Highway: %s&amp;quot; % way.tags.get(&amp;quot;highway&amp;quot;, &amp;quot;n/a&amp;quot;))&lt;br /&gt;
    print(&amp;quot;  Nodes:&amp;quot;)&lt;br /&gt;
    for node in way.nodes:&lt;br /&gt;
        print(&amp;quot;    Lat: %f, Lon: %f&amp;quot; % (node.lat, node.lon))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python autopistes.py &lt;br /&gt;
Name: Rhedenstraße&lt;br /&gt;
  Highway: residential&lt;br /&gt;
  Nodes:&lt;br /&gt;
    Lat: 50.746874, Lon: 7.156307&lt;br /&gt;
    Lat: 50.746598, Lon: 7.156237&lt;br /&gt;
    Lat: 50.746477, Lon: 7.156199&lt;br /&gt;
    Lat: 50.746360, Lon: 7.156124&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===query.overpass (NodeJS)===&lt;br /&gt;
*https://www.npmjs.com/package/query-overpass&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo npm install -g query-overpass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo 'node(57.7,11.9,57.8,12.0)[amenity=bar];out;' | query-overpass&lt;br /&gt;
&lt;br /&gt;
{&amp;quot;type&amp;quot;:&amp;quot;FeatureCollection&amp;quot;,&amp;quot;features&amp;quot;:[{&amp;quot;type&amp;quot;:&amp;quot;Feature&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;node/2318390720&amp;quot;,&amp;quot;properties&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;node&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;2318390720&amp;quot;,&amp;quot;tags&amp;quot;:{&amp;quot;access&amp;quot;:&amp;quot;private&amp;quot;,&amp;quot;amenity&amp;quot;:&amp;quot;bar&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Göteborgs vinkällare&amp;quot;,&amp;quot;website&amp;quot;:&amp;quot;http://www.gbgvin.se&amp;quot;},&amp;quot;relations&amp;quot;:[],&amp;quot;meta&amp;quot;:{}},&amp;quot;geometry&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;Point&amp;quot;,&amp;quot;coordinates&amp;quot;:[11.9643378,57.7064417]}},{&amp;quot;type&amp;quot;:&amp;quot;Feature&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;node/2468969556&amp;quot;,&amp;quot;properties&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;node&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;2468969556&amp;quot;,&amp;quot;tags&amp;quot;:{&amp;quot;amenity&amp;quot;:&amp;quot;bar&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dancing Dingo&amp;quot;}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
o bé script ''query.ql'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node(57.7,11.9,57.8,12.0)[amenity=bar];out;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ query-overpass query.ql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Seguim article===&lt;br /&gt;
Seguim article:&lt;br /&gt;
*https://towardsdatascience.com/loading-data-from-openstreetmap-with-python-and-the-overpass-api-513882a27fd0&lt;br /&gt;
We have three basic components in the OSM data model, which are nodes, ways and relations which all come with an id. Many of the elements come with tags which describe specific features represented as key-value pairs. In simple terms, nodes are points on the maps (in latitude and longitude).&lt;br /&gt;
&lt;br /&gt;
Utilitzen '''overpassturbo''' per veure els cafès de Bagà:&lt;br /&gt;
*http://overpass-turbo.eu/&lt;br /&gt;
coordenades de Bagà (box) (es poden trobar fàcilment amb el JOSM, pestanya Límits):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
42.2485658&lt;br /&gt;
42.2548237&lt;br /&gt;
1.8581486&lt;br /&gt;
1.8699503&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
node[&amp;quot;amenity&amp;quot;=&amp;quot;cafe&amp;quot;]&lt;br /&gt;
  (42.2485658,1.8581486,42.2548237,1.8699503); &lt;br /&gt;
&lt;br /&gt;
Cerquem els bars de Bagà a ''overpassturbo'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node[&amp;quot;amenity&amp;quot;=&amp;quot;bar&amp;quot;]&lt;br /&gt;
  (42.2485658,1.8581486,42.2548237,1.8699503); &lt;br /&gt;
out;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i visualitzem els resultats en format osm o directament en el mapa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;osm version=&amp;quot;0.6&amp;quot; generator=&amp;quot;Overpass API 0.7.55.7 8b86ff77&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;note&amp;gt;The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.&amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;meta osm_base=&amp;quot;2019-10-23T14:55:02Z&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;node id=&amp;quot;3542340645&amp;quot; lat=&amp;quot;42.2526823&amp;quot; lon=&amp;quot;1.8604314&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;amenity&amp;quot; v=&amp;quot;bar&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;3542340794&amp;quot; lat=&amp;quot;42.2528414&amp;quot; lon=&amp;quot;1.8603926&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;amenity&amp;quot; v=&amp;quot;bar&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/osm&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altres possibilitats:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[out:csv(::id,::type,&amp;quot;name&amp;quot;,&amp;quot;addr:postcode&amp;quot;,&amp;quot;addr:city&amp;quot;,&amp;quot;addr:street&amp;quot;,&amp;quot;addr:housenumber&amp;quot;,&amp;quot;website&amp;quot;,&amp;quot; contact:email=*&amp;quot;)][timeout:300];&lt;br /&gt;
(&lt;br /&gt;
node[amenity=bar](42.2485658,1.8581486,42.2548237,1.8699503);&lt;br /&gt;
way[amenity=bar](42.2485658,1.8581486,42.2548237,1.8699503);&lt;br /&gt;
relation[amenity=bar](42.2485658,1.8581486,42.2548237,1.8699503);&lt;br /&gt;
);&lt;br /&gt;
out;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb '''bbox''' senzillament es fa la consulta sobre el mapa que tenim seleccionat, així no has de saber les coordenades:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[out:csv(::id,::type,&amp;quot;name&amp;quot;,&amp;quot;addr:postcode&amp;quot;,&amp;quot;addr:city&amp;quot;,&amp;quot;addr:street&amp;quot;,&amp;quot;addr:housenumber&amp;quot;,&amp;quot;website&amp;quot;,&amp;quot; contact:email=*&amp;quot;)][timeout:300];&lt;br /&gt;
(&lt;br /&gt;
node[amenity=drinking_water]({{bbox}});&lt;br /&gt;
way[amenity=drinking_water]({{bbox}});&lt;br /&gt;
relation[amenity=drinking_water]({{bbox}});&lt;br /&gt;
);&lt;br /&gt;
out;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ciutats del Regne Unit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
area[&amp;quot;ISO3166-1&amp;quot;=&amp;quot;GB&amp;quot;][admin_level=2];&lt;br /&gt;
node[&amp;quot;place&amp;quot;=&amp;quot;city&amp;quot;](area);&lt;br /&gt;
out;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per exemple, universitats espanyoles:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
area[&amp;quot;ISO3166-1&amp;quot;=&amp;quot;ES&amp;quot;][admin_level=2];&lt;br /&gt;
( node[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
  way[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
  rel[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
);&lt;br /&gt;
out center;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb '''curl''' també funciona, però és una mica d'embolic:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl --globoff -o output.xml &amp;quot;http://overpass-api.de/api/interpreter?data=area[%22ISO3166-1%22=%22ES%22][admin_level=2];node[%22amenity%22=%22university%22](area);out%20center;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;node id=&amp;quot;1867257725&amp;quot; lat=&amp;quot;40.5442248&amp;quot; lon=&amp;quot;-3.6985621&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;amenity&amp;quot; v=&amp;quot;university&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;Facultad de Filosofía y Letras&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
el mateix en format sortida JSON:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --globoff -o output.json &amp;quot;http://overpass-api.de/api/interpreter?data=[out:json];area[%22ISO3166-1%22=%22ES%22][admin_level=2];node[%22amenity%22=%22university%22](area);out%20center;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;node&amp;quot;,&lt;br /&gt;
  &amp;quot;id&amp;quot;: 6888773464,&lt;br /&gt;
  &amp;quot;lat&amp;quot;: 42.3444391,&lt;br /&gt;
  &amp;quot;lon&amp;quot;: -7.8567589,&lt;br /&gt;
  &amp;quot;tags&amp;quot;: {&lt;br /&gt;
    &amp;quot;amenity&amp;quot;: &amp;quot;university&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;B3: Vivir en sociedade\nFachada dun edificio da universidade da UVigo. É un edificio da administración pública.&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Pavillón 1 campus UVigo&amp;quot;,&lt;br /&gt;
    &amp;quot;note&amp;quot;: &amp;quot;I.C.C.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Fitxer:Universitats.png | thumbnail]]&lt;br /&gt;
I ara utilitzem un script python per mostrar i visualitzar els resultats:&lt;br /&gt;
&lt;br /&gt;
'''universitats.py''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
import json&lt;br /&gt;
overpass_url = &amp;quot;http://overpass-api.de/api/interpreter&amp;quot;&lt;br /&gt;
overpass_query = &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
[out:json];&lt;br /&gt;
area[&amp;quot;ISO3166-1&amp;quot;=&amp;quot;ES&amp;quot;][admin_level=2];&lt;br /&gt;
(node[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
 way[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
 rel[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
);&lt;br /&gt;
out center;&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
response = requests.get(overpass_url, &lt;br /&gt;
                        params={'data': overpass_query})&lt;br /&gt;
data = response.json()&lt;br /&gt;
#print data&lt;br /&gt;
&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
# Collect coords into list&lt;br /&gt;
coords = []&lt;br /&gt;
for element in data['elements']:&lt;br /&gt;
  if element['type'] == 'node':&lt;br /&gt;
    lon = element['lon']&lt;br /&gt;
    lat = element['lat']&lt;br /&gt;
    coords.append((lon, lat))&lt;br /&gt;
  elif 'center' in element:&lt;br /&gt;
    lon = element['center']['lon']&lt;br /&gt;
    lat = element['center']['lat']&lt;br /&gt;
    coords.append((lon, lat))&lt;br /&gt;
# Convert coordinates into numpy array&lt;br /&gt;
X = np.array(coords)&lt;br /&gt;
plt.plot(X[:, 0], X[:, 1], 'o')&lt;br /&gt;
plt.title('Universitats a EE')&lt;br /&gt;
plt.xlabel('Longitude')&lt;br /&gt;
plt.ylabel('Latitude')&lt;br /&gt;
plt.axis('equal')&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
u'amenity': u'university', u'description': u'Universidad t\xe9cnica adscrita a la UAB (Universidad Aut\xf3noma de Barcelona)', u'phone': u'+34 93 2805244', u'addr:street': u'Passeig Sant Joan Bosco',&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to access the Overpass API with Python is by using the overpy package as a wrapper. Here you can see how we can translate the previous example with the overpy package&lt;br /&gt;
&lt;br /&gt;
script '''universitats2.py''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import overpy&lt;br /&gt;
api = overpy.Overpass()&lt;br /&gt;
r = api.query(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
area[&amp;quot;ISO3166-1&amp;quot;=&amp;quot;ES&amp;quot;][admin_level=2];&lt;br /&gt;
(node[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
 way[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
 rel[&amp;quot;amenity&amp;quot;=&amp;quot;university&amp;quot;](area);&lt;br /&gt;
);&lt;br /&gt;
out center;&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
coords  = []&lt;br /&gt;
coords += [(float(node.lon), float(node.lat)) &lt;br /&gt;
	for node in r.nodes]&lt;br /&gt;
coords += [(float(way.center_lon), float(way.center_lat)) &lt;br /&gt;
	for way in r.ways]&lt;br /&gt;
coords += [(float(rel.center_lon), float(rel.center_lat)) &lt;br /&gt;
	for rel in r.relations]&lt;br /&gt;
&lt;br /&gt;
print(coords)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
, (-6.2988483, 36.5352253), (-6.2974176, 36.5331516), (2.1264003, 41.3953882), (2.627724, 41.6024539), (-7.8565381, 42.3446821), (-7.8562432, 42.3444397), (-7.8567589, 42.3444391)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==osmapi==&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/Osmapi&lt;br /&gt;
Amb '''osmapi''' podem també fer cerques. Però el que ens interessa més en la propera secció és que amb osmapi podem crear i editar nodes.&lt;br /&gt;
&lt;br /&gt;
Codi mínim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from osmapi import OsmApi&lt;br /&gt;
MyApi = OsmApi()&lt;br /&gt;
print(MyApi.NodeGet(123))&lt;br /&gt;
&lt;br /&gt;
{u'changeset': 532907, u'uid': 14298,&lt;br /&gt;
 u'timestamp': u'2007-09-29T09:19:17Z',&lt;br /&gt;
 u'lon': 10.790009299999999, u'visible': True,&lt;br /&gt;
 u'version': 1, u'user': u'Mede',&lt;br /&gt;
 u'lat': 59.9503044, u'tag': {}, u'id': 123}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Programació: Osmapi (crear, editar i esborrar nodes amb python)=&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/Osmapi&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install --user osmapi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja podem crear un node a OSM, seguint l'exemple bàsic de la documentació. script ''osmpai_v2.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# encoding: utf-8&lt;br /&gt;
from osmapi import OsmApi&lt;br /&gt;
MyApi = OsmApi(passwordfile=&amp;quot;/home/joan/projectes/arbres_monumentals/.password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
MyApi.ChangesetCreate({u&amp;quot;comment&amp;quot;: u&amp;quot;Modificació de prova en el Camp Llarg&amp;quot;})&lt;br /&gt;
print(MyApi.NodeCreate({u&amp;quot;lat&amp;quot;:42.25543, u&amp;quot;lon&amp;quot;:1.85804, u&amp;quot;tag&amp;quot;: {}}))&lt;br /&gt;
MyApi.ChangesetClose()&lt;br /&gt;
&lt;br /&gt;
#{u'changeset': 76186141, u'version': 1, u'lon': 1.85743, u'tag': {}, u'lat': #42.25532, u'id': 6914599486}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El format del passwordfile és joanqc@gmail.com:jq******** (o bé el nom d'usuari, ''joanillo'')&lt;br /&gt;
&lt;br /&gt;
Ara ja podem crear un arbre: ''osmapi_v3.py''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# encoding: utf-8&lt;br /&gt;
from osmapi import OsmApi&lt;br /&gt;
MyApi = OsmApi(passwordfile=&amp;quot;/home/joan/projectes/arbres_monumentals/.password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
MyApi.ChangesetCreate({u&amp;quot;comment&amp;quot;: u&amp;quot;Modificació de prova en el Camp Llarg&amp;quot;})&lt;br /&gt;
data = {u&amp;quot;lat&amp;quot;:42.25543, u&amp;quot;lon&amp;quot;:1.85804, u&amp;quot;tag&amp;quot;: { u&amp;quot;natural&amp;quot;: u&amp;quot;tree&amp;quot;, u&amp;quot;name&amp;quot;: u&amp;quot;Pi del Camp Llarg&amp;quot; }}&lt;br /&gt;
print(MyApi.NodeCreate(data))&lt;br /&gt;
MyApi.ChangesetClose()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ara ja puc afegir totes les dades de l'arbre, i gravar automàticament les dades (amb flush()): ''osmapi_v4.py''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# encoding: utf-8&lt;br /&gt;
from osmapi import OsmApi&lt;br /&gt;
MyApi = OsmApi(passwordfile=&amp;quot;/home/joan/projectes/arbres_monumentals/.password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
MyApi.ChangesetCreate({u&amp;quot;comment&amp;quot;: u&amp;quot;Modificació de prova en el Camp Llarg&amp;quot;})&lt;br /&gt;
data = {u&amp;quot;lat&amp;quot;:42.25543, u&amp;quot;lon&amp;quot;:1.85804, u&amp;quot;tag&amp;quot;: { u&amp;quot;natural&amp;quot;: u&amp;quot;tree&amp;quot;, u&amp;quot;name&amp;quot;: u&amp;quot;Pi del Camp Llarg&amp;quot;, u&amp;quot;species&amp;quot;: u&amp;quot;Olea europea&amp;quot;, u&amp;quot;species:ca&amp;quot;: u&amp;quot;Olivera&amp;quot;, u&amp;quot;note&amp;quot;: u&amp;quot;Arbre Monumental (MA-01.001.01) https://ca.wikipedia.org/wiki/Llista_d%27arbres_monumentals_de_Catalunya&amp;quot; }}&lt;br /&gt;
print(MyApi.NodeCreate(data))&lt;br /&gt;
MyApi.ChangesetClose()&lt;br /&gt;
MyApi.flush()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Donat un node que ja existeix, el vull actualitzar. Aquesta és la manera de procedir: (''osmapi_v5.py''):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# encoding: utf-8&lt;br /&gt;
from osmapi import OsmApi&lt;br /&gt;
MyApi = OsmApi(passwordfile=&amp;quot;/home/joan/projectes/arbres_monumentals/.password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
MyApi.ChangesetCreate({u&amp;quot;comment&amp;quot;: u&amp;quot;Modificació de prova4 en el Camp Llarg&amp;quot;})&lt;br /&gt;
node = MyApi.NodeGet(6914950285)&lt;br /&gt;
tags = node[&amp;quot;tag&amp;quot;]&lt;br /&gt;
tags[u&amp;quot;natural&amp;quot;] = u&amp;quot;tree&amp;quot;&lt;br /&gt;
tags[u&amp;quot;name&amp;quot;] = u&amp;quot;Pi del Camp Llarg&amp;quot;&lt;br /&gt;
tags[u&amp;quot;species&amp;quot;] = u&amp;quot;Pinus sylvestris&amp;quot;&lt;br /&gt;
tags[u&amp;quot;species:ca&amp;quot;] = u&amp;quot;pi roig&amp;quot;&lt;br /&gt;
tags[u&amp;quot;note&amp;quot;] = u&amp;quot;Arbre Monumental (MA-01.001.01) https://ca.wikipedia.org/wiki/Llista_d%27arbres_monumentals_de_Catalunya&amp;quot;&lt;br /&gt;
&lt;br /&gt;
print(MyApi.NodeUpdate(node))&lt;br /&gt;
MyApi.ChangesetClose()&lt;br /&gt;
MyApi.flush()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara vull esborrar el node programàticament (''osmpai_v6.py''):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# encoding: utf-8&lt;br /&gt;
from osmapi import OsmApi&lt;br /&gt;
MyApi = OsmApi(passwordfile=&amp;quot;/home/joan/projectes/arbres_monumentals/.password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
MyApi.ChangesetCreate({u&amp;quot;comment&amp;quot;: u&amp;quot;Eliminació del pi en el Camp Llarg&amp;quot;})&lt;br /&gt;
node = MyApi.NodeGet(6914920685)&lt;br /&gt;
&lt;br /&gt;
MyApi.NodeDelete(node)&lt;br /&gt;
MyApi.ChangesetClose()&lt;br /&gt;
MyApi.flush()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si el que vull és esborrar un ''tag'' que ja existeix, he de pensar que els ''tags'' és un diccionari, i en un diccionari podem eliminar membres:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#eliminar un tag: https://stackoverflow.com/questions/5844672/delete-an-element-from-a-dictionary&lt;br /&gt;
del tags[u&amp;quot;recycling&amp;quot;] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(en aquest exemple dels Punts Verds m'havia quedat el tag recyclint=&amp;quot;&amp;quot; (cadena buida) degut a un error, i el que s'ha de fer és eliminar el tag.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2019&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>