首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在哪儿呢?(地理定位,Emacs,Perl)

我在哪儿呢?(地理定位,Emacs,Perl)
EN

Stack Overflow用户
提问于 2014-01-04 21:24:23
回答 4查看 1.9K关注 0票数 19

这是一个“肯定有一些通用的实用程序,比我提出的快速和肮脏的东西更好”的问题。就像这样,我知道如何用几种特别的方式来做这件事,但是我很乐意使用标准。

简介:我正在寻找合理的标准和无处不在的工具来确定我目前的地理位置。可从Linux/UNIX命令行、Perl、Emacs等调用。

详情:

一个琐碎的情况激发了这个问题(但毫无疑问还有更重要的应用程序):我使用emacs模式,经常记录日志或日记。我实际上并不经常使用官方的组织模式日记,主要是把时间戳放在普通的组织模式日志中,隐藏在看起来像链接的元数据中。

代码语言:javascript
复制
[[metadata: timestamp="<2014-01-04 15:02:35 EST, Saturday, January 4, WW01>" <location location="??" timestamp="??"/>][03:02 PM]]

正如你所看到的,我很久以前就增加了记录我的位置的能力。但到目前为止,我不得不手动设置它。我很懒,经常忽略手动设置位置。(小提示:我上次手动设置位置时记录下来了,移动时很有帮助,而忽略了手动更改位置。)

我更希望有自动推断我的位置的代码。尤其是在上个月我已经旅行了很多次,但对于我每天往返的六处左右的地方可能更有用:家、工作、海边、我吃的标准餐厅、午餐或早餐。

我可以使用几种工具中的任何一种来确定我的位置,例如

  • 我在哪里-查看你目前在谷歌地图-ctrlq.org/map/ Where /
  • http://www.wolframalpha.com/input/?i=Where+am+I%3F
  • Perl包,如IP::Location --将IP地址映射到某个位置
代码语言:javascript
复制
- note: doesn't necessarily work for a private IP address, behind NAT
- but can combine with traceroute

和启发式方法,例如查看WiFi SSID等。

我已经编好了些东西。

但是..。这比我编码的深度更深。

上面没有一种技术是完美的--例如,我可能没有net.connectivity等等,有些是操作系统特有的。

如果已经有了一些开源工具,我应该使用它。

因此,我的问题是:是否有任何合理的无处不在的地理位置服务?

我的愿望清单

  • 跨操作系统工作
代码语言:javascript
复制
- Cygwin
- Linux
- Android? OS-X?  (just use OS standard)
- e.g. tries to exec a command like Windows netsh, and if that fails...

  • 命令行实用程序
代码语言:javascript
复制
- Perl, etc.
- callable in emacs
- because that is where I want to use it
- but I am sure that I would want to be able to use it in other places.

  • 可以连接到广泛可用的标准地理定位服务。
代码语言:javascript
复制
- e.g. Perl CPAN IP::Location, IP->country/city/...
- e.g. Google, etc., infer geographical location from browser

  • 即使无法连接到标准的地理定位服务或Internet,也可以工作
代码语言:javascript
复制
- e.g. cache last location
- e.g. ability to associate a name with a private network environment
- e.g. if in a lab that is isolated from network
- or at home, connected to WiFi, but broadband down
- e.g. look at wifi SSID

  • 可定制
代码语言:javascript
复制
- can use information that is _NOT_ part of any ubiquitous geolocation database
- e.g. I may recognize certain SSIDs as being my home or office.

  • 博学
代码语言:javascript
复制
- Knows (or can learn) that some SSIDs are mobile, not geographically fixed (e.g. the mobile hotspot on my phone)
- but some are (mainly) geographically fixed (e.g. WiFi at home connected to cable modem)

  • 学习
代码语言:javascript
复制
- can override incorrect inferences (geo databases sometimes wrong, esp. VPN)
- can extend or make precise
- I wouldn't mind being able to write rules
- but even better if some inference engine maintains the rules itself.
- e.g. if I correct the location, make inferences about SSID coordinates used for the faulty inference

  • 启发式法
代码语言:javascript
复制
- Windows 7 "netsh wlan show interfaces"
- Windows / Cygwin ipconfig
- \*IX ifconfig
- traceroute / tracert
- reverse IP lookup

  • 缓存
代码语言:javascript
复制
- to avoid expensive lookups
- but cache is NOT global - can be done per app
- some apps may want to bypass the cache
- others can use old data

EN

回答 4

Stack Overflow用户

发布于 2016-01-14 12:49:23

GeoClue似乎至少满足了您的一些需求。

要将坐标转换为人类可读的地址,可以使用OSM Nominatim API.

票数 1
EN

Stack Overflow用户

发布于 2014-01-05 15:58:24

你为什么不考虑使用GPS?您只需在元数据中添加坐标,并在读取时将它们绑定到一个地址(从简单数字到实际位置)。

这样,几乎任何东西都可以用坐标来标记。

在gnu/linux和其他联合声明中,gpds应该这样做。

在窗户里,我不知道。

在Android中,android的脚本层应该提供对gps设备的访问。

我不确定这是否符合你的要求,但我只是提议。

票数 0
EN

Stack Overflow用户

发布于 2015-10-20 18:10:16

您可以使用wget从您提到的其中一个站点中提取数据,比如wget http://www.wolframalpha.com/input/?i=Where+am+I%3F,然后从您刚刚下载的文件中查找数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20926936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档