gpt4 book ai didi

Javascript:返回嵌套函数(异步)

转载 作者:行者123 更新时间:2023-12-03 12:41:43 25 4
gpt4 key购买 nike

我想通过调用 get.Location 来访问(或打印)函数 getDistanceFromLatLonInKm 的返回。我想我可能会使用回调,但它不起作用(和/或我是 n00b)。是否可能在这种情况下要这样做吗?例如:document.write(getLocation(45.123,12.123))//会以某种方式打印 d 。

提前谢谢您。

getLocation(45.123,12.123);

function getLocation(a,b) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(p){ajmo(p,a,b);});
}
}

function ajmo(position,a,b) {
lat = position.coords.latitude;
lng = position.coords.longitude;
getDistanceFromLatLonInKm(a,b,lat, lng);
}


function getDistanceFromLatLonInKm(lat_origin, lon_origin, lat_pos, lon_pos) {
var R = 6371;
var dLat = deg2rad(lat_pos - lat_origin);
var dLon = deg2rad(lon_pos - lon_origin);
var a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat_origin)) * Math.cos(deg2rad(lat_pos)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d;
}

function deg2rad(deg) {
return deg * (Math.PI/180)
}

最佳答案

假设你有一个 id = "distance"的 HTML 元素,你可能需要这个:

function getLocation(a, b, element) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
lat = position.coords.latitude;
lng = position.coords.longitude;
var d = getDistanceFromLatLonInKm(a,b,lat, lng);
document.getElementById(element).innerHTML = d;
});
}
}


function getDistanceFromLatLonInKm(lat_origin, lon_origin, lat_pos, lon_pos) {
var R = 6371;
var dLat = deg2rad(lat_pos - lat_origin);
var dLon = deg2rad(lon_pos - lon_origin);
var a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat_origin)) * Math.cos(deg2rad(lat_pos)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d;
}

function deg2rad(deg) {
return deg * (Math.PI/180)
}


getLocation(45.123, 12.123, 'distance');

关于Javascript:返回嵌套函数(异步),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com