0

我正在我的安卓手机上使用 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 坐标?

4

2 回答 2

0

在玩了这个之后,事实证明,如果你打电话droid.getLastKnownLocation()并四处走动,你会得到更新的 GPS 坐标

于 2015-07-28T05:48:53.310 回答
0

我有一台较旧的 Nexus 7 平板电脑,其中大部分结果都是“网络”,但偶尔会出现“gps”。在一部较新的手机上,我得到了绝大多数“gps”结果,并且每隔几秒就会得到大约 1 次。下面的代码过滤掉了“网络”结果,也修复了系统不更新纬度/经度坐标的问题。

   #-*-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('\n', location)
           if 'gps' in location:
               print('\n' + location['gps']['provider'])
               print('Time:' + str(location['gps']['time']))
               print('Lat:' + str(location['gps']['latitude']))
               print('Lon:' + str(location['gps']['longitude']))    
       droid.stopLocating()
于 2017-12-16T19:57:52.397 回答