我知道 Android 有一种获取位置的方法,W3C 有一个用于 Web 浏览器的位置 API,但是有没有办法在我自己的机器上以编程方式获取我的位置?
我正在运行 Ubuntu 14.10
编辑:删除了 ruby 标签。对任何语言开放。
我知道 Android 有一种获取位置的方法,W3C 有一个用于 Web 浏览器的位置 API,但是有没有办法在我自己的机器上以编程方式获取我的位置?
我正在运行 Ubuntu 14.10
编辑:删除了 ruby 标签。对任何语言开放。
location
您的问题的简短答案:仅使用 Ruby -在 localhost 上工作时您无法解码。
您可以尝试为此使用 gem trifle,但它所做的是GeoIP country lookup。因为您想尝试解码您的localhost
-它不能正常工作。
它的工作原理是 - 它有一个IP 和相关城市的数据库。这将在您部署应用程序时起作用,它会尝试解码访问者的位置。
他们 github 中的示例非常简单。一旦你的trifle
gem设置正确(它需要 redis 服务器,并使用预定义的 IP 和相关城市加载提供的文件):
trifle = Trifle.new(Redis.new)
trifle.find "223.255.128.0"
# => ["HK", "Hong Kong"]
# or you can try to play with it in controller
trifle.find request.remote_ip
您可以做什么,在工作时解码您的位置locahost
:
有一种方法可以使用浏览器的功能来获取访问您的应用程序的计算机的位置。tutsplus中有一篇很棒的文章- http://code.tutsplus.com/tutorials/an-introduction-to-the-geolocation-api--cms-20071。这将与localhost
给出的代码很长,这里就不复制了,但是解释得很好。您可以根据文章轻松实施您的解决方案,并且位置非常准确。这样做的限制是 - 浏览器询问它是否可以获取计算机的位置,并且用户可能不允许该操作。没有办法强迫它。
希望有帮助!
祝你好运!