【发布时间】:2012-11-14 05:09:26
【问题描述】:
所以首先我得到了这两个p标签
<p id="pos"></p>
<p id="dist"></p>
我的位置在“pos”中,我和纽约之间的距离在“dist”中。 我得到了这两个按钮来触发 JS 功能:
<button onclick="getLocation()">Get position</button>
<button onclick="calcDistance()">Calculate distance to NY</button>
这是所有的脚本:
var x=document.getElementById("pos");
var d=document.getElementById("dist");
var startPos;
function getLocation(){
navigator.geolocation.getCurrentPosition(function(position) {
startPos = position;
x.innerHTML= "<h3>Your position</h3>" +
"Latitude: " + startPos.coords.latitude +
"<br>Longitude: " + startPos.coords.longitude;
});
};
function calcDistance(){
var distt = calculateDistance(startPos.coords.latitude, startPos.coords.longitude, 40.28371627, -73.994901);
d.innerHTML = distt.toFixed(1);
};
function calculateDistance(lat1,lon1,lat2,lon2) {
var R = 6371;
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return R * c;
}
我的 calcDistance 按钮不起作用,我不知道问题出在哪里。 我试图只在 calculateDistance() 中输入数字,但它仍然不起作用。怎么会?
【问题讨论】:
-
因为
.toRad()不是数字的数函数? -
我们的老师让我们使用这个功能,所以我以为我们不会关心它。那么为什么 toRad 让它不起作用呢?
-
您正在调用一个不存在的函数。也许您的老师要求您使用定义了
toRad的库?或者您的老师可能希望您使用具有toRad功能的语言?或者你的老师只是希望你自己定义它。
标签: javascript html geolocation