我正在建造一个住宿网站,要求我计算两点之间的距离:
LS18 4AA
。我想要实现的目标:
我想要做的是,当用户查看属性时,它将获取它所在建筑物的邮政编码(住宿建筑位置存储为db中的邮政编码),然后计算其距离大学位置的距离(它有一个固定的纬度/长值)。
唯一更改的值是基于用户正在查看的属性的后置代码值。
我正在努力解决:
我根本无法了解如何根据用户正在查看的属性获取邮政编码,然后计算其到大学的距离。即位置A距离位置B 7英里。
目前,我已经想出如何计算两个lat long值之间的距离,但由于位置A是一个后置代码,我不确定如何转换这些值。
这是我的代码:
<script>
var x = getDistanceFromLatLonInKm(52.482799000000000, -2.000643000000000, 52.48463500000000, -1.980759000000000);
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2){
// console.log(lat1, lon1, lat2, lon2);
// uni's location:
// var distanceFromSpecificPoint = getDistanceFromLatLonInKm.bind(null, 52.486637, -1.890952);
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2 - lat1); // deg2rad below
var dLon = deg2rad(lon2 - lon1);
var a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c; // Distance in km
return d;
}
function deg2rad(deg) {
return deg * (Math.PI / 180)
}
document.getElementById('result').textContent = x;
//console.log(x)
</script>
这一行:
var x = getDistanceFromLatLonInKm(52.482799000000000, -2.000643000000000, 52.48463500000000, -1.980759000000000);
最后两个值是大学位置的纬度和长度。前两个值只是为测试输入的值,并且它可以工作,代码计算这两组数据之间的距离。但理想情况下,我希望前两个值可以替换为基于用户正在查看的属性的长拉取值,以及对属性进行邮政编码的建筑物。
答案 0 :(得分:0)
所需电话的示例如下所示:
mapply(function(L,N){write.csv(L, paste0(N,".csv"));}, L=LoDFs,N=names(LoDFs))
这将返回一个json响应,但是你可以根据需要解析它