Javascript 使用距离查找纬度和经度

Javascript 使用距离查找纬度和经度,javascript,map,geolocation,geospatial,Javascript,Map,Geolocation,Geospatial,例如,我想找到纬度 Point A = (18.5204303,73.8567437) Point B = (x,73.8567437) Distance =20KM(Kilometers) 我需要找到B点的纬度(x),即距离A点20公里。经度应该相同。帮助我 提前谢谢我不确定这是回答还是评论。但是因为我还不会写评论,我会写一个答案 page是进行距离计算的重要来源。在这种情况下,您可能正在寻找代码,以计算从给定位置沿直角线移动时的新位置。引用链接页面: 要在真航向tc上找到点的纬度/经度,沿

例如,我想找到纬度

Point A = (18.5204303,73.8567437)
Point B = (x,73.8567437)
Distance =20KM(Kilometers)
我需要找到B点的纬度(x),即距离A点20公里。经度应该相同。帮助我
提前谢谢

我不确定这是回答还是评论。但是因为我还不会写评论,我会写一个答案

page是进行距离计算的重要来源。在这种情况下,您可能正在寻找代码,以计算从给定位置沿直角线移动时的新位置。引用链接页面:

要在真航向tc上找到点的纬度/经度,沿等角线(起点不能是极点!)距离d(纬度1,经度1):

lat=lat1+d*cos(tc)
如果(abs(lat)>pi/2)“d太大了。你不能沿着这条等角线走这么远!”
如果(abs(横向-横向1)

该链接仍然有用,但您必须使用一些代数来解决已知经度和未知路线的问题。因为你们离北方很远,所以大圆距离可能比等角线更有用。但我想这取决于问题。

我不是这方面的专家。但是我以前用公式计算两点之间的距离


请查看网站。它会给你一些提示。我认为这和公式与你的要求相似。看一看

我找到了我问题的答案

var lat1 = 18.5204303;
    var lon1 = 73.8567437;
    var d = 20;   //Distance travelled
    var R = 6371;
    var brng = 0;
    var LatMax;
    brng = toRad(brng); 
    var lat1 = toRad(lat1), lon1 = toRad(lon1);
    var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + 
                      Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );

    var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
                             Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
        lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI;  
    lat2= toDeg(lat2);
    lon2= toDeg(lon2);
    alert(lat2);
    alert(lon2);

function toRad(Value) {
    /** Converts numeric degrees to radians */
    return Value * Math.PI / 180;
}
 function toDeg(Value) {
   return Value * 180 / Math.PI;
}

谢谢大家

你们不也需要一个角度吗?否则,有无限多的
B=(x,y)
点符合你的标准-在一个半径为20公里的圆上,圆心位于
a
…是的,我需要角半径,但我不知道如何找到它。所以你有一个带有两个未知数的方程-数学对你不利;-)。你需要同时知道:半径和角度才能准确地找到一个
B
。我检查了这个链接(第3.1节)并用一些公式进行了排序,但它与20公里处绘制的圆不匹配。对不起,这里的经度将是固定的,即A点=(18.5204303,73.8567437)B点=(x,73.8567437)距离=20公里(公里)这些不是算法,只是公式。如果有帮助的话,你可以把它标记为答案。。所以有人会觉得有用谢谢你Ramesh,我通过你的链接找到了我问题的逻辑,并发布了我的答案。@Nishu,太好了。你不必接受我的回答。只需重新投票,并将您自己的答案标记为已接受答案。因为这是完整的一个。。。
var lat1 = 18.5204303;
    var lon1 = 73.8567437;
    var d = 20;   //Distance travelled
    var R = 6371;
    var brng = 0;
    var LatMax;
    brng = toRad(brng); 
    var lat1 = toRad(lat1), lon1 = toRad(lon1);
    var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + 
                      Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );

    var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
                             Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
        lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI;  
    lat2= toDeg(lat2);
    lon2= toDeg(lon2);
    alert(lat2);
    alert(lon2);

function toRad(Value) {
    /** Converts numeric degrees to radians */
    return Value * Math.PI / 180;
}
 function toDeg(Value) {
   return Value * 180 / Math.PI;
}