<?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=Traveling_Salesman_problem_i_arbres_singulars_de_Barcelona</id>
	<title>Traveling Salesman problem i arbres singulars de Barcelona - 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=Traveling_Salesman_problem_i_arbres_singulars_de_Barcelona"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Traveling_Salesman_problem_i_arbres_singulars_de_Barcelona&amp;action=history"/>
	<updated>2026-04-20T05:53:25Z</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=Traveling_Salesman_problem_i_arbres_singulars_de_Barcelona&amp;diff=258707&amp;oldid=prev</id>
		<title>Joan: /* Ruta arbres singulars #2. Més Modificacions */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Traveling_Salesman_problem_i_arbres_singulars_de_Barcelona&amp;diff=258707&amp;oldid=prev"/>
		<updated>2019-12-09T21:18:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ruta arbres singulars #2. Més Modificacions&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;=Introducció=&lt;br /&gt;
L'any passat estava encaparrat amb la idea d'una activitat didàctica per conèixer diferents tipus d'arbre que tenim en el nostre entorn (per exemple, els arbres singulars de Barcelona).&lt;br /&gt;
&lt;br /&gt;
Anem a proposar ara aquesta activitat ajuntant d'una banda la tecnologia que em permet dibuixar sobre un mapa OSM (dibuixar icones i línies); i d'altra banda, amb programació Python, resoldre el problema del ''comercial viatger'': com un comercial pot visitar diferents punts, sense repetir-los, minimitzant el cost del viatge (minimitzant la distància en el cas més senzill).&lt;br /&gt;
=Referències=&lt;br /&gt;
*https://ca.wikipedia.org/wiki/Problema_del_viatjant_de_comer%C3%A7&lt;br /&gt;
*https://github.com/Forceflow/Ambiance_TSP&lt;br /&gt;
*https://wiki.openstreetmap.org/wiki/OpenLayers&lt;br /&gt;
&lt;br /&gt;
=Problema del viatjant de comerç=&lt;br /&gt;
En Python hi ha diferents implementacions, que he estat mirant. Nosaltres volem recórrer una sèrie d'arbres de forma que l'inici i el final siguin el mateix punt (retornar a l'inici).&lt;br /&gt;
&lt;br /&gt;
La solució que m'ha agradat més és:&lt;br /&gt;
*https://github.com/Forceflow/Ambiance_TSP&lt;br /&gt;
i l'adapto al meu cas dels arbres singulars. Amb OSM seleccionaré els arbres que vull visitar.&lt;br /&gt;
=Exemple1: Eixample, Gràcia, El Coll, Parc Güell, Vallcarca, Guinardó=&lt;br /&gt;
[[Fitxer:Arbres singulars eixample coll vallcarca guinardo.png | thumbnail]]&lt;br /&gt;
'''NOTA''': aquesta exemple no és el millor. Està clar que per la disposició dels arbres, la solució serà una ruta circular. D'altra banda, el fet d'unir amb una línia recta és només una aproximació del cost de la ruta. En el nostre cas haurem de travessar el Túnel de la Rovira, que implica pujar i baixar de la muntanya. A més, hem de tenir present que els arbres del Parc Güell no es poden visitar a no ser que paguis l'entrada.&lt;br /&gt;
*www.overpass-turbo.eu&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node[&amp;quot;name&amp;quot;~&amp;quot;arbre singular&amp;quot;]&lt;br /&gt;
  ({{bbox}});&lt;br /&gt;
(._;&amp;gt;;);&lt;br /&gt;
out;&lt;br /&gt;
{{style:&lt;br /&gt;
&lt;br /&gt;
node[natural=tree] {&lt;br /&gt;
  icon-image: url('https://img.icons8.com/cotton/2x/tree.png');&lt;br /&gt;
  icon-width: 25;&lt;br /&gt;
  icon-height: 25; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dades obtingudes:&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-11-21T19:25:01Z&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618686054&amp;quot; lat=&amp;quot;41.4151676&amp;quot; lon=&amp;quot;2.1536067&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Garrofer&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Parc Güell (viaductes)&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Ceratónia siliqua&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Garrofer&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-garrofer-parc-guell-viaductes_99400455077.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618688164&amp;quot; lat=&amp;quot;41.4149403&amp;quot; lon=&amp;quot;2.1547896&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Ullastre&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Parc Güell&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Olea europaea L. var. sylvestris&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Ullastre&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-ullastre-parc-guell_99400454989.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618690960&amp;quot; lat=&amp;quot;41.4071839&amp;quot; lon=&amp;quot;2.1556486&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Xicranda&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. pl. del Nord&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Jacaranda mimosifolia&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Xicranda&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-xicranda-pl-del-nord_99400454976.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618692827&amp;quot; lat=&amp;quot;41.4136463&amp;quot; lon=&amp;quot;2.1466483&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Pi blanc&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. c. Sant Camil, 32&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Pinus halepensis&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Pi blanc&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-pi-blanc-c-sant-camil-32_99400455000.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618711799&amp;quot; lat=&amp;quot;41.4073894&amp;quot; lon=&amp;quot;2.1507417&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Washingtònia de Mèxic&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. pl. Lesseps&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Washingtonia robusta&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Washingtònia de Mèxic&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-washingtonia-de-mexic-pl-lesseps_99400454986.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618730503&amp;quot; lat=&amp;quot;41.4056619&amp;quot; lon=&amp;quot;2.1623828&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Arbre de l'amor, arbre de Jude&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. pl. Joanic&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Cercis siliquastrum&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Arbre de l'amor, arbre de Jude&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-arbre-de-l-amor-arbre-de-jude-pl-joanic_99400455041.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618744084&amp;quot; lat=&amp;quot;41.4141479&amp;quot; lon=&amp;quot;2.1530253&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Garrofer&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Parc Güell&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Ceratónia siliqua&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Garrofer&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-garrofer-parc-guell_99400455078.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4618762649&amp;quot; lat=&amp;quot;41.4134138&amp;quot; lon=&amp;quot;2.1652644&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Figuera&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Parc de les Aigües del Guinardó&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Ficus carica&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Figuera&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-figuera-parc-de-les-aigues-del-guinardo_99400455012.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4657040434&amp;quot; lat=&amp;quot;41.4190239&amp;quot; lon=&amp;quot;2.1643387&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Arbre de l'amor, arbre de Jude&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. c. Panorama, s/n&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Cercis siliquastrum&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Arbre de l'amor, arbre de Jude&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-arbre-de-l-amor-arbre-de-jude-c-panorama-sn_99400455042.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;4657043843&amp;quot; lat=&amp;quot;41.4132134&amp;quot; lon=&amp;quot;2.1656951&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Fotínia del Japó&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Parc de les Aigües del Guinardó&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Photinia serrulata&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Fotínia del Japó&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-fotinia-del-japo-parc-de-les-aigues-del-guinardo_99400455010.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;6924087390&amp;quot; lat=&amp;quot;41.4055670&amp;quot; lon=&amp;quot;2.1586280&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Alzina&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. c. Encarnació 13&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Quercus ilex ssp. ilex&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Alzina&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-alzina-c-encarnacio-13_99400638027.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;6924253586&amp;quot; lat=&amp;quot;41.4187200&amp;quot; lon=&amp;quot;2.1482400&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Llentiscle, mata&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Parc de la Creueta del Coll&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Pistacia lentiscus&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Llentiscle, mata&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-llentiscle-mata-parc-de-la-creueta-del-coll_99400638023.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;6924265587&amp;quot; lat=&amp;quot;41.4077640&amp;quot; lon=&amp;quot;2.1539350&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Palmera de Canàries&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. Jardins Mestre Balcells&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Phoenix canariensis&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Palmera de Canàries&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-palmera-de-canaries-jardins-mestre-balcells_99400455049.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;node id=&amp;quot;6924265588&amp;quot; lat=&amp;quot;41.4080160&amp;quot; lon=&amp;quot;2.1484960&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;name&amp;quot; v=&amp;quot;arbre singular: Washingtònia de Califòrnia&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;natural&amp;quot; v=&amp;quot;tree&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;note&amp;quot; v=&amp;quot;Arbres d'interès local de Barcelona. av. República Argentina 16-18-26&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species&amp;quot; v=&amp;quot;Washingtonia filifera&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;species:ca&amp;quot; v=&amp;quot;Washingtònia de Califòrnia&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;tag k=&amp;quot;website&amp;quot; v=&amp;quot;https://www.barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/arbres-interes-local/arbre-d-interes-local-washingtonia-de-california-av-republica-argentina-16-18-26-antiga-masia-c_99400454980.html&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;
I el CSV amb els arbres, ''arbres_singulars_example_coll_pguell_vallcarca_guinardo.csv'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Place,Name_Cat,Name_Sc,Lat,Long&lt;br /&gt;
arbre1,Garrofer,Ceratónia siliqua,41.4151676,2.1536067&lt;br /&gt;
arbre2,Ullastre,Olea europaea L. var. sylvestris,41.4149403,2.1547896&lt;br /&gt;
arbre3,Xicranda,Jacaranda mimosifolia,41.4071839,2.1556486&lt;br /&gt;
arbre4,Pi blanc,Pinus halepensis,41.4136463,2.1466483&lt;br /&gt;
arbre5,Washingtònia de Mèxic,Washingtonia robusta,41.4073894,2.1507417&lt;br /&gt;
arbre6,Arbre de l'amor,Cercis siliquastrum,41.4056619,2.1623828&lt;br /&gt;
arbre7,Garrofer,Ceratónia siliqua,41.4141479,2.1530253&lt;br /&gt;
arbre8,Figuera,Ficus carica,41.4134138,2.1652644&lt;br /&gt;
arbre9,Arbre de l'amor,Cercis siliquastrum,41.4190239,2.1643387&lt;br /&gt;
arbre10,Fotínia del Japó,Photinia serrulata,41.4132134,2.1656951&lt;br /&gt;
arbre11,Alzina,Quercus ilex ssp. ilex,41.4055670,2.1586280&lt;br /&gt;
arbre12,Llentiscle (mata),Pistacia lentiscus,41.4187200,2.1482400&lt;br /&gt;
arbre13,Palmera de Canàries,Phoenix canariensis,41.4077640,2.1539350&lt;br /&gt;
arbre14,Washingtònia de Califòrnia,Washingtonia filifera,41.4080160,2.1484960&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Solució arbres_singulars_example_coll_pguell_vallcarca_guinardo.csv=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 TSP_v2.py arbres_singulars_example_coll_pguell_vallcarca_guinardo.csv &lt;br /&gt;
# Brought to you by Nerdland podcast - www.nerdland.be&lt;br /&gt;
# Info: Using  arbres_singulars_example_coll_pguell_vallcarca_guinardo.csv as input for location data&lt;br /&gt;
# Loaded 14 places from csv file:&lt;br /&gt;
   arbre1 | 41.4151676 2.1536067&lt;br /&gt;
   arbre2 | 41.4149403 2.1547896&lt;br /&gt;
   arbre3 | 41.4071839 2.1556486&lt;br /&gt;
   arbre4 | 41.4136463 2.1466483&lt;br /&gt;
   arbre5 | 41.4073894 2.1507417&lt;br /&gt;
   arbre6 | 41.4056619 2.1623828&lt;br /&gt;
   arbre7 | 41.4141479 2.1530253&lt;br /&gt;
   arbre8 | 41.4134138 2.1652644&lt;br /&gt;
   arbre9 | 41.4190239 2.1643387&lt;br /&gt;
   arbre10 | 41.4132134 2.1656951&lt;br /&gt;
   arbre11 | 41.4055670 2.1586280&lt;br /&gt;
   arbre12 | 41.4187200 2.1482400&lt;br /&gt;
   arbre13 | 41.4077640 2.1539350&lt;br /&gt;
   arbre14 | 41.4080160 2.1484960&lt;br /&gt;
# Original route:&lt;br /&gt;
  arbre1 -&amp;gt; arbre2 -&amp;gt; arbre3 -&amp;gt; arbre4 -&amp;gt; arbre5 -&amp;gt; arbre6 -&amp;gt; arbre7 -&amp;gt; arbre8 -&amp;gt; arbre9 -&amp;gt; arbre10 -&amp;gt; arbre11 -&amp;gt; arbre12 -&amp;gt; arbre13 -&amp;gt; arbre14 -&amp;gt; arbre1&lt;br /&gt;
# Solving route (time limit: 30 seconds)&lt;br /&gt;
# Optimized route:&lt;br /&gt;
arbre1 -&amp;gt; arbre2 -&amp;gt; arbre9 -&amp;gt; arbre8 -&amp;gt; arbre10 -&amp;gt; arbre6 -&amp;gt; arbre11 -&amp;gt; arbre3 -&amp;gt; arbre13 -&amp;gt; arbre5 -&amp;gt; arbre14 -&amp;gt; arbre4 -&amp;gt; arbre12 -&amp;gt; arbre7 -&amp;gt;  arbre1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I per tant, l'ordre dels punts amb què hem de pintar la ruta és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arbre1 | 41.4151676 2.1536067&lt;br /&gt;
arbre2 | 41.4149403 2.1547896&lt;br /&gt;
arbre9 | 41.4190239 2.1643387   &lt;br /&gt;
arbre8 | 41.4134138 2.1652644&lt;br /&gt;
arbre10 | 41.4132134 2.1656951&lt;br /&gt;
arbre6 | 41.4056619 2.1623828&lt;br /&gt;
arbre11 | 41.4055670 2.1586280&lt;br /&gt;
arbre3 | 41.4071839 2.1556486&lt;br /&gt;
arbre13 | 41.4077640 2.1539350&lt;br /&gt;
arbre5 | 41.4073894 2.1507417&lt;br /&gt;
arbre14 | 41.4080160 2.1484960&lt;br /&gt;
arbre4 | 41.4136463 2.1466483&lt;br /&gt;
arbre12 | 41.4187200 2.1482400&lt;br /&gt;
arbre7 | 41.4141479 2.1530253&lt;br /&gt;
arbre1 | 41.4151676 2.1536067&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Dibuixar la ruta amb OSM i OpenLayers=&lt;br /&gt;
[[Fitxer:Ruta arbres singulars.png | thumbnail]]&lt;br /&gt;
Amb ''OpenLayers'' hem aconseguit ficar una capa d'icones i de text sobre els punts. '''mapa_arbres_singulars_v3.html''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!doctype html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;https://cdnjs.cloudflare.com/ajax/libs/openlayers/4.6.4/ol.css&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;//fonts.googleapis.com/css?family=Ubuntu&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
      body {background-color: lightblue;}&lt;br /&gt;
      &lt;br /&gt;
      .map {&lt;br /&gt;
        width:1100px;&lt;br /&gt;
        height: 1000px;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      .info {&lt;br /&gt;
        position: absolute; &lt;br /&gt;
        margin-left:1120px;&lt;br /&gt;
        font-family: Ubuntu; &lt;br /&gt;
        font-size: 24px; &lt;br /&gt;
        font-style: normal; &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      h1 {&lt;br /&gt;
        font-family: Ubuntu; &lt;br /&gt;
        font-size: 34px;&lt;br /&gt;
        font-style: normal;&lt;br /&gt;
        font-weight: bold; &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      h2 {&lt;br /&gt;
        font-family: Ubuntu; &lt;br /&gt;
        font-size: 24px;&lt;br /&gt;
        font-style: normal;&lt;br /&gt;
        font-weight: bold; &lt;br /&gt;
      }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://cdnjs.cloudflare.com/ajax/libs/openlayers/4.6.4/ol.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;OpenLayers example&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Ruta Arbres Singulars: Eixample, Gràcia, El Coll, Parc Güell, Vallcarca, Guinardó&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;info&amp;quot; class=&amp;quot;info&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!--&lt;br /&gt;
      &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;hh rt eiui ih&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;hh rtui ih&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;hh rt ei cgdr rreui ih&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;map&amp;quot; class=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
      var map = new ol.Map({&lt;br /&gt;
        target: 'map',&lt;br /&gt;
        layers: [&lt;br /&gt;
          new ol.layer.Tile({&lt;br /&gt;
            source: new ol.source.OSM()&lt;br /&gt;
          })&lt;br /&gt;
        ],&lt;br /&gt;
        view: new ol.View({&lt;br /&gt;
          center: ol.proj.fromLonLat([2.15750,41.41188]),&lt;br /&gt;
          zoom: 16&lt;br /&gt;
        })&lt;br /&gt;
      });&lt;br /&gt;
      /*&lt;br /&gt;
      arbre1 | 41.4151676 2.1536067 - 2.1536067,41.4151676&lt;br /&gt;
      arbre2 | 41.4149403 2.1547896 - 2.1547896,41.4149403&lt;br /&gt;
      arbre9 | 41.4190239 2.1643387 - 2.1643387,41.4190239 &lt;br /&gt;
      arbre8 | 41.4134138 2.1652644 - 2.1652644,41.4134138&lt;br /&gt;
      arbre10 | 41.4132134 2.1656951 - 2.1656951,41.4132134&lt;br /&gt;
      arbre6 | 41.4056619 2.1623828 - 2.1623828,41.4056619&lt;br /&gt;
      arbre11 | 41.4055670 2.1586280 - 2.1586280,41.4055670 &lt;br /&gt;
      arbre3 | 41.4071839 2.1556486 - 2.1556486,41.4071839 &lt;br /&gt;
      arbre13 | 41.4077640 2.1539350 - 2.1539350,41.4077640 &lt;br /&gt;
      arbre5 | 41.4073894 2.1507417 - 2.1507417,41.4073894 &lt;br /&gt;
      arbre14 | 41.4080160 2.1484960 - 2.1484960,41.4080160 &lt;br /&gt;
      arbre4 | 41.4136463 2.1466483 - 2.1466483,41.4136463 &lt;br /&gt;
      arbre12 | 41.4187200 2.1482400 - 2.1482400,41.4187200 &lt;br /&gt;
      arbre7 | 41.4141479 2.1530253 - 2.1530253,41.4141479 &lt;br /&gt;
      arbre1 | 41.4151676 2.1536067 - 2.1536067,41.4151676 &lt;br /&gt;
&lt;br /&gt;
      arbre1,Garrofer,Ceratónia siliqua,41.4151676,2.1536067&lt;br /&gt;
      arbre2,Ullastre,Olea europaea L. var. sylvestris,41.4149403,2.1547896&lt;br /&gt;
      arbre3,Xicranda,Jacaranda mimosifolia,41.4071839,2.1556486&lt;br /&gt;
      arbre4,Pi blanc,Pinus halepensis,41.4136463,2.1466483&lt;br /&gt;
      arbre5,Washingtònia de Mèxic,Washingtonia robusta,41.4073894,2.1507417&lt;br /&gt;
      arbre6,Arbre de l'amor,Cercis siliquastrum,41.4056619,2.1623828&lt;br /&gt;
      arbre7,Garrofer,Ceratónia siliqua,41.4141479,2.1530253&lt;br /&gt;
      arbre8,Figuera,Ficus carica,41.4134138,2.1652644&lt;br /&gt;
      arbre9,Arbre de l'amor,Cercis siliquastrum,41.4190239,2.1643387&lt;br /&gt;
      arbre10,Fotínia del Japó,Photinia serrulata,41.4132134,2.1656951&lt;br /&gt;
      arbre11,Alzina,Quercus ilex ssp. ilex,41.4055670,2.1586280&lt;br /&gt;
      arbre12,Llentiscle (mata),Pistacia lentiscus,41.4187200,2.1482400&lt;br /&gt;
      arbre13,Palmera de Canàries,Phoenix canariensis,41.4077640,2.1539350&lt;br /&gt;
      arbre14,Washingtònia de Califòrnia,Washingtonia filifera,41.4080160,2.1484960&lt;br /&gt;
&lt;br /&gt;
      */&lt;br /&gt;
&lt;br /&gt;
      var arbres = [ &lt;br /&gt;
        {'name':'Garrofer','point':[2.1536067,41.4151676]},&lt;br /&gt;
        {'name':'Ullastre','point':[2.1547896,41.4149403]},&lt;br /&gt;
        {'name':'Arbre de l\'amor','point':[2.1643387,41.4190239]},&lt;br /&gt;
        {'name':'Figuera','point':[2.1652644,41.4134138]},&lt;br /&gt;
        {'name':'Fotínia del Japó','point':[2.1656951,41.4132134]},&lt;br /&gt;
        {'name':'Arbre de l\'amor','point':[2.1623828,41.4056619]},&lt;br /&gt;
        {'name':'Alzina','point':[2.1586280,41.4055670]},&lt;br /&gt;
        {'name':'Xicranda','point':[2.1556486,41.4071839]},&lt;br /&gt;
        {'name':'Palmera de Canàries','point':[2.1539350,41.4077640]},&lt;br /&gt;
        {'name':'Washingtònia de Mèxic','point':[2.1507417,41.4073894]},&lt;br /&gt;
        {'name':'Washingtònia de Califòrnia','point':[2.1484960,41.4080160]},&lt;br /&gt;
        {'name':'Pi blanc','point':[2.1466483,41.4136463]},&lt;br /&gt;
        {'name':'Llentiscle','point':[2.1482400,41.4187200]},&lt;br /&gt;
        {'name':'Garrofer','point':[2.1530253,41.4141479]},&lt;br /&gt;
        {'name':'Garrofer','point':[2.1536067,41.4151676]}&lt;br /&gt;
        ];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      var linies = []&lt;br /&gt;
      var icones = []&lt;br /&gt;
&lt;br /&gt;
      for ( var i = 0; i &amp;lt; arbres.length; i++) {&lt;br /&gt;
          arbres[i].point = ol.proj.fromLonLat(arbres[i].point);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      var linies = [];&lt;br /&gt;
      var linia_style = [&lt;br /&gt;
				// linestring&lt;br /&gt;
				new ol.style.Style({&lt;br /&gt;
				  stroke: new ol.style.Stroke({&lt;br /&gt;
					color: '#d12710',&lt;br /&gt;
					width: 4&lt;br /&gt;
				  })&lt;br /&gt;
				})&lt;br /&gt;
			  ];&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
      for ( var i = 0; i &amp;lt; arbres.length-1; i++) {&lt;br /&gt;
        //console.log(arbres[i].name)&lt;br /&gt;
        //console.log(arbres[i].point)&lt;br /&gt;
        var linia = new ol.layer.Vector({&lt;br /&gt;
            source: new ol.source.Vector({&lt;br /&gt;
            features: [new ol.Feature({&lt;br /&gt;
              geometry: new ol.geom.LineString([arbres[i].point, arbres[i+1].point]),&lt;br /&gt;
              name: 'Line',&lt;br /&gt;
            })]&lt;br /&gt;
          })&lt;br /&gt;
        });&lt;br /&gt;
        linia.setStyle(linia_style);&lt;br /&gt;
        linies.push(linia);&lt;br /&gt;
&lt;br /&gt;
        var iconPoint = new ol.Feature({&lt;br /&gt;
            geometry: new ol.geom.Point(arbres[i].point)&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        iconPoint.setStyle(styleFunction);&lt;br /&gt;
        iconPoint.set('description', (i+1) + &amp;quot;.&amp;quot; + arbres[i].name);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        icones.push(iconPoint);&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      var vectorSourceIcones = new ol.source.Vector({&lt;br /&gt;
          features: icones&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      var vectorLayerIcones = new ol.layer.Vector({&lt;br /&gt;
          source: vectorSourceIcones&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      map.addLayer(vectorLayerIcones);&lt;br /&gt;
&lt;br /&gt;
      for (var i = 0; i &amp;lt; linies.length; i++) {&lt;br /&gt;
        map.addLayer(linies[i]);&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      omplir_llista_arbres(arbres);&lt;br /&gt;
&lt;br /&gt;
//https://stackoverflow.com/questions/39006597/openlayers-3-add-text-label-to-feature&lt;br /&gt;
//he afegit la funcionalitat de ficar una icona que tenia en la versió anterior&lt;br /&gt;
function styleFunction() {&lt;br /&gt;
  return [&lt;br /&gt;
    new ol.style.Style({&lt;br /&gt;
        fill: new ol.style.Fill({&lt;br /&gt;
        color: 'rgba(255,255,255,1)'&lt;br /&gt;
      }),&lt;br /&gt;
      image: new ol.style.Icon(({&lt;br /&gt;
        anchor: [0.5, 1],&lt;br /&gt;
        src: &amp;quot;./img/tree_25_25.png&amp;quot;&lt;br /&gt;
      })),&lt;br /&gt;
      stroke: new ol.style.Stroke({&lt;br /&gt;
        color: '#3399CC',&lt;br /&gt;
        width: 3.25&lt;br /&gt;
      }),&lt;br /&gt;
      text: new ol.style.Text({&lt;br /&gt;
        font: '14px Calibri,sans-serif',&lt;br /&gt;
        offsetY: '-15',&lt;br /&gt;
        textAlign: 'left',&lt;br /&gt;
        fill: new ol.style.Fill({ color: '#000' }),&lt;br /&gt;
        stroke: new ol.style.Stroke({&lt;br /&gt;
          color: '#fff', width: 2&lt;br /&gt;
        }),&lt;br /&gt;
        // get the text from the feature - `this` is ol.Feature&lt;br /&gt;
        // and show only under certain resolution&lt;br /&gt;
        text: map.getView().getZoom() &amp;gt; 12 ? '   ' + this.get('description') : ''&lt;br /&gt;
      })&lt;br /&gt;
    })&lt;br /&gt;
  ];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function omplir_llista_arbres(arbres) {&lt;br /&gt;
  var ol = document.createElement('ol');&lt;br /&gt;
  for ( var i = 0; i &amp;lt; arbres.length-1; i++) {&lt;br /&gt;
    console.log(arbres[i].name);&lt;br /&gt;
    var li = document.createElement('li');&lt;br /&gt;
    li.innerHTML= arbres[i].name;&lt;br /&gt;
    ol.appendChild(li);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  document.getElementById(&amp;quot;info&amp;quot;).appendChild(ol);&lt;br /&gt;
}&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://openlayers.org/en/latest/examples/vector-labels.html&lt;br /&gt;
&lt;br /&gt;
Ara la única cosa que faltarà és minimitzar el copy-paste. La sortida del fitxer python l'he de poder llegir automàticament en el html. I també he de cercar un exemple més interessant, que no sigui obvi la ruta circular. (TBD)&lt;br /&gt;
=Més millores: fitxer JSON=&lt;br /&gt;
La versió 3 (''TSP_v3.py'') genera el fitxer output.json, que podrem carregar directament des de la pàgina html.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 TSP_v3.py --json arbres_singulars_example_coll_pguell_vallcarca_guinardo.csv &lt;br /&gt;
# Info: Using  arbres_singulars_example_coll_pguell_vallcarca_guinardo.csv as input for location data&lt;br /&gt;
# Info: Enviant la sortida a html/output.json&lt;br /&gt;
# Loaded 14 places from csv file:&lt;br /&gt;
   arbre1 | Garrofer | 41.4151676 2.1536067&lt;br /&gt;
   arbre2 | Ullastre | 41.4149403 2.1547896&lt;br /&gt;
   arbre3 | Xicranda | 41.4071839 2.1556486&lt;br /&gt;
   arbre4 | Pi blanc | 41.4136463 2.1466483&lt;br /&gt;
   arbre5 | Washingtònia de Mèxic | 41.4073894 2.1507417&lt;br /&gt;
   arbre6 | Arbre de l'amor | 41.4056619 2.1623828&lt;br /&gt;
   arbre7 | Garrofer | 41.4141479 2.1530253&lt;br /&gt;
   arbre8 | Figuera | 41.4134138 2.1652644&lt;br /&gt;
   arbre9 | Arbre de l'amor | 41.4190239 2.1643387&lt;br /&gt;
   arbre10 | Fotínia del Japó | 41.4132134 2.1656951&lt;br /&gt;
   arbre11 | Alzina | 41.4055670 2.1586280&lt;br /&gt;
   arbre12 | Llentiscle (mata) | 41.4187200 2.1482400&lt;br /&gt;
   arbre13 | Palmera de Canàries | 41.4077640 2.1539350&lt;br /&gt;
   arbre14 | Washingtònia de Califòrnia | 41.4080160 2.1484960&lt;br /&gt;
# Original route:&lt;br /&gt;
  arbre1 -&amp;gt; arbre2 -&amp;gt; arbre3 -&amp;gt; arbre4 -&amp;gt; arbre5 -&amp;gt; arbre6 -&amp;gt; arbre7 -&amp;gt; arbre8 -&amp;gt; arbre9 -&amp;gt; arbre10 -&amp;gt; arbre11 -&amp;gt; arbre12 -&amp;gt; arbre13 -&amp;gt; arbre14 -&amp;gt; arbre1&lt;br /&gt;
# Solving route (time limit: 30 seconds)&lt;br /&gt;
# Optimized route:&lt;br /&gt;
solució a html/output.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''output.json''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Garrofer&amp;quot;,&amp;quot;point&amp;quot;:[2.1536067,41.4151676]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Ullastre&amp;quot;,&amp;quot;point&amp;quot;:[2.1547896,41.4149403]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Arbre de l'amor&amp;quot;,&amp;quot;point&amp;quot;:[2.1643387,41.4190239]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Figuera&amp;quot;,&amp;quot;point&amp;quot;:[2.1652644,41.4134138]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Fotínia del Japó&amp;quot;,&amp;quot;point&amp;quot;:[2.1656951,41.4132134]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Arbre de l'amor&amp;quot;,&amp;quot;point&amp;quot;:[2.1623828,41.4056619]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alzina&amp;quot;,&amp;quot;point&amp;quot;:[2.1586280,41.4055670]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Xicranda&amp;quot;,&amp;quot;point&amp;quot;:[2.1556486,41.4071839]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Palmera de Canàries&amp;quot;,&amp;quot;point&amp;quot;:[2.1539350,41.4077640]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Washingtònia de Mèxic&amp;quot;,&amp;quot;point&amp;quot;:[2.1507417,41.4073894]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1466483,41.4136463]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Llentiscle (mata)&amp;quot;,&amp;quot;point&amp;quot;:[2.1482400,41.4187200]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Garrofer&amp;quot;,&amp;quot;point&amp;quot;:[2.1530253,41.4141479]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Garrofer&amp;quot;,&amp;quot;point&amp;quot;:[2.1536067,41.4151676]}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara hem de dibuixar el mapa important les dades del fitxer JSON. Necessitarem fer una crida AJAX, i per tant necessitarem visualitzar la web des del servidor web (crida http):&lt;br /&gt;
*http://localhost/arbres_singulars/mapa_arbres_singulars_v4.html&lt;br /&gt;
La manera com fem la crida JSON:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      function loadJSON(callback) {   &lt;br /&gt;
&lt;br /&gt;
          var xobj = new XMLHttpRequest();&lt;br /&gt;
              xobj.overrideMimeType(&amp;quot;application/json&amp;quot;);&lt;br /&gt;
          xobj.open('GET', 'output.json', true); // Replace 'my_data' with the path to your file&lt;br /&gt;
          xobj.onreadystatechange = function () {&lt;br /&gt;
                if (xobj.readyState == 4 &amp;amp;&amp;amp; xobj.status == &amp;quot;200&amp;quot;) {&lt;br /&gt;
                  // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode&lt;br /&gt;
                  callback(xobj.responseText);&lt;br /&gt;
                }&lt;br /&gt;
          };&lt;br /&gt;
          xobj.send(null);  &lt;br /&gt;
       }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ara cridem fem la crida:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     loadJSON(function(response) {&lt;br /&gt;
        // Parse JSON string into object&lt;br /&gt;
        arbres = JSON.parse(response);&lt;br /&gt;
        //alert(arbres.length);&lt;br /&gt;
&lt;br /&gt;
        var linies = []&lt;br /&gt;
        var icones = []&lt;br /&gt;
&lt;br /&gt;
        for ( var i = 0; i &amp;lt; arbres.length; i++) {&lt;br /&gt;
            arbres[i].point = ol.proj.fromLonLat(arbres[i].point);&lt;br /&gt;
        }&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Ruta arbres singulars #2=&lt;br /&gt;
[[Fitxer:Colleccio arbres2.png | thumbnail]]&lt;br /&gt;
[[Fitxer:Ruta colleccio arbres2.png | thumbnail]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 TSP_v3.py --json colleccio_arbres2.csv &lt;br /&gt;
# Info: Using  colleccio_arbres2.csv as input for location data&lt;br /&gt;
# Info: Enviant la sortida a html/output.json&lt;br /&gt;
# Loaded 57 places from csv file:&lt;br /&gt;
   arbre1 | Siris blanc | 41.4009770 2.1470945&lt;br /&gt;
   arbre2 | Còcul | 41.4005146 2.1468057&lt;br /&gt;
   arbre3 | Xicranda | 41.3994030 2.1485156&lt;br /&gt;
   arbre4 | Grevillea robusta | 41.3978637 2.1347232&lt;br /&gt;
   arbre5 | Margalló | 41.3887570 2.1607406&lt;br /&gt;
   arbre6 | Bellaombra | 41.3925498 2.1443776&lt;br /&gt;
   arbre7 | Washingtònia de Mèxic | 41.3891488 2.1603995&lt;br /&gt;
   arbre8 | Palmera blava | 41.3873786 2.1222567&lt;br /&gt;
   arbre9 | Roure | 41.3846197 2.1104121&lt;br /&gt;
   arbre10 | Pi pinyer | 41.3891153 2.1163129&lt;br /&gt;
   arbre11 | Arbre ampolla | 41.3889060 2.1159964&lt;br /&gt;
   arbre12 | Pi pinyer | 41.3881412 2.1158908&lt;br /&gt;
   arbre13 | Pi blanc | 41.3887569 2.1151854&lt;br /&gt;
   arbre14 | Washingtònia de Califòrnia | 41.3928539 2.1435309&lt;br /&gt;
   arbre15 | Figuera | 41.3873000 2.1208904&lt;br /&gt;
   arbre16 | Pi de l'Himàlaia | 41.3898315 2.1315334&lt;br /&gt;
   arbre17 | Pi pinyer | 41.3861449 2.1339903&lt;br /&gt;
   arbre18 | Alvocater | 41.3835981 2.1308039&lt;br /&gt;
   arbre19 | Tuia articulada (Savina de mor) | 41.3870076 2.1183141&lt;br /&gt;
   arbre20 | Pi blanc | 41.4034793 2.1162956&lt;br /&gt;
   arbre21 | Tipuana | 41.4089554 2.1368708&lt;br /&gt;
   arbre22 | Ginjoler | 41.4045959 2.1372812&lt;br /&gt;
   arbre23 | Cedre de l'Himàlaia | 41.4080797 2.1341301&lt;br /&gt;
   arbre24 | Lledoner | 41.3920160 2.1272462&lt;br /&gt;
   arbre25 | Pebrer bord | 41.3922011 2.1219891&lt;br /&gt;
   arbre26 | Alzina | 41.4140929 2.1045461&lt;br /&gt;
   arbre27 | Pi pinyer | 41.3985601 2.1248668&lt;br /&gt;
   arbre28 | Palmera de Canàries | 41.3925168 2.1225333&lt;br /&gt;
   arbre29 | Alzina surera | 41.4024879 2.1411862&lt;br /&gt;
   arbre30 | Magnòlia | 41.4066326 2.1311748&lt;br /&gt;
   arbre31 | Eucaliptus comú | 41.3978064 2.1113720&lt;br /&gt;
   arbre32 | Cirerer de Santa Llúcia | 41.3984704 2.1090761&lt;br /&gt;
   arbre33 | Plàtan d'ombra | 41.3926132 2.1228760&lt;br /&gt;
   arbre34 | Tell argentat | 41.4014334 2.1237453&lt;br /&gt;
   arbre35 | Xicranda | 41.4071839 2.1556486&lt;br /&gt;
   arbre36 | Pi blanc | 41.4136463 2.1466483&lt;br /&gt;
   arbre37 | Washingtònia de Mèxic | 41.4073894 2.1507417&lt;br /&gt;
   arbre38 | Freixe de Mèxic | 41.3993611 2.1528378&lt;br /&gt;
   arbre39 | Garrofer | 41.4141479 2.1530253&lt;br /&gt;
   arbre40 | Aladern de fulla ampla | 41.4083980 2.1313580&lt;br /&gt;
   arbre41 | Alzina | 41.4030720 2.1136660&lt;br /&gt;
   arbre42 | Alzina | 41.3801420 2.1257710&lt;br /&gt;
   arbre43 | Alzina | 41.4055670 2.1586280&lt;br /&gt;
   arbre44 | Còcul | 41.3934560 2.1303450&lt;br /&gt;
   arbre45 | Còcul | 41.3961030 2.1595140&lt;br /&gt;
   arbre46 | Eucaliptus blanc | 41.4053230 2.1308730&lt;br /&gt;
   arbre47 | Eucaliptus comú | 41.3929060 2.1226570&lt;br /&gt;
   arbre48 | Pi canari | 41.3994370 2.1333650&lt;br /&gt;
   arbre49 | Roure pènol | 41.4106600 2.1351440&lt;br /&gt;
   arbre50 | Pi blanc | 41.3958050 2.1189410&lt;br /&gt;
   arbre51 | Llentiscle | 41.4064060 2.1170520&lt;br /&gt;
   arbre52 | Lledoner | 41.3962440 2.1468710&lt;br /&gt;
   arbre53 | Morera blanca | 41.4086150 2.1312560&lt;br /&gt;
   arbre54 | Palmera de Canàries | 41.4077640 2.1539350&lt;br /&gt;
   arbre55 | Washingtònia de Califòrnia | 41.4080160 2.1484960&lt;br /&gt;
   arbre56 | Pi pinyer | 41.3936770 2.1184360&lt;br /&gt;
   arbre57 | Til·ler | 41.3955000 2.1573580&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solució:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Optimized route:&lt;br /&gt;
arbre1 -&amp;gt; arbre2 -&amp;gt; arbre29 -&amp;gt; arbre22 -&amp;gt; arbre21 -&amp;gt; arbre49 -&amp;gt; arbre23 -&amp;gt; arbre40 -&amp;gt; arbre53 -&amp;gt; arbre30 -&amp;gt; arbre46 -&amp;gt; arbre48 -&amp;gt; arbre4 -&amp;gt; arbre44 -&amp;gt; arbre24 -&amp;gt; arbre33 -&amp;gt; arbre47 -&amp;gt; arbre28 -&amp;gt; arbre25 -&amp;gt; arbre56 -&amp;gt; arbre50 -&amp;gt; arbre27 -&amp;gt; arbre34 -&amp;gt; arbre51 -&amp;gt; arbre20 -&amp;gt; arbre41 -&amp;gt; arbre26 -&amp;gt; arbre32 -&amp;gt; arbre31 -&amp;gt; arbre9 -&amp;gt; arbre13 -&amp;gt; arbre11 -&amp;gt; arbre10 -&amp;gt; arbre12 -&amp;gt; arbre19 -&amp;gt; arbre15 -&amp;gt; arbre8 -&amp;gt; arbre42 -&amp;gt; arbre18 -&amp;gt; arbre17 -&amp;gt; arbre16 -&amp;gt; arbre14 -&amp;gt; arbre6 -&amp;gt; arbre52 -&amp;gt; arbre3 -&amp;gt; arbre38 -&amp;gt; arbre57 -&amp;gt; arbre7 -&amp;gt; arbre5 -&amp;gt; arbre45 -&amp;gt; arbre43 -&amp;gt; arbre35 -&amp;gt; arbre54 -&amp;gt; arbre39 -&amp;gt; arbre36 -&amp;gt; arbre55 -&amp;gt; arbre37 -&amp;gt;  arbre1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solució: '''output.json''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Siris blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1470945,41.4009770]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Còcul&amp;quot;,&amp;quot;point&amp;quot;:[2.1468057,41.4005146]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alzina surera&amp;quot;,&amp;quot;point&amp;quot;:[2.1411862,41.4024879]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Ginjoler&amp;quot;,&amp;quot;point&amp;quot;:[2.1372812,41.4045959]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Tipuana&amp;quot;,&amp;quot;point&amp;quot;:[2.1368708,41.4089554]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Roure pènol&amp;quot;,&amp;quot;point&amp;quot;:[2.1351440,41.4106600]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Cedre de l'Himàlaia&amp;quot;,&amp;quot;point&amp;quot;:[2.1341301,41.4080797]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Aladern de fulla ampla&amp;quot;,&amp;quot;point&amp;quot;:[2.1313580,41.4083980]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Morera blanca&amp;quot;,&amp;quot;point&amp;quot;:[2.1312560,41.4086150]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Magnòlia&amp;quot;,&amp;quot;point&amp;quot;:[2.1311748,41.4066326]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Eucaliptus blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1308730,41.4053230]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi canari&amp;quot;,&amp;quot;point&amp;quot;:[2.1333650,41.3994370]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Grevillea robusta&amp;quot;,&amp;quot;point&amp;quot;:[2.1347232,41.3978637]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Còcul&amp;quot;,&amp;quot;point&amp;quot;:[2.1303450,41.3934560]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Lledoner&amp;quot;,&amp;quot;point&amp;quot;:[2.1272462,41.3920160]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Plàtan d'ombra&amp;quot;,&amp;quot;point&amp;quot;:[2.1228760,41.3926132]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Eucaliptus comú&amp;quot;,&amp;quot;point&amp;quot;:[2.1226570,41.3929060]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Palmera de Canàries&amp;quot;,&amp;quot;point&amp;quot;:[2.1225333,41.3925168]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pebrer bord&amp;quot;,&amp;quot;point&amp;quot;:[2.1219891,41.3922011]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi pinyer&amp;quot;,&amp;quot;point&amp;quot;:[2.1184360,41.3936770]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1189410,41.3958050]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi pinyer&amp;quot;,&amp;quot;point&amp;quot;:[2.1248668,41.3985601]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Tell argentat&amp;quot;,&amp;quot;point&amp;quot;:[2.1237453,41.4014334]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Llentiscle&amp;quot;,&amp;quot;point&amp;quot;:[2.1170520,41.4064060]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1162956,41.4034793]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alzina&amp;quot;,&amp;quot;point&amp;quot;:[2.1136660,41.4030720]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alzina&amp;quot;,&amp;quot;point&amp;quot;:[2.1045461,41.4140929]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Cirerer de Santa Llúcia&amp;quot;,&amp;quot;point&amp;quot;:[2.1090761,41.3984704]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Eucaliptus comú&amp;quot;,&amp;quot;point&amp;quot;:[2.1113720,41.3978064]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Roure&amp;quot;,&amp;quot;point&amp;quot;:[2.1104121,41.3846197]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1151854,41.3887569]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Arbre ampolla&amp;quot;,&amp;quot;point&amp;quot;:[2.1159964,41.3889060]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi pinyer&amp;quot;,&amp;quot;point&amp;quot;:[2.1163129,41.3891153]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi pinyer&amp;quot;,&amp;quot;point&amp;quot;:[2.1158908,41.3881412]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Tuia articulada (Savina de mor)&amp;quot;,&amp;quot;point&amp;quot;:[2.1183141,41.3870076]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Figuera&amp;quot;,&amp;quot;point&amp;quot;:[2.1208904,41.3873000]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Palmera blava&amp;quot;,&amp;quot;point&amp;quot;:[2.1222567,41.3873786]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alzina&amp;quot;,&amp;quot;point&amp;quot;:[2.1257710,41.3801420]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alvocater&amp;quot;,&amp;quot;point&amp;quot;:[2.1308039,41.3835981]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi pinyer&amp;quot;,&amp;quot;point&amp;quot;:[2.1339903,41.3861449]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi de l'Himàlaia&amp;quot;,&amp;quot;point&amp;quot;:[2.1315334,41.3898315]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Washingtònia de Califòrnia&amp;quot;,&amp;quot;point&amp;quot;:[2.1435309,41.3928539]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Bellaombra&amp;quot;,&amp;quot;point&amp;quot;:[2.1443776,41.3925498]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Lledoner&amp;quot;,&amp;quot;point&amp;quot;:[2.1468710,41.3962440]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Xicranda&amp;quot;,&amp;quot;point&amp;quot;:[2.1485156,41.3994030]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Freixe de Mèxic&amp;quot;,&amp;quot;point&amp;quot;:[2.1528378,41.3993611]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Washingtònia de Mèxic&amp;quot;,&amp;quot;point&amp;quot;:[2.1603995,41.3891488]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Margalló&amp;quot;,&amp;quot;point&amp;quot;:[2.1607406,41.3887570]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Còcul&amp;quot;,&amp;quot;point&amp;quot;:[2.1595140,41.3961030]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Alzina&amp;quot;,&amp;quot;point&amp;quot;:[2.1586280,41.4055670]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Xicranda&amp;quot;,&amp;quot;point&amp;quot;:[2.1556486,41.4071839]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Palmera de Canàries&amp;quot;,&amp;quot;point&amp;quot;:[2.1539350,41.4077640]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Garrofer&amp;quot;,&amp;quot;point&amp;quot;:[2.1530253,41.4141479]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Pi blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1466483,41.4136463]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Washingtònia de Califòrnia&amp;quot;,&amp;quot;point&amp;quot;:[2.1484960,41.4080160]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Washingtònia de Mèxic&amp;quot;,&amp;quot;point&amp;quot;:[2.1507417,41.4073894]},&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Siris blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1470945,41.4009770]}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Ruta arbres singulars #2. Més Modificacions=&lt;br /&gt;
[[Fitxer:Ruta colleccio arbres2 v2.png | thumbnail]]&lt;br /&gt;
Estic fent més modificacions, per tal de poder incloure aquest projecte al curs de Realitat Virtual i Augmentada que estic fent.&lt;br /&gt;
&lt;br /&gt;
Faig una petita modificació de manera que en el fitxer de sortida, ''output.json'', inclogui el id de l'arbre:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 TSP_v4.py --json colleccio_arbres2.csv &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''output.json'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
{&amp;quot;id&amp;quot;:&amp;quot;arbre1&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Siris blanc&amp;quot;,&amp;quot;point&amp;quot;:[2.1470945,41.4009770]},&lt;br /&gt;
{&amp;quot;id&amp;quot;:&amp;quot;arbre2&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Còcul&amp;quot;,&amp;quot;point&amp;quot;:[2.1468057,41.4005146]},&lt;br /&gt;
{&amp;quot;id&amp;quot;:&amp;quot;arbre29&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Alzina surera&amp;quot;,&amp;quot;point&amp;quot;:[2.1411862,41.4024879]},&lt;br /&gt;
{&amp;quot;id&amp;quot;:&amp;quot;arbre22&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ginjoler&amp;quot;,&amp;quot;point&amp;quot;:[2.1372812,41.4045959]},&lt;br /&gt;
{&amp;quot;id&amp;quot;:&amp;quot;arbre21&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Tipuana&amp;quot;,&amp;quot;point&amp;quot;:[2.1368708,41.4089554]},&lt;br /&gt;
{&amp;quot;id&amp;quot;:&amp;quot;arbre49&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Roure pènol&amp;quot;,&amp;quot;point&amp;quot;:[2.1351440,41.4106600]},&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i el resultat (com es veu a la imatge) es correspon al script ''mapa_arbres_singulars_v5.html''. En aquest hem afegit com a capa un popup.&lt;br /&gt;
&lt;br /&gt;
Programació didàctica de una unitat didàctica per al curs de Realitat Virtual a l'aula:&lt;br /&gt;
*[[Fitxer:Programacio UD curses orientacio Joan Quintana.pdf]]&lt;br /&gt;
{{Autor}}, novembre 2019&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>