检测当前位置。
doko的Python项目详细描述
一个简单的命令行实用程序(和python模块)来确定当前位置。
Doko是Victor Jalencas的whereami实用程序的克隆,但与Whereami不同,它支持多种策略来查找您的位置。
感谢Richo Healey的创意和补丁。
安装
geoip
默认情况下使用geoip。要仅安装geoip支持,请运行:
$ pip install doko
然后,您需要下载一个maxmindfree GeoIP2 database,解压缩它并将GEOIP2_FILE环境变量设置为指向它。
核心位置
但是,在OSX10.6(雪豹)或更高版本上,您还可以使用更精确的核心位置框架:
$ pip install doko[corelocation]
核心位置依赖项的安装时间要长得多,所以去喝杯咖啡吧。事实上,做几杯咖啡。
一旦安装了启用core location的doko包,就需要在系统首选项的“安全”或“安全和隐私”部分中启用corelocation。此外,您必须使用wifi才能工作。
黑客攻击
对于OSX上的黑客攻击,您可能需要安装requires-corelocation.txt和requires.txt。
使用make test运行测试。
在命令行上使用
只需运行doko命令:
$ doko 35.674,139.701
根据可用的策略,这将给出关于您所在位置的最佳猜测。使用--show选项在谷歌地图中打开该位置。
对使用的策略和返回的精度进行更细粒度的控制。见doko --help。
用作模块
> import doko > doko.location('geoip') # on any platform Location(latitude=35.674, longitude=139.701, source='geoip') > doko.location('corelocation') # on OS X, using Core Location Location(latitude=35.674851, longitude=139.701419, source='corelocation') > doko.Location.set_precision(2) > doko.location() Location(latitude=35.67, longitude=139.70, source='corelocation')
地标
可以使用doko-landmark命令存储已知的地标,然后可以使用DOKO_LANDMARK环境变量将其指定给doko。如果您经常去某个没有GPS的地方,这很有用:
$ doko-landmark --add ueno-park 35.713965 139.77411 $ doko-landmark --list ueno-park [35.713965, 139.77411] $ doko # will give its best guess 35.674851,139.70141 $ DOKO_LANDMARK=ueno-park doko # will use the landmark 35.713965,139.77411
更改日志
0.4.0
- 迁移到geoip2数据库而不是web服务
- 提供有关将数据库下载和安装到GEOIP2_FILE 的说明
- 使用make 运行测试和lint
0.3.1
- < >使更灵活的依赖项。
0.3.0
- 添加存储和使用已知地标的方法
- 添加由--cache选项启用的缓存策略
- 在位置元组中包含位置源
- 在命令行上添加--show-strategy选项
0.2.0
- 通过使核心位置可选,使Doko多平台
- Geoip查找的荣誉超时
- 提供对精度的控制以支持隐私