我想找到Latitude,例如
Point A = (18.5204303,73.8567437)
Point B = (x,73.8567437)
Distance =20KM(Kilometers)
我需要找到B点的纬度(x),即距离A点20公里。长度应相同。帮我 提前致谢
答案 0 :(得分:3)
我找到了我的问题的答案
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;
}
谢谢大家
答案 1 :(得分:1)
我不确定这应该是答案还是评论。但既然我不能写评论,我会写一个答案。
This页面是进行距离计算的重要来源。在这种情况下,您可能正在寻找代码来计算从给定位置沿着垂直线行进时的新位置。从链接页面引用:
要在真实路线tc上找到一个点的纬度/经度,沿着斜线的距离d(lat1,lon1)(初始点不能是极点!):
lat= lat1+d*cos(tc)
IF (abs(lat) > pi/2) "d too large. You can't go this far along this rhumb line!"
IF (abs(lat-lat1) < sqrt(TOL))
{
q=cos(lat1)
}
ELSE
{
dphi=log(tan(lat/2+pi/4)/tan(lat1/2+pi/4))
q= (lat-lat1)/dphi
}
dlon=-d*sin(tc)/q
lon=mod(lon1+dlon+pi,2*pi)-pi
该链接仍然有用,但您必须使用一些代数来解决已知的经度和未知路线。因为你是相当远的北方大圆距离可能比直线更有用。但我想这取决于问题。
答案 2 :(得分:1)
我不是这方面的专家。但我曾经使用movable-type的公式来计算两点之间的距离。
请检查网站。它会给你一些提示。我认为这个destination和rhumblines公式与您的要求类似。看看