<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:thr="http://purl.org/syndication/thread/1.0"
      xml:lang="en-us">
  <link rel="self" href="http://Andreas-Voit.at/feeds/blog-von-andreas-voit_tag_osm.atom_1.0.links-and-content.xml" />
  <title type="text">Blog von Andreas Voit – tag: osm</title>
  <id>https://andreas-voit.at/tags/osm/</id>
  <link href="http://Andreas-Voit.at" />
  <icon>/favicon.ico</icon>
  <updated>2026-10-06T11:25:14+01:00</updated>
  <author>
    <name>Andreas Voit</name>
  </author>
  <subtitle type="text">Articles tagged with osm from Blog von Andreas Voit</subtitle>
  <rights>All content written by Andreas Voit</rights>
  <generator uri='https://github.com/novoid/lazyblorg'>Generated from Org-mode source code using lazyblorg which is written in Python. Industrial-strength technology, baby.</generator>
<!-- ############################################################################################# -->
<entry>
    <title type="text">Android Automate Script zur Senden der aktuellen GPS-Position</title>
    <link href='https://Andreas-Voit.at/2021/07/28/automateGPSSMS' />
    <published>2021-07-28T20:36:00+01:00</published>
    <updated>2021-07-28T20:36:00+01:00</updated>
    <category scheme='https://Andreas-Voit.at/tags/gis' term='gis' />
    <category scheme='https://Andreas-Voit.at/tags/osm' term='osm' />
    <category scheme='https://Andreas-Voit.at/tags/android' term='android' />
    <category scheme='https://Andreas-Voit.at/tags/howto' term='howto' />
    <category scheme='https://Andreas-Voit.at/autotags/language' term='language:deutsch' />
    <summary type='html'>
&lt;p&gt;

Dieser Blogbeitrag ist eine Aktualisierung meines vorherigen Beitrages. Hintergrund eine kleine notwendige Anpassung im Skript zum Senden der GPS-Position. In der ersten Version habe ich vergessen den GPS Fix Zeitpunkt zu definieren. Dies hat dazu geführt, dass beim Empfänger eine alte GPS-Position angezeigt wurde. Des Weiteren habe ich die beiden Github-Projekte zu einem &lt;a href="https://github.com/diovon/Automate_Script-Send_GPS-Position_SMS"&gt;Projekt&lt;/a&gt; zusammengefasst.

&lt;/p&gt;


&lt;p&gt;

In diesem Blogbeitrag möchte ich euch ein kleines Skript von mir vorstellen, mit dem auf einem Android Smartphone per SMS-Anfrage automatisch eine SMS mit GPS-Positionsdaten gesendet wird. Bei dem Skript handelt es sich um ein &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt;-Skript. &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt; ist eine App die es ermöglicht bestimmte Aufgaben am Android Smartphone zu automatisieren. Die Skripterstellung erfolgt grafisch in Form eines Flussdiagramms und man benötigt keine großartigen Programmiererfahrungen.

&lt;/p&gt;

    </summary>    <content type='html'>

&lt;p&gt;

Dieser Blogbeitrag ist eine Aktualisierung meines vorherigen Beitrages. Hintergrund eine kleine notwendige Anpassung im Skript zum Senden der GPS-Position. In der ersten Version habe ich vergessen den GPS Fix Zeitpunkt zu definieren. Dies hat dazu geführt, dass beim Empfänger eine alte GPS-Position angezeigt wurde. Des Weiteren habe ich die beiden Github-Projekte zu einem &lt;a href="https://github.com/diovon/Automate_Script-Send_GPS-Position_SMS"&gt;Projekt&lt;/a&gt; zusammengefasst.

&lt;/p&gt;


&lt;p&gt;

In diesem Blogbeitrag möchte ich euch ein kleines Skript von mir vorstellen, mit dem auf einem Android Smartphone per SMS-Anfrage automatisch eine SMS mit GPS-Positionsdaten gesendet wird. Bei dem Skript handelt es sich um ein &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt;-Skript. &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt; ist eine App die es ermöglicht bestimmte Aufgaben am Android Smartphone zu automatisieren. Die Skripterstellung erfolgt grafisch in Form eines Flussdiagramms und man benötigt keine großartigen Programmiererfahrungen.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Motivation für das Skript und alternative Apps&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Die Motivation für das Skript bestand darin, dass meine Eltern eine Möglichkeit benötigten, wenn mein Vater auf längeren Radtouren unterwegs ist, meine Mutter die Möglichkeit hat, seine Position ohne eine Interaktion seinerseits zu erhalten. Zunächst machten meinen Bruder und mich auf die Websuche, ob wir für diesen Anwendungsfall auf bestehende Apps zurückgreifen können. Dabei stießen wir schnell auf Testberichte und Sammlungen von Tracking Apps für Freunde und Familien, wie diese &lt;a href="https://www.reviewgeek.com/2241/use-these-7-great-apps-to-share-your-location-with-friends-and-family/"&gt;hier&lt;/a&gt;. Dabei gibt es kostenpflichtige und freierhältliche Apps. Die meisten Apps verwenden Cloud-Dienste. Da wir beide nicht so die Fans von Cloud-Services sind und gerne Wissen, was mit den versendeten Daten passiert, sind diese für uns ausgeschieden. Aus meiner lokalen OpenstreetMap Community habe ich von &lt;a href="https://play.google.com/store/apps/details?id=info.varden.hauk&amp;amp;hl=de_AT&amp;amp;gl=US"&gt;hauk&lt;/a&gt; oder Nextcloud-Apps erfahren. Da ich allerdings über keinen eigenen Server verfüge, sind auch diese Anwendungen ausgeschieden. Da mein Bruder und ich in der Vergangenheit schon diverse Aufgaben via &lt;a href="https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&amp;amp;hl=de&amp;amp;gl=US"&gt;Tasker-App&lt;/a&gt; automatisiert haben, kam die Idee dies über diese Schiene zu probieren. Ich habe mich für die &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; entschieden, weil diese kostenlos ist und ich in den letzten Jahren auf diese App umgestiegen bin. Anfangs dachten wir, dass wir mit dieser Methode scheitern werden, weil meine Eltern die &lt;a href="https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&amp;amp;hl=de&amp;amp;gl=US"&gt;Signal-App&lt;/a&gt; auch als SMS-App verwenden. Allerdings haben erste Versuche gezeigt, dass die SMS von der &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; gelesen werden können.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Voraussetzungen&lt;/h2&gt;&lt;/header&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt;
muss am Android Gerät installiert sein&lt;/li&gt;
&lt;li&gt;Für den SMS-Versand muss eine SIM-Karte im Gerät eingelegt sein&lt;/li&gt;
&lt;li&gt;(optional) &lt;a
href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt;
zur Anzeige der GPS-Position. Die generierten GPS-Daten lassen sich
allerdings auch in einem Web-Browser (Chrome, Firefox, …)
darstellen.&lt;/li&gt;
&lt;/ul&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Das Skript&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Um den oben beschriebenen Anwendungsfall abzudecken, benötige ich zwei Skripte. Ein Skript fragt nach der GPS-Position nach, das andere Skript antwortet aufgrund der SMS mit den GPS-Positionsdaten.

&lt;/p&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Skript zur Anfrage der GPS-Position&lt;/h3&gt;&lt;/header&gt;


&lt;p&gt;

Dieses Skript ist sehr einfach aufgebaut. Es besteht im Grunde nur aus der Funktion, eine SMS mit einem bestimmten Text an eine definierte Nummer zu senden. Die Nummer wird dabei in einem eigenen Variablen Block gesetzt. Dabei ist es wichtig, dass die Telefonnummer zwischen zwei Hochkomma gesetzt wird, damit sie als Text erkannt wird, vor allem wenn man wie ich die Ländervorwahl verwendet.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-TelephoneNumSet%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-TelephoneNumSet%20-%20scaled%20width%20560.jpg" alt="Die Telefonnummer als Variable speichern" width="TMPREPLACEMEwidthSTART-20210717-TelephoneNumSet - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-TelephoneNumSet - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Die Telefonnummer als Variable speichern &lt;a class="figcaption-clue-link" href="20210717-TelephoneNumSet%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Bei dem Funktions-Block für die ausgehende SMS ist bei der Telefonnummer die zuvor definierte Variable zu verwenden. Die Option "Hide from messaging app" hatte bei mir keine Auswirkung, die SMS werden in Signal trotzdem angezeigt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Send_Request%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Send_Request%20-%20scaled%20width%20560.jpg" alt="Funktionsblock zum Versenden der Anfrage-SMS" width="TMPREPLACEMEwidthSTART-20210717-SMS_Send_Request - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Send_Request - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Funktionsblock zum Versenden der Anfrage-SMS &lt;a class="figcaption-clue-link" href="20210717-SMS_Send_Request%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Das fertige Skript schaut wie folgt im Ablauf aus.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="SendPositionRequestSMS%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="SendPositionRequestSMS%20-%20scaled%20width%20560.png" alt="Aufbau des Skripts zur Anfrage der GPS-Position per SMS" width="TMPREPLACEMEwidthSTART-SendPositionRequestSMS - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-SendPositionRequestSMS - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Aufbau des Skripts zur Anfrage der GPS-Position per SMS &lt;a class="figcaption-clue-link" href="SendPositionRequestSMS%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Das Skript hab ich &lt;a href="https://github.com/diovon/Automate_Script-Send_GPS-Position_SMS/blob/main/Send_Position_Request_SMS.flo"&gt;hier&lt;/a&gt; als flo-Datei bereitgestellt. Diese Datei muss nur mehr in die &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; importiert und Telefonnummer angepasst werden.

&lt;/p&gt;


&lt;p&gt;

Um das Skript auszuführen, habe ich es meinen Eltern als App-Starter auf den Homescreen gelegt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Install_Home_Screen%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Install_Home_Screen%20-%20scaled%20width%20560.jpg" alt="Install Home Screen Shortcut für das direkte Ausführen des Skripts über den Homescreen" width="TMPREPLACEMEwidthSTART-20210717-Install_Home_Screen - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Install_Home_Screen - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Install Home Screen Shortcut für das direkte Ausführen des Skripts über den Homescreen &lt;a class="figcaption-clue-link" href="20210717-Install_Home_Screen%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Skript zur Sendung der GPS-Position&lt;/h3&gt;&lt;/header&gt;


&lt;p&gt;

Das zweite Skript beschäftigt sich mit dem Empfang der SMS aus Skript 1 und dem Versand der GPS-Position.

&lt;/p&gt;


&lt;p&gt;

Auch hier wurde zuvor die Telefonnummer als Variable definiert, um sie im Weiteren Verlauf nicht ständig eingeben zu müssen und so Tippfehler vermeidet. Des Weiteren wurde der Nachrichtentext ebenfalls als Variable definiert, da die Position nur aufgrund eines bestimmten Textes versendet werden soll.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Get%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Get%20-%20scaled%20width%20560.jpg" alt="Warten auf den Empfang der SMS zur Positionsanfrage" width="TMPREPLACEMEwidthSTART-20210717-SMS_Get - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Get - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Warten auf den Empfang der SMS zur Positionsanfrage &lt;a class="figcaption-clue-link" href="20210717-SMS_Get%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Danach hab ich einen Zwischenblock eingebaut, der überprüft, ob GPS überhaupt aktiv läuft. Wenn nicht, dann wird keine SMS versendet und es wird erneut auf eine neue SMS gewartet. Sicherlich wäre es praktisch, wenn das Skript die GPS-Funktion selbstständig aktiviert, dies wird allerdings von Android aufgrund von Sicherheitsrichtlinien nicht erlaubt. Ist GPS aktiv, erfolgt die Ermittlung der GPS-Position. Für die beiden Koordinaten setze ich je eine Variable, die im weiteren Verlauf zur Anwendung kommen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Location_get%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Location_get%20-%20scaled%20width%20560.jpg" alt="Automate Block zur Ermittlung der GPS-Position" width="TMPREPLACEMEwidthSTART-20210717-Location_get - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Location_get - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Automate Block zur Ermittlung der GPS-Position &lt;a class="figcaption-clue-link" href="20210717-Location_get%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

In diesem Block ist es wichtig für GPS-FIX den Wert 0 zu definieren, denn dadurch wird immer die aktuelle GPS-Position ermittelt und in weiterer Folge versendet.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210728-GPS_Set_Fix_time%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210728-GPS_Set_Fix_time%20-%20scaled%20width%20560.jpg" alt="Wert für GPS-FIX auf 0 setzen" width="TMPREPLACEMEwidthSTART-20210728-GPS_Set_Fix_time - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210728-GPS_Set_Fix_time - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Wert für GPS-FIX auf 0 setzen &lt;a class="figcaption-clue-link" href="20210728-GPS_Set_Fix_time%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Die zuvor erstellten Variablen für die beiden Koordinaten kommen nun zum Einsatz. Um dem SMS-Empfänger eine komfortable Möglichkeit der Anzeige der GPS-Position zu bieten, habe ich mich für die Verwendung eines OSMAnd-Links entschieden. In der &lt;a href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt; ist es nämlich möglich Positionen per Weblink zu teilen. Der Link hat die Form von &lt;a href="https://osmand.net-go?lat="wert"&amp;amp;lon="wertLAT"&amp;amp;z="wertLONG""&gt;https://osmand.net-go?lat="wert"&amp;amp;lon="wertLAT"&amp;amp;z="wertLONG"&lt;/a&gt; . In Automate müssen daher nur mehr die zuvor erstellten Variablen in die URL eingesetzt werden. Der Link wird in einer eigenen Variable gespeichert, um beim Versenden der SMS auf diese zugreifen zu können.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Generate_Osmand_url%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Generate_Osmand_url%20-%20scaled%20width%20560.jpg" alt="Generierung des SMS Textes mit den Koorindaten als OSMAnd Link" width="TMPREPLACEMEwidthSTART-20210717-Generate_Osmand_url - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Generate_Osmand_url - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Generierung des SMS Textes mit den Koorindaten als OSMAnd Link &lt;a class="figcaption-clue-link" href="20210717-Generate_Osmand_url%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Beim Versender der SMS kann wieder auf die Variable der Telefonnummer, die bereits beim Empfang zum Einsatz kam, verwendet werden. Unter "Message" wird die vorher erstelle Variable "varMessage", die den OSMAnd-Link enthält, eingefügt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Send_GPS%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Send_GPS%20-%20scaled%20width%20560.jpg" alt="Funktionsblock zum Versenden der SMS mit den OSMAnd-Link" width="TMPREPLACEMEwidthSTART-20210717-SMS_Send_GPS - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Send_GPS - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Funktionsblock zum Versenden der SMS mit den OSMAnd-Link &lt;a class="figcaption-clue-link" href="20210717-SMS_Send_GPS%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Der komplette Ablauf des Skriptes ist in der nachfolgenden Grafik ersichtlich. Wie beim vorherigen Skript stelle ich es als &lt;a href="https://github.com/diovon/Automate_Script-Send_GPS-Position_SMS/blob/main/Send_Position_SMS.flo"&gt;flo-Datei&lt;/a&gt; via github zur Verfügung.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="SendPositionSMS%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="SendPositionSMS%20-%20scaled%20width%20560.png" alt="Aufbau des Skripts zum Senden der GPS-Position per SMS" width="TMPREPLACEMEwidthSTART-SendPositionSMS - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-SendPositionSMS - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Aufbau des Skripts zum Senden der GPS-Position per SMS &lt;a class="figcaption-clue-link" href="SendPositionSMS%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Bei diesem Skript hab ich mich dazu entschieden, dass es ständig im Hintergrund laufen darf. Das es nach einem Smartphone Neustart ebenfalls wieder läuft, habe ich die entsprechende Option in der &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; aktiviert.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Run_on_startup%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Run_on_startup%20-%20scaled%20width%20560.jpg" alt="Aktivierung der Option, dass Skript nach Smartphone Neustart automatisch gestartet wird" width="TMPREPLACEMEwidthSTART-20210717-Run_on_startup - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Run_on_startup - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Aktivierung der Option, dass Skript nach Smartphone Neustart automatisch gestartet wird &lt;a class="figcaption-clue-link" href="20210717-Run_on_startup%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Finaler Test&lt;/h3&gt;&lt;/header&gt;


&lt;p&gt;

Für den Test hier habe ich die beiden Skript nur auf meinem Smartphone ausgeführt. Wie in der folgenden Abbildung zu sehen ist, wird sowohl die Anfrage-SMS als auch die SMS mit dem OSMAnd-Link angezeigt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Test%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Test%20-%20scaled%20width%20560.jpg" alt="Anzeige der SMS in Signal im Zuge eines Funktionstests" width="TMPREPLACEMEwidthSTART-20210717-SMS_Test - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Test - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Anzeige der SMS in Signal im Zuge eines Funktionstests &lt;a class="figcaption-clue-link" href="20210717-SMS_Test%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Wird der OSMAnd-Link in der SMS angeklickt, kann dieser entweder in der &lt;a href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt; oder einem Webbrowser angezeigt werden. Nachfolgende Abbildung zeigt die Anzeige in der &lt;a href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt;.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-OSMAnd_View%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-OSMAnd_View%20-%20scaled%20width%20560.jpg" alt="Anzeige der Position in OSMAnd" width="TMPREPLACEMEwidthSTART-20210717-OSMAnd_View - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-OSMAnd_View - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Anzeige der Position in OSMAnd &lt;a class="figcaption-clue-link" href="20210717-OSMAnd_View%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Sicherlich lässt sich das Skript um weitere Überprüfungen erweitern. Des Weiteren wird sich zeigen, wie sich das ständig aktive Skript auf den Akku-Verbrauch auswirkt. Hier kann dann eine Option eingebaut werden, dass nur bei Bedarf das Skript gestartet wird.

&lt;/p&gt;

    </content>
    <id>https://andreas-voit.at/2021/07/28/automateGPSSMS-from-tag-feed-with-content</id>
</entry>
<!-- ############################################################################################# -->
<entry>
    <title type="text">Android Automate Script zur Senden der aktuellen GPS-Position</title>
    <link href='https://Andreas-Voit.at/2021/07/17/automateGPSSMS' />
    <published>2021-07-17T20:36:00+01:00</published>
    <updated>2021-07-17T20:36:00+01:00</updated>
    <category scheme='https://Andreas-Voit.at/tags/gis' term='gis' />
    <category scheme='https://Andreas-Voit.at/tags/osm' term='osm' />
    <category scheme='https://Andreas-Voit.at/tags/android' term='android' />
    <category scheme='https://Andreas-Voit.at/tags/howto' term='howto' />
    <category scheme='https://Andreas-Voit.at/autotags/language' term='language:deutsch' />
    <summary type='html'>
&lt;p&gt;

In diesem Blogbeitrag möchte ich euch ein kleines Skript von mir vorstellen, mit dem auf einem Android Smartphone per SMS-Anfrage automatisch eine SMS mit GPS-Positionsdaten gesendet wird. Bei dem Skript handelt es sich um ein &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt;-Skript. &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt; ist eine App die es ermöglicht bestimmte Aufgaben am Android Smartphone zu automatisieren. Die Skripterstellung erfolgt grafisch in Form eines Flussdiagramms und man benötigt keine großartigen Programmiererfahrungen.

&lt;/p&gt;

    </summary>    <content type='html'>

&lt;p&gt;

In diesem Blogbeitrag möchte ich euch ein kleines Skript von mir vorstellen, mit dem auf einem Android Smartphone per SMS-Anfrage automatisch eine SMS mit GPS-Positionsdaten gesendet wird. Bei dem Skript handelt es sich um ein &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt;-Skript. &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt; ist eine App die es ermöglicht bestimmte Aufgaben am Android Smartphone zu automatisieren. Die Skripterstellung erfolgt grafisch in Form eines Flussdiagramms und man benötigt keine großartigen Programmiererfahrungen.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Motivation für das Skript und alternative Apps&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Die Motivation für das Skript bestand darin, dass meine Eltern eine Möglichkeit benötigten, wenn mein Vater auf längeren Radtouren unterwegs ist, meine Mutter die Möglichkeit hat, seine Position ohne eine Interaktion seinerseits zu erhalten. Zunächst machten meinen Bruder und mich auf die Websuche, ob wir für diesen Anwendungsfall auf bestehende Apps zurückgreifen können. Dabei stießen wir schnell auf Testberichte und Sammlungen von Tracking Apps für Freunde und Familien, wie diese &lt;a href="https://www.reviewgeek.com/2241/use-these-7-great-apps-to-share-your-location-with-friends-and-family/"&gt;hier&lt;/a&gt;. Dabei gibt es kostenpflichtige und freierhältliche Apps. Die meisten Apps verwenden Cloud-Dienste. Da wir beide nicht so die Fans von Cloud-Services sind und gerne Wissen, was mit den versendeten Daten passiert, sind diese für uns ausgeschieden. Aus meiner lokalen OpenstreetMap Community habe ich von &lt;a href="https://play.google.com/store/apps/details?id=info.varden.hauk&amp;amp;hl=de_AT&amp;amp;gl=US"&gt;hauk&lt;/a&gt; oder Nextcloud-Apps erfahren. Da ich allerdings über keinen eigenen Server verfüge, sind auch diese Anwendungen ausgeschieden. Da mein Bruder und ich in der Vergangenheit schon diverse Aufgaben via &lt;a href="https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&amp;amp;hl=de&amp;amp;gl=US"&gt;Tasker-App&lt;/a&gt; automatisiert haben, kam die Idee dies über diese Schiene zu probieren. Ich habe mich für die &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; entschieden, weil diese kostenlos ist und ich in den letzten Jahren auf diese App umgestiegen bin. Anfangs dachten wir, dass wir mit dieser Methode scheitern werden, weil meine Eltern die &lt;a href="https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&amp;amp;hl=de&amp;amp;gl=US"&gt;Signal-App&lt;/a&gt; auch als SMS-App verwenden. Allerdings haben erste Versuche gezeigt, dass die SMS von der &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; gelesen werden können.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Voraussetzungen&lt;/h2&gt;&lt;/header&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate&lt;/a&gt;
muss am Android Gerät installiert sein&lt;/li&gt;
&lt;li&gt;Für den SMS-Versand muss eine SIM-Karte im Gerät eingelegt sein&lt;/li&gt;
&lt;li&gt;(optional) &lt;a
href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt;
zur Anzeige der GPS-Position. Die generierten GPS-Daten lassen sich
allerdings auch in einem Web-Browser (Chrome, Firefox, …)
darstellen.&lt;/li&gt;
&lt;/ul&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Das Skript&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Um den oben beschriebenen Anwendungsfall abzudecken, benötige ich zwei Skripte. Ein Skript fragt nach der GPS-Position nach, das andere Skript antwortet aufgrund der SMS mit den GPS-Positionsdaten.

&lt;/p&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Skript zur Anfrage der GPS-Position&lt;/h3&gt;&lt;/header&gt;


&lt;p&gt;

Dieses Skript ist sehr einfach aufgebaut. Es besteht im Grunde nur aus der Funktion, eine SMS mit einem bestimmten Text an eine definierte Nummer zu senden. Die Nummer wird dabei in einem eigenen Variablen Block gesetzt. Dabei ist es wichtig, dass die Telefonnummer zwischen zwei Hochkomma gesetzt wird, damit sie als Text erkannt wird, vor allem wenn man wie ich die Ländervorwahl verwendet.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-TelephoneNumSet%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-TelephoneNumSet%20-%20scaled%20width%20560.jpg" alt="Die Telefonnummer als Variable speichern" width="TMPREPLACEMEwidthSTART-20210717-TelephoneNumSet - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-TelephoneNumSet - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Die Telefonnummer als Variable speichern &lt;a class="figcaption-clue-link" href="20210717-TelephoneNumSet%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Bei dem Funktions-Block für die ausgehende SMS ist bei der Telefonnummer die zuvor definierte Variable zu verwenden. Die Option "Hide from messaging app" hatte bei mir keine Auswirkung, die SMS werden in Signal trotzdem angezeigt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Send_Request%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Send_Request%20-%20scaled%20width%20560.jpg" alt="Funktionsblock zum Versenden der Anfrage-SMS" width="TMPREPLACEMEwidthSTART-20210717-SMS_Send_Request - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Send_Request - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Funktionsblock zum Versenden der Anfrage-SMS &lt;a class="figcaption-clue-link" href="20210717-SMS_Send_Request%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Das fertige Skript schaut wie folgt im Ablauf aus.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="SendPositionRequestSMS%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="SendPositionRequestSMS%20-%20scaled%20width%20560.png" alt="Aufbau des Skripts zur Anfrage der GPS-Position per SMS" width="TMPREPLACEMEwidthSTART-SendPositionRequestSMS - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-SendPositionRequestSMS - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Aufbau des Skripts zur Anfrage der GPS-Position per SMS &lt;a class="figcaption-clue-link" href="SendPositionRequestSMS%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Das Skript hab ich &lt;a href="https://github.com/diovon/Automate_Script-SMS_Send_Request"&gt;hier&lt;/a&gt; als flo-Datei bereitgestellt. Diese Datei muss nur mehr in die &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; importiert und Telefonnummer angepasst werden.

&lt;/p&gt;


&lt;p&gt;

Um das Skript auszuführen, habe ich es meinen Eltern als App-Starter auf den Homescreen gelegt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Install_Home_Screen%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Install_Home_Screen%20-%20scaled%20width%20560.jpg" alt="Install Home Screen Shortcut für das direkte Ausführen des Skripts über den Homescreen" width="TMPREPLACEMEwidthSTART-20210717-Install_Home_Screen - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Install_Home_Screen - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Install Home Screen Shortcut für das direkte Ausführen des Skripts über den Homescreen &lt;a class="figcaption-clue-link" href="20210717-Install_Home_Screen%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Skript zur Sendung der GPS-Position&lt;/h3&gt;&lt;/header&gt;


&lt;p&gt;

Das zweite Skript beschäftigt sich mit dem Empfang der SMS aus Skript 1 und dem Versand der GPS-Position.

&lt;/p&gt;


&lt;p&gt;

Auch hier wurde zuvor die Telefonnummer als Variable definiert, um sie im Weiteren Verlauf nicht ständig eingeben zu müssen und so Tippfehler vermeidet. Des Weiteren wurde der Nachrichtentext ebenfalls als Variable definiert, da die Position nur aufgrund eines bestimmten Textes versendet werden soll.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Get%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Get%20-%20scaled%20width%20560.jpg" alt="Warten auf den Empfang der SMS zur Positionsanfrage" width="TMPREPLACEMEwidthSTART-20210717-SMS_Get - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Get - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Warten auf den Empfang der SMS zur Positionsanfrage &lt;a class="figcaption-clue-link" href="20210717-SMS_Get%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Danach hab ich einen Zwischenblock eingebaut, der überprüft, ob GPS überhaupt aktiv läuft. Wenn nicht, dann wird keine SMS versendet und es wird erneut auf eine neue SMS gewartet. Sicherlich wäre es praktisch, wenn das Skript die GPS-Funktion selbstständig aktiviert, dies wird allerdings von Android aufgrund von Sicherheitsrichtlinien nicht erlaubt. Ist GPS aktiv, erfolgt die Ermittlung der GPS-Position. Für die beiden Koordinaten setze ich je eine Variable, die im weiteren Verlauf zur Anwendung kommen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Location_get%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Location_get%20-%20scaled%20width%20560.jpg" alt="Automate Block zur Ermittlung der GPS-Position" width="TMPREPLACEMEwidthSTART-20210717-Location_get - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Location_get - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Automate Block zur Ermittlung der GPS-Position &lt;a class="figcaption-clue-link" href="20210717-Location_get%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Die zuvor erstellten Variablen für die beiden Koordinaten kommen nun zum Einsatz. Um dem SMS-Empfänger eine komfortable Möglichkeit der Anzeige der GPS-Position zu bieten, habe ich mich für die Verwendung eines OSMAnd-Links entschieden. In der &lt;a href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt; ist es nämlich möglich Positionen per Weblink zu teilen. Der Link hat die Form von &lt;a href="https://osmand.net-go?lat="wert"&amp;amp;lon="wertLAT"&amp;amp;z="wertLONG""&gt;https://osmand.net-go?lat="wert"&amp;amp;lon="wertLAT"&amp;amp;z="wertLONG"&lt;/a&gt; . In Automate müssen daher nur mehr die zuvor erstellten Variablen in die URL eingesetzt werden. Der Link wird in einer eigenen Variable gespeichert, um beim Versenden der SMS auf diese zugreifen zu können.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Generate_Osmand_url%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Generate_Osmand_url%20-%20scaled%20width%20560.jpg" alt="Generierung des SMS Textes mit den Koorindaten als OSMAnd Link" width="TMPREPLACEMEwidthSTART-20210717-Generate_Osmand_url - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Generate_Osmand_url - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Generierung des SMS Textes mit den Koorindaten als OSMAnd Link &lt;a class="figcaption-clue-link" href="20210717-Generate_Osmand_url%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Beim Versender der SMS kann wieder auf die Variable der Telefonnummer, die bereits beim Empfang zum Einsatz kam, verwendet werden. Unter "Message" wird die vorher erstelle Variable "varMessage", die den OSMAnd-Link enthält, eingefügt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Send_GPS%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Send_GPS%20-%20scaled%20width%20560.jpg" alt="Funktionsblock zum Versenden der SMS mit den OSMAnd-Link" width="TMPREPLACEMEwidthSTART-20210717-SMS_Send_GPS - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Send_GPS - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Funktionsblock zum Versenden der SMS mit den OSMAnd-Link &lt;a class="figcaption-clue-link" href="20210717-SMS_Send_GPS%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Der komplette Ablauf des Skriptes ist in der nachfolgenden Grafik ersichtlich. Wie beim vorherigen Skript stelle ich es als &lt;a href="https://github.com/diovon/Automate_Script-SMS_Send_Position_SMS"&gt;flo-Datei&lt;/a&gt; via github zur Verfügung.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="SendPositionSMS%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="SendPositionSMS%20-%20scaled%20width%20560.png" alt="Aufbau des Skripts zum Senden der GPS-Position per SMS" width="TMPREPLACEMEwidthSTART-SendPositionSMS - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-SendPositionSMS - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Aufbau des Skripts zum Senden der GPS-Position per SMS &lt;a class="figcaption-clue-link" href="SendPositionSMS%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Bei diesem Skript hab ich mich dazu entschieden, dass es ständig im Hintergrund laufen darf. Das es nach einem Smartphone Neustart ebenfalls wieder läuft, habe ich die entsprechende Option in der &lt;a href="https://play.google.com/store/apps/details?id=com.llamalab.automate&amp;amp;hl=de&amp;amp;gl=US"&gt;Automate-App&lt;/a&gt; aktiviert.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-Run_on_startup%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-Run_on_startup%20-%20scaled%20width%20560.jpg" alt="Aktivierung der Option, dass Skript nach Smartphone Neustart automatisch gestartet wird" width="TMPREPLACEMEwidthSTART-20210717-Run_on_startup - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-Run_on_startup - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Aktivierung der Option, dass Skript nach Smartphone Neustart automatisch gestartet wird &lt;a class="figcaption-clue-link" href="20210717-Run_on_startup%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Finaler Test&lt;/h3&gt;&lt;/header&gt;


&lt;p&gt;

Für den Test hier habe ich die beiden Skript nur auf meinem Smartphone ausgeführt. Wie in der folgenden Abbildung zu sehen ist, wird sowohl die Anfrage-SMS als auch die SMS mit dem OSMAnd-Link angezeigt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-SMS_Test%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-SMS_Test%20-%20scaled%20width%20560.jpg" alt="Anzeige der SMS in Signal im Zuge eines Funktionstests" width="TMPREPLACEMEwidthSTART-20210717-SMS_Test - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-SMS_Test - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Anzeige der SMS in Signal im Zuge eines Funktionstests &lt;a class="figcaption-clue-link" href="20210717-SMS_Test%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Wird der OSMAnd-Link in der SMS angeklickt, kann dieser entweder in der &lt;a href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt; oder einem Webbrowser angezeigt werden. Nachfolgende Abbildung zeigt die Anzeige in der &lt;a href="https://play.google.com/store/apps/details?id=net.osmand&amp;amp;hl=de&amp;amp;gl=US"&gt;OSMAnd-App&lt;/a&gt;.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="20210717-OSMAnd_View%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="20210717-OSMAnd_View%20-%20scaled%20width%20560.jpg" alt="Anzeige der Position in OSMAnd" width="TMPREPLACEMEwidthSTART-20210717-OSMAnd_View - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-20210717-OSMAnd_View - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Anzeige der Position in OSMAnd &lt;a class="figcaption-clue-link" href="20210717-OSMAnd_View%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Sicherlich lässt sich das Skript um weitere Überprüfungen erweitern. Des Weiteren wird sich zeigen, wie sich das ständig aktive Skript auf den Akku-Verbrauch auswirkt. Hier kann dann eine Option eingebaut werden, dass nur bei Bedarf das Skript gestartet wird.

&lt;/p&gt;

    </content>
    <id>https://andreas-voit.at/2021/07/17/automateGPSSMS-from-tag-feed-with-content</id>
</entry>
<!-- ############################################################################################# -->
<entry>
    <title type="text">Routenplanung für Mapillary &amp; Upload per Mapillary Tools</title>
    <link href='https://Andreas-Voit.at/2021/07/04/trackplanMapillaryTools' />
    <published>2021-07-04T20:50:00+01:00</published>
    <updated>2021-07-04T20:50:00+01:00</updated>
    <category scheme='https://Andreas-Voit.at/tags/gis' term='gis' />
    <category scheme='https://Andreas-Voit.at/tags/osm' term='osm' />
    <category scheme='https://Andreas-Voit.at/tags/mapillary' term='mapillary' />
    <category scheme='https://Andreas-Voit.at/autotags/language' term='language:deutsch' />
    <summary type='html'>
&lt;p&gt;

Die mich kennen wissen, dass ich öfters für &lt;a href="https://www.mapillary.com/"&gt;Mapillary&lt;/a&gt; Radtouren mache. Vor Kurzem hab ich durch &lt;a href="https://twitter.com/echeloni2p"&gt;echelon&lt;/a&gt; erfahren, dass die Mapillary Tools für die Commandline aktualisiert wurden. Daher möchte ich diese im Zusammenhang mit meinem Mapillary Workflow hier kurz vorstellen.

&lt;/p&gt;

    </summary>    <content type='html'>

&lt;p&gt;

Die mich kennen wissen, dass ich öfters für &lt;a href="https://www.mapillary.com/"&gt;Mapillary&lt;/a&gt; Radtouren mache. Vor Kurzem hab ich durch &lt;a href="https://twitter.com/echeloni2p"&gt;echelon&lt;/a&gt; erfahren, dass die Mapillary Tools für die Commandline aktualisiert wurden. Daher möchte ich diese im Zusammenhang mit meinem Mapillary Workflow hier kurz vorstellen.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Routenplanung per GPX Tracks&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Früher bin ich einfach drauf losgefahren und habe Fotos für Mapillary aufgenommen. Jetzt habe ich mich entschiedene, meine Mapillary Routen zuvor zu planen. Vor allem wenn ich versuche, Lücken zu schließen. Dazu verwende ich das Online Service &lt;a href="https://brouter.de/brouter-web/#map=16/47.9597/16.4084/osm-mapnik-german_style"&gt;BRouter-Web&lt;/a&gt;, um die Routen zu erstellen und sie als GPX Tracks zu exportieren.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="brouter-web%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="brouter-web%20-%20scaled%20width%20560.png" alt="BRouter-Web Oberfläche" width="TMPREPLACEMEwidthSTART-brouter-web - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-brouter-web - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;BRouter-Web Oberfläche &lt;a class="figcaption-clue-link" href="brouter-web%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

In BRouter lassen sich unterschiedliche Hintergrundkarten einbinden und es können auch eigene Hintergrundkarten konfiguriert werden. Es gibt auch einen Mappilary Coverage Layer, der wurde bei mir allerdings nicht angezeigt, was aber durchaus praktisch gewesen wäre. Durch Auswahl des Stifts aus der linken Symbolleiste wird das Erstellen der Route gestartet. Standardmäßig wird aufgrund des ausgewählten Verkehrsmittels (bei mir Trekkingrad) die Route am Straßennetz geroutet. Das bedeutet, wenn du in der Karte nicht auf die Straße klickst, dann wird trotzdem entlang der Straße die Route erstellt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="route_erstellt%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="route_erstellt%20-%20scaled%20width%20560.png" alt="Route erstellen" width="TMPREPLACEMEwidthSTART-route_erstellt - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-route_erstellt - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Route erstellen &lt;a class="figcaption-clue-link" href="route_erstellt%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

BRouter-Web verfügt über noch mehr Editier- und Einstellungsmöglichkeiten, auf die ich hier nicht genauer eingehen will. Ich empfehle, einfach mal damit etwas herumspielen. Ist die Route Erstellung fertig, wird per ESC-Taste beendet, dann kann die erstellte Route exportiert werden. Ich habe mich hierbei für das Format als GPX Track entschieden, da ich diesen auf meinem Smartphone mit der App OsmAnd anzeigen und navigieren kann.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="Route_exportieren%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="Route_exportieren%20-%20scaled%20width%20560.png" alt="GPX Track Export" width="TMPREPLACEMEwidthSTART-Route_exportieren - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-Route_exportieren - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;GPX Track Export &lt;a class="figcaption-clue-link" href="Route_exportieren%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Routennavigation in OsmAnd&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Der zuvor erstellte GPX Track muss nun auf das Smartphone übertragen werden. Entweder per USB-Kabel oder durch eine andere Übertragungsmöglichkeit. Ich verwende Syncthing da darüber bereits die Synchronisation meiner Mobilen Daten durchgeführt wird. Ein Hinweis noch zur folgenden Beschreibung: Ich verwende die englische Oberfläche der App, daher sind die erwähnten Menüpunkte in der deutschen Oberfläche teilweise anders benannt. In der App OsmAnd über das linke Icon mit den drei Strichen das Optionsmenü öffnen und Plan Route auswählen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_startseite%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_startseite%20-%20scaled%20width%20560.jpg" alt="OsmAnd Oberfläche" width="TMPREPLACEMEwidthSTART-osmand_startseite - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_startseite - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Oberfläche &lt;a class="figcaption-clue-link" href="osmand_startseite%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_plan_route%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_plan_route%20-%20scaled%20width%20560.jpg" alt="OsmAnd Plan Route auswählen" width="TMPREPLACEMEwidthSTART-osmand_plan_route - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_plan_route - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Plan Route auswählen &lt;a class="figcaption-clue-link" href="osmand_plan_route%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Danach die Funktion Import Track auswählen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_import_track%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_import_track%20-%20scaled%20width%20560.jpg" alt="Osmand Importieren des zuvor erstellten Tracks" width="TMPREPLACEMEwidthSTART-osmand_import_track - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_import_track - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;Osmand Importieren des zuvor erstellten Tracks &lt;a class="figcaption-clue-link" href="osmand_import_track%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Danach wird der Track in OsmAnd in einer Vorschau angezeigt. Durch Klick auf Done wird der Importprozess abgeschlossen. Um den Track zur Navigation zu verwenden, muss das Navigationsmenü auf der OsmAnd Startseite geklickt werden.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_navigationsmenu%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_navigationsmenu%20-%20scaled%20width%20560.jpg" alt="OsmAnd Navigationsmenü" width="TMPREPLACEMEwidthSTART-osmand_navigationsmenu - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_navigationsmenu - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Navigationsmenü &lt;a class="figcaption-clue-link" href="osmand_navigationsmenu%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Dort auf Options klicken und Follow Track auswählen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_followtrack%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_followtrack%20-%20scaled%20width%20560.jpg" alt="OsmAnd Follow Track auswählen" width="TMPREPLACEMEwidthSTART-osmand_followtrack - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_followtrack - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Follow Track auswählen &lt;a class="figcaption-clue-link" href="osmand_followtrack%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Danach werden die zur Verfügung stehenden Tracks anzeigt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_moeglichetracks%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_moeglichetracks%20-%20scaled%20width%20560.jpg" alt="OsmAnd Auswahl möglicher Tracks" width="TMPREPLACEMEwidthSTART-osmand_moeglichetracks - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_moeglichetracks - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Auswahl möglicher Tracks &lt;a class="figcaption-clue-link" href="osmand_moeglichetracks%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Nun wird erneut der Track in einer Vorschau angezeigt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_meineroute%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_meineroute%20-%20scaled%20width%20560.jpg" alt="OsmAnd Anzeige des Tracks Meine Route" width="TMPREPLACEMEwidthSTART-osmand_meineroute - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_meineroute - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Anzeige des Tracks Meine Route &lt;a class="figcaption-clue-link" href="osmand_meineroute%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Hier ist es wichtig, dass man noch weiter nach unter scrollt, da standardmäßig in OsmAnd konfiguriert ist, dass der Track am näherten Punkt zu meinem aktuellen Standort gestartet wird. Dies hat bei meiner ersten Route während der Fahrt für Verwirrung gesorgt. Durch Auswahl von Start of the track wird der Startpunkt des Tracks verwendet. Über den Button Close wird die Konfiguration beendet.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_setstartpoint%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_setstartpoint%20-%20scaled%20width%20560.jpg" alt="OsmAnd Einstellung das Route bei GPX Track Startpunkt beginnt." width="TMPREPLACEMEwidthSTART-osmand_setstartpoint - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_setstartpoint - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd Einstellung das Route bei GPX Track Startpunkt beginnt. &lt;a class="figcaption-clue-link" href="osmand_setstartpoint%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Nun ist alles für die Navigation bereit.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="osmand_ready4nav%20-%20scaled%20width%201500.jpg"&gt;
  &lt;img src="osmand_ready4nav%20-%20scaled%20width%20560.jpg" alt="OsmAnd bereit zum Starten der Navigation" width="TMPREPLACEMEwidthSTART-osmand_ready4nav - scaled width 560.jpg-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-osmand_ready4nav - scaled width 560.jpg-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;OsmAnd bereit zum Starten der Navigation &lt;a class="figcaption-clue-link" href="osmand_ready4nav%20-%20scaled%20width%201500.jpg"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Bilder nachbereiten&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Bei meinen Fahrten nehme ich meistens mehr als einen Track auf. Die GoPro Max speichert aber alle Bilder in einem Ordner ab bzw. legt erst ab 999 Bilder einen neuen Ordner an. Daher teile ich vor dem Hochladen der Bilder diese in Unterordnern auf, die den Tracks entsprechen. Dazu verwende ich GPSPrune, damit ich an Hand der Position sehe, bei welcher Bildnummer der Track endet und ein Neuer beginnt. Dies ist vielleicht etwas zeitaufwendig, ich habe allerdings noch keine bessere Methode für mich entdeckt. Am Ende sind dann alle Bildsequenzen in einem eigenen Ordner abgelegt.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="gpsprune_tracks%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="gpsprune_tracks%20-%20scaled%20width%20560.png" alt="In GpsPrune sieht man an hand der Position die unterschiedlichen Tracks" width="TMPREPLACEMEwidthSTART-gpsprune_tracks - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-gpsprune_tracks - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;In GpsPrune sieht man an hand der Position die unterschiedlichen Tracks &lt;a class="figcaption-clue-link" href="gpsprune_tracks%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Mit Mapillary Tools Fotos hochladen&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Bevor die Mapillary Tools für python 3 portiert wurden, musst ich den Web-Uploader verwenden. Dies war etwas umständlich und hat meiner Meinung nach auch länger gedauert als die Mapillary Commandline Tools. Die &lt;a href="https://github.com/mapillary/mapillary_tools"&gt;Mapillary Tools&lt;/a&gt; stehen über ein &lt;a href="https://github.com/mapillary/mapillary_tools"&gt;github repo&lt;/a&gt; zur Verfügung. Die Beschreibung im Repo ist sehr gut verständlich und die Installation per pip3 funktioniert ebenfalls sehr einfach.

&lt;/p&gt;

python3 -m pip install --upgrade git+https://github.com/mapillary/mapillary_tools

&lt;p&gt;

Die Mapillary Tools stellen unterschiedliche Konfigurationsmöglichkeiten bereit. Ich verwende für meine Uploads allerdings den Standardaufruf, da die GoPro Max bereits die Fotos mit GPS-Informationen versehen hat.

&lt;/p&gt;

mapillary_tools process_and_upload --import_path "path/to/images" --user_name "mapillary_username"

&lt;p&gt;

Nach der Eingabe des Mapillary User Passworts beginnen die Vorbereitungen und dann der Upload zu Mapillary. In der Regel sind nach ein paar Tagen die Fotos auf Mapillary ersichtlich.

&lt;/p&gt;

    </content>
    <id>https://andreas-voit.at/2021/07/04/trackplanMapillaryTools-from-tag-feed-with-content</id>
</entry>
<!-- ############################################################################################# -->
<entry>
    <title type="text">In uMap österreichische basemap verwenden</title>
    <link href='https://Andreas-Voit.at/2021/05/28/umapbasemap' />
    <published>2021-05-28T20:19:00+01:00</published>
    <updated>2021-05-28T20:19:00+01:00</updated>
    <category scheme='https://Andreas-Voit.at/tags/gis' term='gis' />
    <category scheme='https://Andreas-Voit.at/tags/osm' term='osm' />
    <category scheme='https://Andreas-Voit.at/autotags/language' term='language:deutsch' />
    <summary type='html'>
&lt;p&gt;

In diesem Blogbeitrag möchte ich euch zeigen, wie &lt;a href="http://umap.openstreetmap.fr/de/"&gt;uMap&lt;/a&gt; konfiguriert wird, sodass die österreichische Basemap als Hintergrundkarte angezeigt wird. Mit dieser Methode lassen sich alle angebotenen Daten wie Orthofoto, Geländemodell oder Höhenmodell einbinden.

&lt;/p&gt;

    </summary>    <content type='html'>

&lt;p&gt;

In diesem Blogbeitrag möchte ich euch zeigen, wie &lt;a href="http://umap.openstreetmap.fr/de/"&gt;uMap&lt;/a&gt; konfiguriert wird, sodass die österreichische Basemap als Hintergrundkarte angezeigt wird. Mit dieser Methode lassen sich alle angebotenen Daten wie Orthofoto, Geländemodell oder Höhenmodell einbinden.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Was ist uMap?&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

&lt;a href="http://umap.openstreetmap.fr/de/"&gt;uMap&lt;/a&gt; ist ein Projekt aus der französischen OpenstreetMap (OSM)-Community und bietet die Möglichkeit, eigene Karten online zu zeichnen. Standardmäßig hat der Anwender die Auswahl von unterschiedlichen OSM-Hintergrundkarten auf die er Linien, Punkt oder Flächen zeichnen kann, ohne die Datenquellen zu verändern. Die Benutzung dieses Service ist kostenlos und benötigt keine Registrierung. Alle weiteren Informationen bitte einfach auf der Projektseite nachlesen, diese ist sehr schön gestaltet.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="00_umap%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="00_umap%20-%20scaled%20width%20560.png" alt="uMap Oberfläche" width="TMPREPLACEMEwidthSTART-00_umap - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-00_umap - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap Oberfläche &lt;a class="figcaption-clue-link" href="00_umap%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Was ist die basemap&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Die &lt;a href="https://basemap.at"&gt;basemap&lt;/a&gt; ist eine Sammlung an amtlichen Geodaten die in Form mehrer Karten für private und kommerzielle Zwecke unter der &lt;a href="https://creativecommons.org/licenses/by/4.0/deed.de"&gt;Open Government Data Österreich Lizenz CC-BY 4.0&lt;/a&gt; zur Verfügung gestellt werden.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Warum uMap mit basemap als Hintergrundkarte verwenden?&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Wie anfangs beschrieben bietet &lt;a href="http://umap.openstreetmap.fr/de/"&gt;uMap&lt;/a&gt; standardmäßig OSM-Hintergrundkarten an, da es ja aus der OSM-Szene kommt. Jedoch kann es vorkommen, dass ich für meine Karte eine andere Hintergrundkarte verwenden will, da möglicherweise in der basemap andere Elemente als in der OSM-Karte enthalten sind. Ein weiterer Grund kann sein, dass ich als Hintergrund ein Orthofoto nehmen will und da bietet sich die basemap sehr gut an.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Konfiguration der basemap-Hintergrundkarte in uMap&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Diese Anleitung setzt voraus, dass die Oberfläche in deutscher Sprache verwendet wird.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="01_umap_osm%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="01_umap_osm%20-%20scaled%20width%20560.png" alt="uMap initiale Karte" width="TMPREPLACEMEwidthSTART-01_umap_osm - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-01_umap_osm - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap initiale Karte &lt;a class="figcaption-clue-link" href="01_umap_osm%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Nach dem initialen Erstellen der Karte befinden sich auf der linken und rechten Seite Bearbeitungswerkzeuge. Für die Konfiguration der Hintergrundkarte verwenden wir die Werkzeuge auf der rechten Bildschirmseite. Durch Klick auf das Zahnrad-Symbol öffnen wir das Karteneinstellungsmenü.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="02_Karteneinstellungen_bearbeiten%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="02_Karteneinstellungen_bearbeiten%20-%20scaled%20width%20560.png" alt="uMap - Auswahl des Karteneinstellungsmenü" width="TMPREPLACEMEwidthSTART-02_Karteneinstellungen_bearbeiten - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-02_Karteneinstellungen_bearbeiten - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - Auswahl des Karteneinstellungsmenü &lt;a class="figcaption-clue-link" href="02_Karteneinstellungen_bearbeiten%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

In dem Menü klicken wir auf Benutzerdefinierter Hintergrund. Es gibt leider nur die Möglichkeit, eine benutzerdefinierte Hintergrundkarte festzulegen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="03_Benutzerdefinierten_Hintergrund_auswaehlen%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="03_Benutzerdefinierten_Hintergrund_auswaehlen%20-%20scaled%20width%20560.png" alt="uMap - Karteneinstellungsmenü - Auswahl des Punktes Benutzerdefinierter Hintergrund" width="TMPREPLACEMEwidthSTART-03_Benutzerdefinierten_Hintergrund_auswaehlen - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-03_Benutzerdefinierten_Hintergrund_auswaehlen - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - Karteneinstellungsmenü - Auswahl des Punktes Benutzerdefinierter Hintergrund &lt;a class="figcaption-clue-link" href="03_Benutzerdefinierten_Hintergrund_auswaehlen%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Folgende Parameter müssen ausgefüllt werden:

&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Namen anzeigen - hier wird der Name eingetragen, wie die
Hintergrundkarte in uMap benannt werden soll&lt;/li&gt;
&lt;li&gt;url - hier muss die URL zur basemap eingetragen werden, damit uMap
auf die basemap zugreifen kann. Die möglichen URLs werde ich weiter
unten anführen.&lt;/li&gt;
&lt;li&gt;Copyright-Hinweis - ohne diesen Eintrag wird die Hintergrundkarte
nicht in uMap angezeigt. Im Fall für die Basemap verwende ich:&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;

&lt;code&gt;Kartendaten © &lt;a href="https://www.basemap.at|Datenquelle: basemap.at"&gt;https://www.basemap.at|Datenquelle: basemap.at&lt;/a&gt; unter &lt;a href="https://creativecommons.org/licenses/by/4.0/deed.de|Open Government Data Österreich Lizenz CC-BY 4.0"&gt;https://creativecommons.org/licenses/by/4.0/deed.de|Open Government Data Österreich Lizenz CC-BY 4.0&lt;/a&gt;"&lt;/code&gt;

&lt;/p&gt;


&lt;p&gt;

Wurden die Einstellungen für die basemap korrekt eingetragen, wird die basemap angezeigt

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_Anzeige_basemap%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_Anzeige_basemap%20-%20scaled%20width%20560.png" alt="uMap - basemap Grundkarte wird in uMap angezeigt" width="TMPREPLACEMEwidthSTART-2021-05-28_Anzeige_basemap - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_Anzeige_basemap - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - basemap Grundkarte wird in uMap angezeigt &lt;a class="figcaption-clue-link" href="2021-05-28_Anzeige_basemap%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Unter der Beachtung meiner Hinweise unten Problem sollte die benutzerdefinierte Hintergrundkarte unter der Hintergrundkarten-Auswahl ebenfalls aufgelistet sein.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_Anzeige_basemap_in_Hintergrundkarten_Auswahl%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_Anzeige_basemap_in_Hintergrundkarten_Auswahl%20-%20scaled%20width%20560.png" alt="uMap - basemap Karte steht in der uMap Hintergrundkarten-Auswahl zur Verfügung" width="TMPREPLACEMEwidthSTART-2021-05-28_Anzeige_basemap_in_Hintergrundkarten_Auswahl - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_Anzeige_basemap_in_Hintergrundkarten_Auswahl - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - basemap Karte steht in der uMap Hintergrundkarten-Auswahl zur Verfügung &lt;a class="figcaption-clue-link" href="2021-05-28_Anzeige_basemap_in_Hintergrundkarten_Auswahl%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Nun stellt sich zurecht die Frage, welche URL muss angegeben werden, damit die basemap angezeigt werden kann. Folgend eine Aufstellung der URLs zu den einzelnen basemap-Karten:

&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;basemap.at Grundkarte: &lt;a
href="http://maps4.wien.gv.at/basemap/geolandbasemap/normal/google3857/%7Bz%7D/%7By%7D/%7Bx%7D.png"&gt;http://maps4.wien.gv.at/basemap/geolandbasemap/normal/google3857/{z}/{y}/{x}.png&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;basemap.at Orthofoto: &lt;a
href="http://maps4.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/%7Bz%7D/%7By%7D/%7Bx%7D.jpeg"&gt;http://maps4.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/{z}/{y}/{x}.jpeg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;basemap.at Geländermodell: &lt;a
href="https://maps4.wien.gv.at/basemap/bmapgelaende/grau/google3857/%7Bz%7D/%7By%7D/%7Bx%7D.jpeg"&gt;https://maps4.wien.gv.at/basemap/bmapgelaende/grau/google3857/{z}/{y}/{x}.jpeg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;basemap.at Oberflächenmodell: &lt;a
href="https://maps4.wien.gv.at/basemap/bmapoberflaeche/grau/google3857/%7Bz%7D/%7By%7D/%7Bx%7D.jpeg"&gt;https://maps4.wien.gv.at/basemap/bmapoberflaeche/grau/google3857/{z}/{y}/{x}.jpeg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;

Wie bereits erwähnt, kann leider nur eine Hintergrundkarte definiert werden. Wenn ihr zwischen den Karten wechseln wollt, muss nur die URL ausgetauscht werden. Die Zoomstufe wird dabei nicht verändert!

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_basemap-Orthofoto%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_basemap-Orthofoto%20-%20scaled%20width%20560.png" alt="uMap - basemap Orthofoto wird in uMap angezeigt" width="TMPREPLACEMEwidthSTART-2021-05-28_basemap-Orthofoto - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_basemap-Orthofoto - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - basemap Orthofoto wird in uMap angezeigt &lt;a class="figcaption-clue-link" href="2021-05-28_basemap-Orthofoto%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_basemap-Gelaendemodell%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_basemap-Gelaendemodell%20-%20scaled%20width%20560.png" alt="uMap - basemap Geländermodell wird in uMap angezeigt" width="TMPREPLACEMEwidthSTART-2021-05-28_basemap-Gelaendemodell - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_basemap-Gelaendemodell - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - basemap Geländermodell wird in uMap angezeigt &lt;a class="figcaption-clue-link" href="2021-05-28_basemap-Gelaendemodell%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_basemap-Oberflaechenmodell%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_basemap-Oberflaechenmodell%20-%20scaled%20width%20560.png" alt="uMap - basemap Oberflächenmodell wird in uMap angezeigt" width="TMPREPLACEMEwidthSTART-2021-05-28_basemap-Oberflaechenmodell - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_basemap-Oberflaechenmodell - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;uMap - basemap Oberflächenmodell wird in uMap angezeigt &lt;a class="figcaption-clue-link" href="2021-05-28_basemap-Oberflaechenmodell%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;

Hier noch zwei Beispiele aus Wien, die jeweils einen Ausschnitt des Geländemodells und Oberflächenmodells zeigen.

&lt;/p&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_basemap-Gelaendemodell%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_basemap-Gelaendemodell%20-%20scaled%20width%20560.png" alt="uMap - basemap Geländermodell Ausschnitt von Wien" width="TMPREPLACEMEwidthSTART-2021-05-28_basemap-Gelaendemodell - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_basemap-Gelaendemodell - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;basemap Geländermodell Ausschnitt von Wien &lt;a class="figcaption-clue-link" href="2021-05-28_basemap-Gelaendemodell%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure class="image-center"&gt;
&lt;a href="2021-05-28_Oberflaechenmodell_Wien%20-%20scaled%20width%201500.png"&gt;
  &lt;img src="2021-05-28_Oberflaechenmodell_Wien%20-%20scaled%20width%20560.png" alt="uMap - basemap Oberflächenmodell Ausschnitt von Wien" width="TMPREPLACEMEwidthSTART-2021-05-28_Oberflaechenmodell_Wien - scaled width 560.png-TMPREPLACEMEwidthEND" height="TMPREPLACEMEheightSTART-2021-05-28_Oberflaechenmodell_Wien - scaled width 560.png-TMPREPLACEMEheightEND" loading="lazy" /&gt;
&lt;/a&gt;
&lt;figcaption&gt;basemap Oberflächenmodell Ausschnitt von Wien &lt;a class="figcaption-clue-link" href="2021-05-28_Oberflaechenmodell_Wien%20-%20scaled%20width%201500.png"&gt;(klicken für größere Version)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Bekannte Probleme&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Beim Einbinder der Basemap bin ich auf ein paar Probleme gestoßen, die ich hier erwähnen möchte. Wenn mir die Lösung dazu bekannt ist, ist diese natürlich angeführt.

&lt;/p&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Hintergundkarte wird nicht angezeigt&lt;/h3&gt;&lt;/header&gt;

&lt;ul&gt;
&lt;li&gt;Einer der oben beschriebenen Parameter ist nicht korrekt
ausgefüllt.&lt;/li&gt;
&lt;/ul&gt;


	  &lt;header&gt;&lt;h3 class="section-title"&gt;Hintergrundkarte wird in der Kartenauswahl nicht angezeigt&lt;/h3&gt;&lt;/header&gt;

&lt;ul&gt;
&lt;li&gt;Der vergebene Name der benutzerdefinierten Hintergrundkarte enthält
ein Sonderzeichen oder ein Umlautzeichen&lt;/li&gt;
&lt;li&gt;Ich habe allerdings auch festgestellt, dass Hintergrundkarte trotz
Name wie "basemap" nicht in der Kartenauswahl erscheint&lt;/li&gt;
&lt;/ul&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Ende&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Ich hoffe dem einen oder der anderen hat diese Anleitung inspiriert und wünsche viel Spaß beim Erstellen eurer Karten. Wenn es die Covid19-Lage zu lässt, könnt ihr ja eine Karte mit einer Wegbeschreibung zu euch erstellen, damit ihr eure Familien oder Freunde zu euch einladen könnt.

&lt;/p&gt;

    </content>
    <id>https://andreas-voit.at/2021/05/28/umapbasemap-from-tag-feed-with-content</id>
</entry>
<!-- ############################################################################################# -->
<entry>
    <title type="text">JOSM Plugin selber bauen</title>
    <link href='https://Andreas-Voit.at/2016/11/16/josm' />
    <published>2016-11-16T23:20:00+01:00</published>
    <updated>2016-11-16T23:20:00+01:00</updated>
    <category scheme='https://Andreas-Voit.at/tags/osm' term='osm' />
    <category scheme='https://Andreas-Voit.at/tags/github' term='github' />
    <category scheme='https://Andreas-Voit.at/autotags/language' term='language:deutsch' />
    <summary type='html'>
&lt;p&gt;

Auf der talk.at Mailingliste gab es vor kurzem eine Diskussion über ein &lt;a href="https://github.com/JOSM/austriaaddresshelper"&gt;JOSM-Plugin&lt;/a&gt; zur leichteren Eingabe der BEV-Adressdaten. Da es noch Unklarheiten bezüglich der Lizenz gab, stellte der Plugin-Autor dieses nicht als offizielles JOSM-Plugin zur Verfügung. Man kann allerdings das &lt;a href="https://github.com/JOSM/austriaaddresshelper"&gt;Plugin&lt;/a&gt; von github herunterladen und sich das Plugin selber erstellen.

&lt;/p&gt;

    </summary>    <content type='html'>

&lt;p&gt;

Auf der talk.at Mailingliste gab es vor kurzem eine Diskussion über ein &lt;a href="https://github.com/JOSM/austriaaddresshelper"&gt;JOSM-Plugin&lt;/a&gt; zur leichteren Eingabe der BEV-Adressdaten. Da es noch Unklarheiten bezüglich der Lizenz gab, stellte der Plugin-Autor dieses nicht als offizielles JOSM-Plugin zur Verfügung. Man kann allerdings das &lt;a href="https://github.com/JOSM/austriaaddresshelper"&gt;Plugin&lt;/a&gt; von github herunterladen und sich das Plugin selber erstellen.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;JOSM Plugin bauen&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Da ich keine Erfahrung mit dem Bauen von JOSM-Plugins habe, machte ich mich auf die Suche und fand eine &lt;a href="https://is.gd/wuo3dZ"&gt;Entwicklerseite&lt;/a&gt;. Darin wird verwiesen, dass man sich über Subversion den JOSM Core besorgen muss.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Irrweg mit git-Repository&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Ich habe bereits git im Einsatz und wollte kein zusätzliches Versionierungssystem installieren. Auf github fand ich dann ein &lt;a href="https://github.com/openstreetmap/josm-plugins"&gt;Mirror-Repository&lt;/a&gt; zum Clonen.

&lt;/p&gt;


	  &lt;div class="example_code"&gt;
	  &lt;pre&gt;git clone https://github.com/openstreetmap/josm-plugins.git	  &lt;/pre&gt;
    &lt;/div&gt;


&lt;p&gt;

Allerdings bekame ich beim Builden per ant ständig kryptische Java-Fehlermeldungen.

&lt;/p&gt;


	  &lt;header&gt;&lt;h2 class="section-title"&gt;Doch SVN&lt;/h2&gt;&lt;/header&gt;


&lt;p&gt;

Kurzerhand hab ich nun doch SVN installiert und mir wie in der &lt;a href="https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins#Settinguptheenvironment"&gt;Anleitung&lt;/a&gt; beschrieben ist, die Entwicklungsumgebung entsprechend angepasst.

&lt;/p&gt;


&lt;p&gt;

Nachdem ich den Ordner "Austria Address Helper" in den Ordner "plugins" kopiert, ant clean und ant dist ausgeführt hatte, siehe da befand sich im Ordner "dist" eine Austria Address Helper JAR-Datei, die ich sogleich in den "plugin"-Ordner meines JOSM kopieren konnte.

&lt;/p&gt;


&lt;p&gt;

Nun musste ich nur noch das Plugin in JOSM selbst aktivieren, einen manuellen Neustart des Programms durchführen und schon konnte ich das selbst erstellte Plugin verwenden.

&lt;/p&gt;

    </content>
    <id>https://andreas-voit.at/2016/11/16/josm-from-tag-feed-with-content</id>
</entry></feed>