我知道Android有办法获取位置,而W3C有一个适用于网络浏览器的位置API,但有没有办法在我自己的机器上以自己的方式获取我的位置?
我正在运行Ubuntu 14.10
编辑:删除了ruby标记。开放任何语言。
答案 0 :(得分:1)
您的问题的简短回答:只使用Ruby - 在使用localhost时,您无法对location
进行解码。
您可以尝试使用gem trifle,但它的作用是 GeoIP国家/地区查找。因为您想尝试解码localhost
- 它无法正常工作。
它的工作原理是 - 它有一个知识产权和相关城市的数据库。这将在您部署应用程序时起作用,它将尝试解码您访问者的位置。
他们的github中的示例非常简单。正确trifle
gem set up后(它需要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
有很长的代码,所以我不会在这里复制,但解释非常好。您可以根据文章轻松实施解决方案,并且位置非常准确。对此的限制是 - 浏览器询问是否可以获取计算机的位置,并且用户可能不允许该操作。 没有办法强迫它。
希望有所帮助!
祝你好运!