javascript – 我希望在命令行上获得我的linux设备的准确纬度经度.就像HTML5中的Geolocation一样.我没有访问浏览器

我想从我的 Linux设备发送当前Lat Long的电子邮件.我在 HTML5浏览器中尝试过geo location,效果很好.但我希望它在命令行上.我通过IP尝试了很多选项,例如curl,geoip到某些网站,但它们都显示了我的ISP的位置,而不是我的位置.

我更喜欢在命令行或python等工具上使用它.

我可以成功编写一个python程序,打开一个HTML5地理定位代码的本地保存页面,并显示准确的纬度.然后自动python从浏览器中取出lat并在终端上显示.
文件:test.py

from splinter.browser import Browser
import os.path
import time

browser = Browser()
browser.visit('file://' + os.path.realpath('geo.html'))

time.sleep(5)

elements = browser.find_by_css("#demo")

div = elements[0]

print div.value

browser.quit()

文件:geo.html

   <html>
        <head>
            <title>Test</title>
        <p id="demo"></p>
            <script type="text/javascript">

    var x = document.getElementById("demo");

    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        } else { 
            x.innerHTML = "Geolocation is not supported by this browser.";
        }
    }

    function showPosition(position) {
        x.innerHTML = "Latitude: " + position.coords.latitude + 
        "<br>Longitude: " + position.coords.longitude;  
    }
            </script>
        </head>
        <body>
            <p>The element below will receive content</p>
            <div id="div" />
            <script type="text/javascript">getLocation()</script>
        </body>
    </html>

但是有一个错误,每次python打开浏览器时,我都必须在浏览器中单击“共享位置:是”.因为页面在本地服务器上运行,而不是在任何Web服务器上运行.所以这个解决方案不适用.
任何人都可以建议我可靠的解决方案,以获得我在Linux命令行中当前的lat?

最佳答案 在Linux上,你需要与gpsd交谈.

>您可以与libgps:http://manpages.ubuntu.com/manpages/wily/en/man3/libgps.3.html交谈
>您可以使用DBUS接口.
>或者你可以使用python接口:how to use/install gps python library

点赞