javascript - 我想在命令行上获取我的 linux 设备的准确经纬度。就像 HTML5 中的地理定位。我无权访问浏览器

标签 javascript python linux html geolocation

我想从我的 Linux 设备发送当前 Lat Long 的电子邮件。我在 HTML5 浏览器中尝试了地理位置,效果很好。但我想在命令行上使用它。我尝试了很多选项,例如通过 IP 到某些网站的 curl、geoip,但它们都显示我的 ISP 的位置,而不是我的。 我更喜欢在命令行或 python 等工具上使用它。

我可以成功编写一个 python 程序,它可以打开本地保存的 HTML5 地理定位代码页面,并显示准确的经纬度。然后 python 自动从浏览器中获取 lat long 并显示在终端上。 文件: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 打开浏览器时,我都必须在浏览器中单击“共享位置:是”。因为该页面在本地服务器上运行,而不是在任何网络服务器上运行。所以这个解决方案不适用。 任何人都可以建议我在命令行中获取我当前在 linux 中的 lat long 的可靠解决方案吗?

最佳答案

在 Linux 上,您需要与 gpsd 对话。

关于javascript - 我想在命令行上获取我的 linux 设备的准确经纬度。就像 HTML5 中的地理定位。我无权访问浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34871102/

相关文章:

javascript - svg-insertAdjacentHTML 不适用于 firefox 35 及以下版本?

javascript - Webpack 中的第 3 方 Javascript 和 CSS 文件。奇怪的行为

javascript - 高级排序算法

python - 计算元组列表中的元素,并增加每个项目的权重

linux - 你如何从图像文件中提取日期并将其打印到 linux 中的图像上

javascript - mongodb 服务器端 javascript 实际上是客户端?

python - 值错误: time data '10/11/2006 24:00' does not match format '%d/%m/%Y %H:%M'

jquery - Django 表单未使用 Javascript 提交

python - 创建 Python RPM

php - 如何创建 `phpmyadmin`数据库