我想从我的Linux设备发送当前Lat Long的电子邮件.我在HTML5浏览器中尝试过geo location,效果很好.但我希望它在命令行上.我通过IP尝试了很多选项,例如curl,geoip到某些网站,但它们都显示了我的ISP的位置,而不是我的位...
我想从我的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
本文标题为:javascript – 我希望在命令行上获得我的linux设备的准确纬度经度.就像HTML5中的Geolocation一样.我没有访问浏览器
基础教程推荐
- ajax用json实现数据传输 2023-01-31
- 关于 sencha touch:ExtJS、SenchaTouch – FormPanel 无 2022-09-15
- vue项目打包部署跨域的实现步骤 2023-07-10
- vue-cli · Failed to download repo vuejs-templates/webpack: connect ECONNREF 2023-10-08
- JS的鼠标监听mouseup鼠标抬起失效原因及解决 2023-07-09
- vue表单验证--银行卡验证 2023-10-08
- vue-cli2 单个组件打包为js 2023-10-08
- Vue3 使用 element-plus 不生效的原因之一 2023-10-08
- gojs实现蚂蚁线动画效果 2023-08-12
- vue-Promise的链式调用 2023-10-08