Geoclue 데모 에이전트가 좋은지 나쁜지를 판단하는 명령이나 방법이 있나요?

Geoclue 데모 에이전트가 좋은지 나쁜지를 판단하는 명령이나 방법이 있나요?

Debian의 시작 응용 프로그램(그리고 아마도 다른 Debian 및 우분투 기반 배포판)에는 Geoclue Demo 에이전트라는 라이브러리가 있으며 실제 라이브러리 경로는 다음과 같습니다.

/usr/libexec/geoclue-2.0/demos/agent

이것은 geoclue-2.0의 일부입니다. https://gitlab.freedesktop.org/geoclue/geoclue/wikis/home.

지금까지 내가 아는 유일한 문제는 앱/서비스를 삭제하는 것입니다. 이슈 보기~에서unix.stackexchange.com .

그것이 무엇을 보여주고 있는지, 어떻게 보여주고 있는지 이해할 수 있다면 더 흥미로울 것입니다. man geoclue의 매뉴얼 페이지는 일반 사용자를 위한 것이 아닙니다.

누구든지 나를 도와줄 수 있나요? 몇 가지 간단한 선을 보고 curl wttr.in/$location해당 위치의 날씨 출력을 얻을 수 있습니다. 어떤 것은 상호작용적이며 아마도 그렇게 될 것입니다. 단지 방법을 알아내면 됩니다.

답변1

Stackoverflow에서 질문을 찾았습니다.Python에서 Geoclue 위치 정보를 얻는 방법은 무엇입니까?

모듈을 설치한 후 사용할 수 있습니다.GeoGlue

apt install gir1.2-geoclue-2.0

스크립트를 만들었습니다.Geolocation.py존재하다python

#!/usr/bin/env python

import gi
gi.require_version('Geoclue', '2.0')
from gi.repository import Geoclue

clue = Geoclue.Simple.new_sync('something', Geoclue.AccuracyLevel.NEIGHBORHOOD, None)

location = clue.get_location()

latitude  = location.get_property('latitude')
longitude = location.get_property('longitude')

print('{},{}'.format(latitude, longitude))

이것은 latitude,longtiture포기한다bash

python getlocation.py

직접 사용할 수 있어요wttr.in

curl wttr.in/$(python getlocation.py)

속성을 설정하면executable

chmod u+x geolocation.py

음, 없이도 실행할 수 있습니다 . ( ) 의 값을 python사용합니다 .shebang#!/usr/bin/env python

확장명을 제거 .py하고 이름을 유지할 수도 있습니다 geolocation. 그러면 다음과 같이 보일 것입니다.

curl wttr.in/$(getlocation)

$( )( 별도의 프로세스로 실행 해야 함 )


python다음을 사용하여 서버에서 직접 값을 얻을 수도 있습니다.

#!/usr/bin/env python

import gi
gi.require_version('Geoclue', '2.0')

from gi.repository import Geoclue

clue = Geoclue.Simple.new_sync('something', Geoclue.AccuracyLevel.NEIGHBORHOOD, None)
location = clue.get_location()

latitude  = location.get_property('latitude')
longitude = location.get_property('longitude')

#print('latitude :', latitude)
#print('longitude:', longitude)

import requests

url = 'https://wttr.in/{},{}'.format(latitude, longitude)

# to get it as HTML instead of TEXT (see PLAIN_TEXT_AGENTS in https://github.com/chubin/wttr.in/blob/master/lib/globals.py#L75)
#response = requests.get(url, headers={'User-Agent': ''}) #{'User-Agent': 'Mozilla/5.0'}

response = requests.get(url)

print(response.text)

?format=j1URL 끝에 추가하면

https://wttr.in/{},{}?format=j1

그런 다음 다시 가져와 JSON변환하고 데이터 형식을 다르게 지정할 수 dictionary있습니다 python.


테스트 대상 Linix Mint 20: , Python 3.8,Python 2.7


덧붙여서:

wttr.in프로그램이 필요한 것 같습니다.갑시다터미널에서 실행됩니다.


위치를 식별하기 위해 다른 방법을 사용하는 것 같지만 내 경우에는 위치를 식별 geoclue하는 데 사용될 수 있습니다 . 하지만 24시간마다 변경할 수 있으며 이는 사용자가 다른 장소에서 사용할 수 있으므로 때로는 잘못된 위치를 제공합니다. 이 시점에서 집에서 거의 30km 떨어진 위치를 알려주었고 날씨도 달라졌습니다.IPInternet ProviderIPIPwttr.in


일부 웹 서버는 다음을 사용합니다.MaxMind의 GeoIP위치로 변환하지만 사용자가 몇 시간마다 위치를 변경 IP하면 동일한 문제가 발생합니다 . IPHTTP 요청을 통해 사용할 수 있거나 정보가 포함된 데이터베이스를 다운로드하여 로컬로 사용할 수 있다는 것을 기억합니다(그러나 때때로 데이터베이스를 업데이트해야 함).

관련 정보