NEWS
Lösung für GPS-Koordinaten nach Ortsnamen aufschlüsseln?
-
Vielen Dank erstmal für Deine schnelle Rückmeldung, aber ich scheitere aktuell mal wieder daran, dass JS nicht wirklich meins ist, ich Dein Script und Blockly Vorlage nicht zum Laufen bekomme:

Hmm? Komme da gerade nicht wirklich weiter...
-
@lemuba es braucht keine Kenntnisse, importieren und laufen lassen. Evtl. kopierst du nochmal neu, sonst fällt mir nichts ein
-
:grin:: Das war Zu Einfach! :joy: Ich hatte nicht geschnallt, das der ganze Code das Blockly Script zum Import ist...läuft!
Vielen Dank nochmal!
Gruß,
Matthias
-
Hey,
läuft bei euch das Script noch?
Seit heute bekomme ich20:12:05.729 error javascript.0 (5273) script.js.Eigene_Scripte.Tests.Loschen: Cannot get address of undefinedIm Log.
(muss das Skript noch umbenennen ^^).Hab gestern ein Update des Javascript Adapters gemacht. Zusammen mit Admin 5.
Die Koordinaten sind sauber.
-
Hey,
läuft bei euch das Script noch?
Seit heute bekomme ich20:12:05.729 error javascript.0 (5273) script.js.Eigene_Scripte.Tests.Loschen: Cannot get address of undefinedIm Log.
(muss das Skript noch umbenennen ^^).Hab gestern ein Update des Javascript Adapters gemacht. Zusammen mit Admin 5.
Die Koordinaten sind sauber.
-
Komisch.
Hat OSM ein Limit für Anfragen?
Grage minütlich ab. Läuft aber bestimmt schon seit 3 Wochen ohne Probleme.....
Setzte die Adresse nochmal selber zusammen. OSM sendet die was komisch....
EDIT:
Hab grad mal das Internet neu verbunden um eine neue IP zu bekommen.
Siehe da, es klappt wieder. -
Das Ganze läuft jetzt auch super mit dem Awtrix Adapter, bzw. Ausgabe auf dem Ulanzi Matrix Display:
Hier mal die Visualisierung der Adressdaten, plus aktuellen Geschwindigkeit - nun aber mit unserem Tesla M3.
Blockly Export/Import:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="2]3hGy$Na|L2qX#+=;E8">lat</variable> <variable id=".hv$JjjT(QY(0c2!/tuc">lon</variable> <variable id="InM51wH+hhRZ1K}Uo6R:">result</variable> <variable id=",v4l/N^bA;j*N;f.7`GF">text</variable> </variables> <block type="procedures_defcustomreturn" id="?;wMWdJ!vB8:m#;$39f@" x="-337" y="-212"> <mutation statements="false"> <arg name="lat" varid="2]3hGy$Na|L2qX#+=;E8"></arg> <arg name="lon" varid=".hv$JjjT(QY(0c2!/tuc"></arg> </mutation> <field name="NAME">OSM</field> <field name="SCRIPT">dmFyIHJlcXVlc3QgPXJlcXVpcmUoJ3JlcXVlc3QnKTsNCmxldCByZXN1bHQ7DQpjb25zdCBvcHRpb25zID0gew0KICAgIHVybDogJ2h0dHBzOi8vbm9taW5hdGltLm9wZW5zdHJlZXRtYXAub3JnL3JldmVyc2UucGhwP2Zvcm1hdD1qc29uJmxhdD0nICsgbGF0ICsgJyZsb249JyArIGxvbiArICcmem9vbT0xOCcsDQogICAgbWV0aG9kOiAnR0VUJywNCiAgICBoZWFkZXJzOiB7DQogICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsDQogICAgICAgICdBY2NlcHQtQ2hhcnNldCc6ICd1dGYtOCcsDQogICAgICAgICdVc2VyLUFnZW50JzogJ2lvYnJva2VyIHNjcmlwdCcNCiAgICB9DQp9DQoNCnJlcXVlc3Qob3B0aW9ucywgZnVuY3Rpb24oZXJyLHJlc3BvbnNlLGJvZHkpew0KICAgIHJlc3VsdCA9IEpTT04ucGFyc2UoYm9keSk7DQp9KQ0KYXdhaXQgd2FpdCgyMDAwKTsNCnJldHVybiByZXN1bHQ7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="variables_set" id="wR~~7^?!0{b~ZWJW2z2Y" x="-337" y="-187"> <field name="VAR" id="2]3hGy$Na|L2qX#+=;E8">lat</field> <value name="VALUE"> <block type="get_value" id="!@Mxm]aCD#|[2(1,`7LA"> <field name="ATTR">val</field> <field name="OID">tesla-motors.0.LRW3E7FS7PC682851.drive_state.latitude</field> </block> </value> <next> <block type="variables_set" id="|i,e7-xsVZtwL,YE9Pns"> <field name="VAR" id=".hv$JjjT(QY(0c2!/tuc">lon</field> <value name="VALUE"> <block type="get_value" id="6)]4V(MA}[}Y#gCg?g7^"> <field name="ATTR">val</field> <field name="OID">tesla-motors.0.LRW3E7FS7PC682851.drive_state.longitude</field> </block> </value> <next> <block type="variables_set" id="_]-UxYH%D~}#l6DWPyqA"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="E6q6k3RA-DSW4n:wbmt5" inline="true"> <mutation name="OSM"> <arg name="lat"></arg> <arg name="lon"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="O~3vjlaQApGabQ#KZ_Np"> <field name="VAR" id="2]3hGy$Na|L2qX#+=;E8">lat</field> </block> </value> <value name="ARG1"> <block type="variables_get" id=";6In%LVgU8c~ZW=V^#!+"> <field name="VAR" id=".hv$JjjT(QY(0c2!/tuc">lon</field> </block> </value> </block> </value> <next> <block type="debug" id="=kG9Q3BHtv,N12i)o/cd"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="ik1UI0{#imdw4QxI,wuq"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="ZJbVSK}WTjai..N)v+^}"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> <next> <block type="debug" id="bXiZr_w6h{,9I,J|QFQm"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="29,6%MJ)T!m#9$n(HA(,"> <field name="TEXT">test</field> </shadow> <block type="get_attr" id="4BRp8)RL(Z,ya1V7L%,k"> <value name="PATH"> <shadow type="text" id="@+Kn.LF%vkB35cm%To%G"> <field name="TEXT">address.road</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="/rsi@S]q*[hct$N@3[U^"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> </block> </value> <next> <block type="debug" id="dAc9;C;}EM{;795yOx+x"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="/40n%p9iOr{j;fjVE}z7"> <field name="TEXT">test</field> </shadow> <block type="get_attr" id="LpeSM|-_`@#YwXXZj!J@"> <value name="PATH"> <shadow type="text" id="Z^$s~_s3A]lS:_m9AjB("> <field name="TEXT">display_name</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="O[`[O5l$sBBY(*B]Rh9U"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> </block> </value> <next> <block type="variables_set" id=":iDZr5UyCe,ivtP9v0(}"> <field name="VAR" id=",v4l/N^bA;j*N;f.7`GF">text</field> <value name="VALUE"> <block type="text_join" id="XSLUXB!wN!-ae:pl;O8B"> <mutation items="11"></mutation> <value name="ADD0"> <block type="text" id=")D7vowpY0M+s6mmej`e~"> <field name="TEXT">Location: </field> </block> </value> <value name="ADD1"> <block type="get_attr" id="g3uOcVu;z8aYAY7;8Kti"> <value name="PATH"> <shadow type="text" id="KArLdm/6uO2yf.]RJDW["> <field name="TEXT">address.road</field> </shadow> <block type="text" id="DMfj]B1V*c^r*po?FozS"> <field name="TEXT">address.road</field> </block> </value> <value name="OBJECT"> <block type="variables_get" id="YOh=_SwF-z[BN^8PV(1:"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="nOZuc!aD}_`wjoaU4!(#"> <field name="TEXT"> </field> </block> </value> <value name="ADD3"> <block type="get_attr" id="eYJy`^;WpK9z`(0#QkYu"> <value name="PATH"> <shadow type="text" id="KArLdm/6uO2yf.]RJDW["> <field name="TEXT">address.road</field> </shadow> <block type="text" id="Faux=fGpEPkIBk=EH[=d"> <field name="TEXT">address.house_number</field> </block> </value> <value name="OBJECT"> <block type="variables_get" id="BQ6I:3SHB|S1AGrNGYIt"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text" id="A(Z{jjQopfoSud(d$_*C"> <field name="TEXT">, </field> </block> </value> <value name="ADD5"> <block type="get_attr" id="G}a6d%(Qn2WrACG:Ch7|"> <value name="PATH"> <shadow type="text" id="KArLdm/6uO2yf.]RJDW["> <field name="TEXT">address.road</field> </shadow> <block type="text" id="fK{+kZLKFfv~KDF:GIcA"> <field name="TEXT">address.postcode</field> </block> </value> <value name="OBJECT"> <block type="variables_get" id="7!aEUv#yfH7G0qqNh{fh"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> </block> </value> <value name="ADD6"> <block type="text" id="QDwYvut3T+?ypaI-Qc~q"> <field name="TEXT"> </field> </block> </value> <value name="ADD7"> <block type="get_attr" id="#Qg=qhE{]!C9HFrHH#ER"> <value name="PATH"> <shadow type="text" id="KArLdm/6uO2yf.]RJDW["> <field name="TEXT">address.road</field> </shadow> <block type="text" id="/KcU}U$/=t_c2ob{O_}}"> <field name="TEXT">address.village</field> </block> </value> <value name="OBJECT"> <block type="variables_get" id="O_tQk;@av+BHgqb@VfHp"> <field name="VAR" id="InM51wH+hhRZ1K}Uo6R:">result</field> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="NenM{G|=MkLu:Y3BXF7?"> <field name="TEXT">: </field> </block> </value> <value name="ADD9"> <block type="get_value" id=":$dM7(mWFkX;dm?xlo_t"> <field name="ATTR">val</field> <field name="OID">tesla-motors.0.LRW3E7FS7PC682851.drive_state.speed_km</field> </block> </value> <value name="ADD10"> <block type="text" id="_WW=xep+.FfqH/kPAHHO"> <field name="TEXT"> km/h</field> </block> </value> </block> </value> <next> <block type="awtrix-light" id="1JNb12R1PMS^CFOxV:hZ"> <field name="INSTANCE"></field> <field name="RAINBOW">TRUE</field> <field name="STACK">TRUE</field> <field name="WAKEUP">TRUE</field> <value name="MESSAGE"> <shadow type="text" id="Upc}*ndVB5vPx7%#%,f?"> <field name="TEXT">haus-automatisierung.com</field> </shadow> <block type="variables_get" id="4@]t:R3T*_K_fnc8;i+?"> <field name="VAR" id=",v4l/N^bA;j*N;f.7`GF">text</field> </block> </value> <value name="COLOR"> <shadow type="colour_picker" id="ZO]ra7*|K.7]$apWfB4c"> <field name="COLOUR">#ffffff</field> </shadow> </value> <value name="SOUND"> <shadow type="logic_null" id="dc-@fFGA7vT5Z[bTy@aO"></shadow> </value> <value name="ICON"> <shadow type="logic_null" id=",u10)OQ,z.E.;7+eAK9:"></shadow> <block type="text" id="n1bTp(7]W[8#UVSbGQcl"> <field name="TEXT">54394</field> </block> </value> <value name="REPEAT"> <shadow type="math_number" id="ldph$rS`hpmxt,B756f!"> <field name="NUM">2</field> </shadow> </value> <value name="DURATION"> <shadow type="math_number" id="8Wgsv0!pZUT@Mg*n?w6y"> <field name="NUM">20</field> </shadow> </value> <next> <block type="control" id="T#!W2tOCAiMZT)Do_^[%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">javascript.0.scriptEnabled.common.Tesla_Position</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]yXqp^C@1w9a^uyTmw}6"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml> -
Hier noch ein kleines Update, welches ohne das lästige wait() auskommt. request() wird in eine Funktion gepackt, welche ein Promise zurück gibt auf das man mit await warten kann.

-
@fastfoot
ist es auch möglich über die API eine Adresse abzufragen und die Koordinate zu erhalten? -
@fastfoot
ist es auch möglich über die API eine Adresse abzufragen und die Koordinate zu erhalten?@oli
Das hier ist für die Richtung "Koordinaten => Adresse".const axios = require('axios'); // Reverse-Geocoding anhand der aktuellen Koordinaten async function getLocation(latitude, longitude) { const url = `https://nominatim.openstreetmap.org/reverse?lat=${latitude}&lon=${longitude}&format=json`; const response = await axios.get(url); if (response.data && response.data.display_name) { log('Standort: ' + response.data.display_name); } } -
@oli
Das hier ist für die Richtung "Koordinaten => Adresse".const axios = require('axios'); // Reverse-Geocoding anhand der aktuellen Koordinaten async function getLocation(latitude, longitude) { const url = `https://nominatim.openstreetmap.org/reverse?lat=${latitude}&lon=${longitude}&format=json`; const response = await axios.get(url); if (response.data && response.data.display_name) { log('Standort: ' + response.data.display_name); } }@codierknecht sagte in Lösung für GPS-Koordinaten nach Ortsnamen aufschlüsseln?:
Das hier ist für die Richtung "Koordinaten => Adresse
Das ist doch das was wir schon können oder? Er wollte doch Adresse => Koordinaten oder?
-
So z.B.
https://nominatim.openstreetmap.org/search?format=json&q=Berlin, Alexanderplatz 10
Du musst nur schauen, ob du das "Zentrum" der jeweiligen Adresse haben willst oder die Boundingbox.
-
@codierknecht sagte in Lösung für GPS-Koordinaten nach Ortsnamen aufschlüsseln?:
Das hier ist für die Richtung "Koordinaten => Adresse
Das ist doch das was wir schon können oder? Er wollte doch Adresse => Koordinaten oder?
@david-g sagte in Lösung für GPS-Koordinaten nach Ortsnamen aufschlüsseln?:
Das ist doch das was wir schon können oder? Er wollte doch Adresse => Koordinaten oder?
Naja - wenn man Deinen Link und meinen Code kombiniert, könnte man auf sowas kommen:
const axios = require('axios'); // Geocoding anhand einer gegebenen Adresse async function getLocation(address) { const url = `https://nominatim.openstreetmap.org/search?format=json&q=${encodeURI(address)}`; const response = await axios.get(url); if (response.data && response.data.length > 0) { log(`Latitude: ${response.data[0].lat}, Longitude: ${response.data[0].lon}`); } } -
@david-g sagte in Lösung für GPS-Koordinaten nach Ortsnamen aufschlüsseln?:
Das ist doch das was wir schon können oder? Er wollte doch Adresse => Koordinaten oder?
Naja - wenn man Deinen Link und meinen Code kombiniert, könnte man auf sowas kommen:
const axios = require('axios'); // Geocoding anhand einer gegebenen Adresse async function getLocation(address) { const url = `https://nominatim.openstreetmap.org/search?format=json&q=${encodeURI(address)}`; const response = await axios.get(url); if (response.data && response.data.length > 0) { log(`Latitude: ${response.data[0].lat}, Longitude: ${response.data[0].lon}`); } }@codierknecht, @Marc-Berg , @David-G
vielen Dank für eure Unterstützung es funktioniert
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
