Standortbestimmung mit Python?

1 Antwort

[Anscheinend wurde meine Antwort gelöscht. Ich weiß jedoch nicht warum. Daher nochmal...]

Da müsstest du dir zunächst einmal überlegen, woher der Rechner, auf dem das Python-Programm ausgeführt wird, die Standortinformationen erhalten soll. Der Rechner kann schließlich nicht Hellsehen und die Standortinformationen aus dem Nichts herbeizaubern.

Über IP? Willst du anscheinend nicht haben.
Hat der Rechner einen GPS-Empfänger?
Soll der Benutzer den Standort manuell eingeben?

============

Zu deinem Kommentar auf meine ursprüngliche Antwort, bei der du gefragt hast, wie das bei Google Maps gemacht wird...

Naja. Kommt darauf an, auf was für einem Gerät du Google Maps nutzt.

Vielleicht ist da dieser Hilfe-Artikel für dich interessant:
https://support.google.com/websearch/answer/179386

  • Smartphones können beispielsweise oftmals ihre Standortinformation mittels GPS ermitteln und diese Informationen an Google Maps übermitteln (wenn du der App entsprechende Berechtigungen gegeben hast, dass sie diese Standortinformationen erhalten und nutzen darf), sodass Google Maps den Standort ziemlich genau darstellen kann.
  • An PCs ohne GPS wird oftmals die öffentliche IP-Adresse verwendet, über die der PC mit dem Internet verbunden ist. Da gibt es dann Datenbanken, in denen aufgelistet ist, wo das entsprechende Rechenzentrum des Internetanbieters ist, sodass man den Standort dadurch zumindest näherungsweise ermitteln kann.
  • Gegebenenfalls kann der Rechner auch feststellen, welche öffentlichen WLAN-Hotspots in der Nähe sind (und die Stärke deren Signale), wodurch man auch mit entsprechenden Datenbanken, in denen Informationen zu den öffentlichen WLAN-Hotspots enthalten sind, den Standort näherungsweise ermitteln kann.
  • Ansonsten können gespeicherte Adressen und bisherige Aktivitäten, die bei Google gespeichert sind, mit einbezogen werden.

mihisu  05.03.2023, 22:05

Wenn es um Windows 10 geht und in den Einstellungen die Nutzung der Standort-Informationen erlaubt ist, könnte dich evtl. auch die folgende Antwort auf stackoverflow.com interessieren: https://stackoverflow.com/a/61765710

Progr 
Beitragsersteller
 05.03.2023, 22:00

Also, ich kann eine HTML Datei schreiben in die ich einen JS Skript einfüge, der auf die Standort Funktion des Browsers zugreift. Damit kann ich den Standort bis auf wenige Meter genau bestimmen. Das geht über die IP Adresse schonmal nicht. Jetzt ist nur die frage, wie ich das in Python machen kann. Eine Idee von mir wäre, dass man diese HTML Datei irgendwie ausführt und dann den Rückgabe wert nutzt. Allerdings funktioniert das mit der normalen requests.get() Funktion nicht.

mihisu  05.03.2023, 22:08
@Progr

Hmm. Das kommt natürlich ein wenig darauf an, wie der Javascript-Code aufgebaut ist. Evtl. werden da noch weitere Daten von deinem Browser übermittelt, die bei deinem Request nicht mitübermittelt werden?

Progr 
Beitragsersteller
 05.03.2023, 22:10
@mihisu

Naja, beim Browser muss ich immernoch auf Zustimmen klicken, vielleicht geht es deswegen nicht.

mihisu  05.03.2023, 22:15
@Progr

Ja, ziemlich sicher. (Geht ja auch um Datenschutz, etc. Daher muss der Benutzer in der Regel nach seiner Zustimmung gefragt werden, wenn er diese nicht allgemein in irgendwelchen Einstellungen bereits erteilt hat.) Dann musst du diese Zustimmung evtl. von deinem Python-Skript geben lassen, wenn das geht.

Du kannst dir ja mal den von dir verwendeten JavaScript-Code ansehen, wie/woher das Skript die Standortdaten erhält. Evtl. kannst du das dann direkt in Python nachbauen. Oder du kannst evtl. schauen, wo/wie die Zustimmung übermittelt wird und die Zustimmung vielleicht von deinem Python-Skript erteilen lassen.

Ansonsten könnte es aber, je nachdem, was für ein Gerät du verwendet, und was dieses kann, vielleicht einfachere Wege geben. Für Windows habe ich dir beispielsweise in einem anderen Kommentar etwas verlinkt.

(Ich gehe mal aus, dass du das Skript nur für dich schreibst und nur auf bestimmten Geräten laufen soll?)