<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Maps on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</title>
    <link>https://move.cyber-neurones.org/tags/maps/</link>
    <description>Recent content in Maps on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Sat, 06 Feb 2021 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://move.cyber-neurones.org/tags/maps/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Nextcloud : Comment forcer le scan des photos avoir fait des modifications ( Application Maps )</title>
      <link>https://move.cyber-neurones.org/post/2021/02/2021-02-06-nextcloud-comment-forcer-le-scan-des-photos-avoir-fait-des-modifications-application-maps/</link>
      <pubDate>Sat, 06 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2021/02/2021-02-06-nextcloud-comment-forcer-le-scan-des-photos-avoir-fait-des-modifications-application-maps/</guid>
      <description>&lt;p&gt;Voici la commandes que j&amp;rsquo;utilises pour forcer le scan des photos :&lt;/p&gt;&#xA;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo -u www-data php7.3 /usr/share/nginx/nextcloud/occ maps:scan-photos&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Le lien vers l&amp;rsquo;application :&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/nextcloud/maps&#34;&gt;https://github.com/nextcloud/maps&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Joplin &amp; Python ( Static Map )  : How to create a Maps (JPEG) with REST API and data in Joplin ?</title>
      <link>https://move.cyber-neurones.org/post/2019/02/2019-02-13-joplin-python-static-map-how-to-create-a-maps-jpeg-with-rest-api-and-data-in-joplin/</link>
      <pubDate>Wed, 13 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2019/02/2019-02-13-joplin-python-static-map-how-to-create-a-maps-jpeg-with-rest-api-and-data-in-joplin/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Step 0&lt;/strong&gt; : Install Joplin and activate the REST API ( &lt;a href=&#34;https://joplin.cozic.net/api/&#34;&gt;https://joplin.cozic.net/api/&lt;/a&gt; ) .&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Install staticmap with pip ( for more information see &lt;a href=&#34;https://github.com/komoot/staticmap&#34;&gt;https://github.com/komoot/staticmap&lt;/a&gt; )&lt;/p&gt;&#xA;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ pip install staticmap&#xA;Collecting staticmap&#xA;  Downloading https://files.pythonhosted.org/packages/f9/9f/5a3843533eab037cba031486175c4db1b214614404a29516208ff228dead/staticmap-0.5.4.tar.gz&#xA;Collecting Pillow (from staticmap)&#xA;  Downloading https://files.pythonhosted.org/packages/c9/ed/27cc92e99b9ccaa0985a66133baeea7e8a3371d3c04cfa353aaa3b81aac1/Pillow-5.4.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.7MB)&#xA;    100% |████████████████████████████████| 3.7MB 6.3MB/s &#xA;Requirement already satisfied: requests in /usr/local/lib/python3.7/site-packages (from staticmap) (2.21.0)&#xA;Requirement already satisfied: chardet&amp;lt;3.1.0,&amp;gt;=3.0.2 in /usr/local/lib/python3.7/site-packages (from requests-&amp;gt;staticmap) (3.0.4)&#xA;Requirement already satisfied: idna&amp;lt;2.9,&amp;gt;=2.5 in /usr/local/lib/python3.7/site-packages (from requests-&amp;gt;staticmap) (2.8)&#xA;Requirement already satisfied: urllib3&amp;lt;1.25,&amp;gt;=1.21.1 in /usr/local/lib/python3.7/site-packages (from requests-&amp;gt;staticmap) (1.24.1)&#xA;Requirement already satisfied: certifi&amp;gt;=2017.4.17 in /usr/local/lib/python3.7/site-packages (from requests-&amp;gt;staticmap) (2018.11.29)&#xA;Building wheels for collected packages: staticmap&#xA;  Building wheel for staticmap (setup.py) ... done&#xA;  Stored in directory: /Users/..../Library/Caches/pip/wheels/fe/a6/a5/2acceb72471d85bd0498973aabd611e6ff1cdd48796790f047&#xA;Successfully built staticmap&#xA;Installing collected packages: Pillow, staticmap&#xA;Successfully installed Pillow-5.4.1 staticmap-0.5.4&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The source code :&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android : Supprimer le Tracking de Maps</title>
      <link>https://move.cyber-neurones.org/post/2017/07/2017-07-27-android-supprimer-le-traking-de-maps/</link>
      <pubDate>Thu, 27 Jul 2017 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2017/07/2017-07-27-android-supprimer-le-traking-de-maps/</guid>
      <description>&lt;p&gt;Google fait du tracking via Maps, le supprimer permet de gagner en autonomie sur le téléphone mais aussi en vie privé.&lt;/p&gt;&#xA;&lt;p&gt;Il suffit de lancer &lt;strong&gt;Map&lt;/strong&gt;, puis &lt;strong&gt;Paramètres&lt;/strong&gt;, puis &lt;strong&gt;Contenu Personnel&lt;/strong&gt;, puis &lt;strong&gt;Historique des positions&lt;/strong&gt; et désactivé les appareils.&lt;/p&gt;&#xA;&lt;p&gt;Pour mieux se rendre compte de ce que fait google il suffit d&amp;rsquo;aller sur : &lt;a href=&#34;https://www.google.com/maps/timeline&#34;&gt;https://www.google.com/maps/timeline&lt;/a&gt; .&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.cyber-neurones.org/wp-content/uploads/2017/07/screenshot_20170727-074355.jpg&#34;&gt;&lt;img src=&#34;images/screenshot_20170727-074355-169x300.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt; &lt;a href=&#34;https://www.cyber-neurones.org/wp-content/uploads/2017/07/screenshot_20170727-075811.jpg&#34;&gt;&lt;img src=&#34;images/screenshot_20170727-075811-169x300.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installation de WP GPX Maps</title>
      <link>https://move.cyber-neurones.org/post/2014/03/2014-03-16-wp-gpx-maps/</link>
      <pubDate>Sun, 16 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2014/03/2014-03-16-wp-gpx-maps/</guid>
      <description>&lt;p&gt;Le plugin : &lt;a href=&#34;http://wordpress.org/plugins/wp-gpx-maps/screenshots/&#34;&gt;http://wordpress.org/plugins/wp-gpx-maps/screenshots/&lt;/a&gt; .&lt;/p&gt;&#xA;&lt;p&gt;Ensuite on exporte le fichier GPX :&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.cyber-neurones.org/wp-content/uploads/2014/03/Capture-d%E2%80%99%C3%A9cran-2014-03-16-%C3%A0-11.58.07.png&#34;&gt;&lt;img src=&#34;images/Capture-d%E2%80%99%C3%A9cran-2014-03-16-%C3%A0-11.58.07.png&#34; alt=&#34;Capture d’écran 2014-03-16 à 11.58.07&#34;&gt;&lt;/a&gt;Et on copie le Shortcode dans l&amp;rsquo;article.&lt;/p&gt;&#xA;&lt;p&gt;Exemple :&lt;/p&gt;&#xA;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet/leaflet.css&#34; crossorigin=&#34;&#34; /&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/style.css&#34; /&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet-distance-marker.css&#34; /&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet/leaflet.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet.geometryutil.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet-distance-marker.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://cdnjs.cloudflare.com/ajax/libs/leaflet-gpx/1.7.0/gpx.min.js&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;section id=&#34;container&#34; class=&#34;gpx&#34;&gt;&#xA;  &lt;div class=&#34;map&#34; id=&#34;map-&#34;&gt;&lt;/div&gt;&#xA;  &lt;footer&gt;&#xA;    &#xA;    &#xA;    &#xA;      &lt;ul class=&#34;info&#34;&gt;&#xA;        &lt;li&gt;&lt;input type=&#34;checkbox&#34; checked class=&#34;tracks&#34; track-id=&#34;0&#34;/&gt;&lt;/li&gt;&#xA;        &lt;li style=&#34;color:blue&#34;&gt;&amp;#9632;&lt;/li&gt;&#xA;        &#xA;        &lt;li&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;start-Trail.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;distance-Trail.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;duration-Trail.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;elevation-Trail.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;Trail.gpx&#34;&gt;Download&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &#xA;  &lt;/footer&gt;&#xA;&lt;/section&gt;&#xA;&#xA;&lt;script&gt;&#xA;  var urls = new Array(&#34;Trail.gpx&#34;,)&#xA;  var mapid = &#34;map-&#34;;&#xA;  var container = document.getElementById(&#34;container&#34;);&#xA;  var colors = [&#34;blue&#34;,&#34;darkblue&#34;,&#34;purple&#34;];&#xA;  var layers = new Array();&#xA;    &#xA;  &#xA;  var map = L.map(mapid, { fullscreenControl: true, scrollWheelZoom: false });&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  createLayer(&#34;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#34;, &#34;© \u003ca href=\&#34;https://www.openstreetmap.org/copyright\&#34;\u003eOpenStreetMap\u003c/a\u003e contributors&#34;,  1 ,  20 ,  null ,  null ).addTo(map);&#xA;  &#xA;&#xA;  var control = L.control.layers(null, null).addTo(map);&#xA;  var bounds = null;&#xA;  urls.forEach(function(url, index) {&#xA;    addTrack(urls[index], index, map);&#xA;  });&#xA;  &#xA;  &#xA;  document.addEventListener(&#34;DOMContentLoaded&#34;, function(){&#xA;    &#xA;    &#xA;    Array.from(document.getElementsByClassName(&#34;location&#34;)).forEach(addMarker);&#xA;    &#xA;    &#xA;    document.querySelectorAll(&#34;.tracks&#34;).forEach(function(item) {&#xA;      item.checked = true;&#xA;    });&#xA;  });&#xA;  &#xA;  &#xA;  document.querySelectorAll(&#34;.tracks&#34;).forEach(function(item) {&#xA;    item.addEventListener(&#34;click&#34;, function() {&#xA;      var id = this.getAttribute(&#34;track-id&#34;);&#xA;      if (event.currentTarget.checked) {&#xA;        showTrack(id);&#xA;      } else {&#xA;        hideTrack(id);&#xA;      }&#xA;    })&#xA;  });&#xA;  &#xA;  &#xA;  function addTrack(url, index, map) {&#xA;    layers[index]=new L.GPX(url, {&#xA;      gpx_options: {&#xA;        joinTrackSegments: false&#xA;      },&#xA;      async: true,&#xA;      marker_options: {&#xA;        startIconUrl: &#34;/gpx-shortcode/pin-icon-start.png&#34;,&#xA;        endIconUrl: &#34;/gpx-shortcode/pin-icon-end.png&#34;,&#xA;        shadowUrl: &#34;/gpx-shortcode/pin-shadow.png&#34;,&#xA;      },&#xA;      &#xA;      polyline_options: {color: colors[index % colors.length], distanceMarkers: true, smoothFactor: 0.5 }&#xA;    }).on(&#34;loaded&#34;, function(e) {&#xA;      var gpx = e.target;&#xA;      if (bounds === null) {&#xA;        bounds = gpx.getBounds();&#xA;      }&#xA;      else&#xA;      {&#xA;        bounds.extend(gpx.getBounds());&#xA;      }&#xA;      map.fitBounds(bounds);&#xA;      control.addOverlay(gpx, gpx.get_name());&#xA;      addMetadata(gpx, url);&#xA;    });&#xA;    layers[index].addTo(map);&#xA;  }&#xA;  &#xA;  function showTrack(id) {&#xA;    layers[id].addTo(map);&#xA;  }&#xA;  &#xA;  function hideTrack(id) {&#xA;    layers[id].removeFrom(map);&#xA;  }&#xA;  &#xA;  &#xA;  function createLayer(url, attribution, minZoom, maxZoom, bounds, inverseBounds) {&#xA;    var layer = L.tileLayer(url, { attribution: attribution, minZoom: minZoom, maxZoom: maxZoom});&#xA;    if (bounds != null) {&#xA;      &#xA;      layer.options.bounds = new L.LatLngBounds(&#xA;        new L.LatLng(bounds[0], bounds[1]),&#xA;        new L.LatLng(bounds[2], bounds[3]));&#xA;    }&#xA;    if (inverseBounds != null) {&#xA;      layer.options.inverseBounds = new L.LatLngBounds(&#xA;        new L.LatLng(inverseBounds[0], inverseBounds[1]),&#xA;        new L.LatLng(inverseBounds[2], inverseBounds[3]));&#xA;    }&#xA;    return layer;&#xA;  }&#xA;&#xA;  &#xA;  function addMarker(link) {&#xA;    lat = link.getAttribute(&#34;lat&#34;);&#xA;    lon = link.getAttribute(&#34;lon&#34;);&#xA;    text = link.textContent;&#xA;    name = link.getAttribute(&#34;name&#34;);&#xA;    title = (name != &#34;&#34;) ? name : text;&#xA;    url = link.getAttribute(&#34;link&#34;);&#xA;    if (url != &#34;&#34;)&#xA;    {&#xA;      title = &#34;&lt;a target=\&#34;_blank\&#34; href=\&#34;&#34; + url + &#34;\&#34;&gt;&#34; + title + &#34;&lt;/a&gt;&#34;;&#xA;    }&#xA;    marker = L.marker([lat, lon]).addTo(map);&#xA;    marker.bindPopup(title).openPopup();&#xA;  }&#xA;  &#xA;  &#xA;  function addMetadata(gpx, url) {&#xA;    var date = gpx.get_start_time();&#xA;    var datestring = date.getFullYear() + &#34;-&#34; + (date.getMonth()+1).toString().padStart(2, &#34;0&#34;) + &#34;-&#34; + date.getDate().toString().padStart(2, &#34;0&#34;)  + &#34; &#34; + date.getHours().toString().padStart(2, &#34;0&#34;) + &#34;:&#34; + date.getMinutes().toString().padStart(2, &#34;0&#34;);&#xA;    _c(&#34;start-&#34; + url).textContent = (date &gt; 0) ? datestring : &#34;&#34;;&#xA;    _c(&#34;distance-&#34; + url).textContent = &#34;Distance: &#34; + (gpx.get_distance() / 1000).toFixed(2) + &#34; km&#34;;&#xA;    var duration = gpx.get_moving_time();&#xA;    _c(&#34;duration-&#34; + url).textContent = (duration &gt; 0) ? &#34;Duration: &#34; + gpx.get_duration_string(duration) : &#34;&#34;;&#xA;    _c(&#34;elevation-&#34;+ url).textContent = `Elevation: ${gpx.get_elevation_gain().toFixed(0)} m, -${gpx.get_elevation_loss().toFixed(0)} m, net:  ${(gpx.get_elevation_gain() - gpx.get_elevation_loss()).toFixed(0)}  m`;&#xA;  }&#xA;  &#xA;  &#xA;  function _c(c) {&#xA;    return container.getElementsByClassName(c)[0];&#xA;  }&#xA;&lt;/script&gt;</description>
    </item>
  </channel>
</rss>
