点击html5地理定位当前位置,然后减去两点
html5 geolocation current position on clicks then subtract two points
我想编写一个页面,在那里我可以点击一个按钮,它会给出当前位置,然后是另一个,并获得新的药剂,然后告诉我我走了多远。我不需要计算地球的曲线或任何我没有走那么远的东西。哈哈。我也不想让它不断地移动和更新地理位置。这就是我所拥有的,我哪里做错了?它一直在读NaN。。。我自学成才,所以我可能有一些知识空白。。LOL thx提前帮助
<html>
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">start</button>
<BR><br><br>
<button onclick="getLocation2()">stop</button>
<button onclick="tods()">total</button>
<BR><br><br>
<p id="demo">something1</p>
<BR>
<p id="demo2">something2</p>
<script>
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;
}
var y = document.getElementById("demo2");
function getLocation2() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition2);
} else {
y.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition2(position2) {
y.innerHTML = "Latitude: " + position2.coords.latitude +
"<br>Longitude: " + position2.coords.longitude;
}
</script>
<script>
function tods() {
var z = x.innerHTML - y.innerHTML;
document.getElementById("total").innerHTML = z;
}
</script>
<p id="total">something 3</p>
</body>
</html>
我相信这不起作用的原因是.innerHTML不返回数值。
我建议在尝试计算差异之前,将返回的值(我相信是一个字符串)解析为一个合适的数值。
此外,你计算两点之间的距离似乎不正确。。。
这个问题的性质似乎相似。你可以参考批准答案中的脚本来计算总数。
然后,您可以将数值传递给该函数或类似的函数。
如果你真的不想考虑地球半径等因素,你可能想查找图表上两点之间距离的计算公式,并以类似的方式实现距离计算。
我的一些项目一直在这样做,所以下面的代码示例可以工作。以下代码调用在更新时传递了带有地理位置信息的func参数:
var setLocationUpdates = function(func) {
var onUpdate = function(position)
{
if(!position)
func(null);
else
{
var lat = parseFloat((position.coords) ? new String(position.coords.latitude) : position.x);
var lng = parseFloat((position.coords) ? new String(position.coords.longitude) : position.y);
func({
loc: [lat, lng],
accuracy: position.coords.accuracy,
altitude: position.coords.altitude,
speed: position.coords.speed,
altitudeAccuracy: position.coords.altitudeAccuracy,
heading: position.coords.heading,
date: new Date()
});
}
};
if(navigator.geolocation)
navigator.geolocation.watchPosition(
onUpdate,
function(error) { },
{
maximumAge: 10000,
timeout: 5000,
enableHighAccuracy: true
});
};
要计算以公里为单位的距离,请使用以下内容:
var distance = function(point)
{
var toRad = function(value) { return value * Math.PI / 180; };
if(!(point instanceof mod.LatLng))
throw "GeospatialJS.LatLng object expected";
var R = 6371; // km
var dLat = toRad((point.lat()-this.lat()));
var dLon = toRad((point.lng()-this.lng()));
var lat1 = toRad(this.lat());
var lat2 = toRad(point.lat());
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
return d;
};
源代码
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- Javascript运行php文件,然后下载文件
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 弹出窗口出现,然后退出
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 将值输入到对象,然后该对象推送到数组
- 如何临时暂停浏览器渲染,然后恢复整个页面
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 滚动然后捕捉到顶部而不是取消捕捉
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 点击相同的按钮打开模型,然后提交表单
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 将display属性更改为visible flicks,然后再次消失
- 什么是“;选择“;然后触发事件
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 转到另一个页面,然后立即触发ScrollTo
- 点击html5地理定位当前位置,然后减去两点