Android中QPython的位置不返回GPS坐标 - 仅“网络”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中QPython的位置不返回GPS坐标 - 仅“网络”相关的知识,希望对你有一定的参考价值。
我在Android手机上使用QPython编写了一个非常简单的脚本。我想提取当前位置的GPS坐标。但是,脚本只输出“网络”坐标,而不是GPS。这是代码片段:
#qpy:2
#qpy:console
import androidhelper as android
import time, urllib2
while 1:
time.sleep(5)
droid=android.Android()
droid.startLocating()
event=droid.eventWaitFor('location', 10000).result
try:
lng=event['data']['gps']['longitude']
lat = event['data']['gps']['latitude']
print "Longitude: %s ||| Latitude: %s" %(lng,lat)
except:
print "Network Coordinates"
我尝试了最短的更新时间,例如:droid.startLocating(10000, 0)
增加了eventWaitFor()
的等待时间,移动了但我唯一得到的坐标是“网络”。有没有办法“强制”返回GPS坐标?
答案
在玩这个之后,事实证明,如果你打电话给droid.getLastKnownLocation()
并且你移动了一下你会得到更新的GPS坐标
另一答案
我有一个较旧的Nexus 7平板电脑,其中大部分结果都是“网络”,但偶尔会出现“gps”。在较新的手机上,我获得了绝大多数“gps”结果,并且每隔几秒就会以大约1的速度运行。以下代码过滤掉“网络”结果,并修复了系统未更新lat / lon坐标的问题。
#-*-coding:utf8;-*-
#qpy:3
#qpy:console
import android
droid = android.Android()
while True:
droid.startLocating()
droid.eventWaitFor('location', int(9000))
location = droid.readLocation().result
if len(location) > 0:
# print('
', location)
if 'gps' in location:
print('
' + location['gps']['provider'])
print('Time:' + str(location['gps']['time']))
print('Lat:' + str(location['gps']['latitude']))
print('Lon:' + str(location['gps']['longitude']))
droid.stopLocating()
以上是关于Android中QPython的位置不返回GPS坐标 - 仅“网络”的主要内容,如果未能解决你的问题,请参考以下文章