我想从我的 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
对话。
您可以与
libgps
交谈:http://manpages.ubuntu.com/manpages/wily/en/man3/libgps.3.html您可以使用 DBUS 接口(interface)。
或者您可以使用 python 界面:how to use/install gps python library
关于javascript - 我想在命令行上获取我的 linux 设备的准确经纬度。就像 HTML5 中的地理定位。我无权访问浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34871102/