PingWins
@PingWins
Начинающий, а может и нет Python программист

Возможно лт узнать местоположение человека в PYTHON?

Стоит небольшая задачка: узнать координаты пользователя с помощью python3 (широту и долготу), перерыл интернет не смог найти (наверное плохо искал).
  • Вопрос задан
  • 9724 просмотра
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Раз нужна геолокация - значит носимое устройство, раз носимое устройство значит - андроид, раз андроид - значит QPython+SL4A:
# import needed modules
import android
import time
import sys, select, os #for loop exit

#Initiate android-module
droid = android.Android()

#notify me
droid.makeToast("fetching GPS data")

print("start gps-sensor...")
droid.startLocating()

while True:
    #exit loop hook
    if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
        line = input()
        print("exit endless loop...")
        break

    #wait for location-event
    event = droid.eventWaitFor('location',10000).result
    if event['name'] == "location":
        try:
            #try to get gps location data
            timestamp = repr(event['data']['gps']['time'])
            longitude = repr(event['data']['gps']['longitude'])
            latitude = repr(event['data']['gps']['latitude'])
            altitude = repr(event['data']['gps']['altitude'])
            speed = repr(event['data']['gps']['speed'])
            accuracy = repr(event['data']['gps']['accuracy'])
            loctype = "gps"
        except KeyError:
            #if no gps data, get the network location instead (inaccurate)
            timestamp = repr(event['data']['network']['time'])
            longitude = repr(event['data']['network']['longitude'])
            latitude = repr(event['data']['network']['latitude'])
            altitude = repr(event['data']['network']['altitude'])
            speed = repr(event['data']['network']['speed'])
            accuracy = repr(event['data']['network']['accuracy'])
            loctype = "net"

        data = loctype + ";" + timestamp + ";" + longitude + ";" + latitude + ";" + altitude + ";" + speed + ";" + accuracy

    print(data) #logging
    time.sleep(5) #wait for 5 seconds

print("stop gps-sensor...")
droid.stopLocating()
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Возможно.

1. Берете документацию по вашему устройству, в части обращения к GPS или где вы там данные местоположения читать собрались.
2. Читаете каким образом из него получить нужные данные.
3. Получаете.
Ответ написан
Комментировать
ScratchBoom
@ScratchBoom
Если нет GPS - можно определить примерное местополжение по IP

https://www.ip2location.com/developers/python

www.ip2geo.net/ip2location/lookup.php
Ответ написан
Комментировать
Если Вам по IP нужно определить как вариант можно использовать ipGeoBase blog.ivru.net/?id=82
Ответ написан
Комментировать
@Mrkliner
Токсичный програмист С и С++
используйте библиотеку geocoder (местоположение определяется там по айпи)
код своей проги снизу я оставил
import geocoder as g
import os as s
import time as t
while True:
	s.system ('color B')
	print ('Введите айпи или введите (Мой айпи) для просмотра вашей гео-локации')
	ipi = input ('>>')
	if ipi == 'Мой айпи':
		print (g.ip('me'))
		geo = g.ip('me')
	else:
		geo = g.ip(ipi)
		print ('Город, страна:')
		print (g.ip(ipi))
	print ('\nШирота и долгота:')
	print (geo.latlng)
	s.system('pause')
	s.system ('cls')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы