NEWS
Lösung für GPS-Koordinaten nach Ortsnamen aufschlüsseln?
-
@david-g läuft hier
-
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>
-
@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); } }
-
@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.
-
@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