Javascript 在给定一个点和一个距离的情况下计算地图上的一个点

Javascript 在给定一个点和一个距离的情况下计算地图上的一个点,javascript,google-maps,math,Javascript,Google Maps,Math,我正在与谷歌地图合作一个角度项目。我有一个圆心和半径的长度,单位是米。我试图找到圆周上任意点的坐标,我只需要一个。考虑到我所拥有的,我该如何计算 示例数据: Center = { Latitude : 53.388922117675236 Longitude : -6.280994415283203 } Radius = 527 如果需要给定距离的任意点,最简单的方法是选择子午方向 NewLong = Long NewLat = Lat +- Radius / 111111.111

我正在与谷歌地图合作一个角度项目。我有一个圆心和半径的长度,单位是米。我试图找到圆周上任意点的坐标,我只需要一个。考虑到我所拥有的,我该如何计算

示例数据:

Center = {
   Latitude : 53.388922117675236
   Longitude : -6.280994415283203
}
Radius = 527

如果需要给定距离的任意点,最简单的方法是选择子午方向

NewLong = Long
NewLat = Lat +- Radius / 111111.111  (meters per degree)
或平行方向:

NewLat = Lat
NewLong = Long +- Radius / 111111.111 / Cos(Lat)  
对于随机方向,生成随机方向角并使用公式


如果需要给定距离的任意点,最简单的方法是选择子午方向

NewLong = Long
NewLat = Lat +- Radius / 111111.111  (meters per degree)
或平行方向:

NewLat = Lat
NewLong = Long +- Radius / 111111.111 / Cos(Lat)  
对于随机方向,生成随机方向角并使用公式

Maps API有一个可用于计算距离、航向等的API

因此,如果您需要在与另一个点的给定距离处找到一个点,无论方向如何,都可以使用
computeOffset
方法

以下代码所做的是,它在位置
0,0
var mylatng
)添加一个标记,然后在距离该点5000米的方向
0
(北)添加另一个标记。如果需要的话,你当然可以改变标题

函数初始化(){
var mylatng=new google.maps.LatLng(0,0);
变量映射选项={
缩放:10,
中心:myLatLng,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var point=google.maps.geometry.spheremic.computeOffset(myLatLng,5000,0);
var map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
新的google.maps.Marker({
职位:myLatLng,
地图:地图,
标题:“原始标记”
});
新的google.maps.Marker({
位置:点,,
地图:地图,
标题:“偏移标记”
});
}
初始化()
#地图画布{
高度:200px;
}

地图API有一个可用于计算距离、航向等的API

因此,如果您需要在与另一个点的给定距离处找到一个点,无论方向如何,都可以使用
computeOffset
方法

以下代码所做的是,它在位置
0,0
var mylatng
)添加一个标记,然后在距离该点5000米的方向
0
(北)添加另一个标记。如果需要的话,你当然可以改变标题

函数初始化(){
var mylatng=new google.maps.LatLng(0,0);
变量映射选项={
缩放:10,
中心:myLatLng,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var point=google.maps.geometry.spheremic.computeOffset(myLatLng,5000,0);
var map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
新的google.maps.Marker({
职位:myLatLng,
地图:地图,
标题:“原始标记”
});
新的google.maps.Marker({
位置:点,,
地图:地图,
标题:“偏移标记”
});
}
初始化()
#地图画布{
高度:200px;
}


@NickParsons对不起,我应该澄清一下,我只需要一个点好的,圆周上的一个点应该是
让x=中心。纬度+半径
让y=中心。经度
如果我正确理解你的问题:p这意味着x坐标是53.388+527=605.392。半径以米为单位,所以我不能将其添加到coordinate@abyrne85一个距离和一个点会给你一个圆的无穷多个点。如果你只想要一个点,你应该提供另一个约束。@NickParsons对不起,我应该澄清一下,我只需要一个点OK,圆周上的一点应该是
让x=中心。纬度+半径
让y=中心。经度
如果我正确理解你的问题:p这意味着x坐标是53.388+527=605.392。半径以米为单位,所以我不能将其添加到coordinate@abyrne85一个距离和一个点会给你一个圆的无穷多个点。如果你只想要一个点,你应该提供另一个约束。这当然是正确的数学。但是1)你没有提供Javascript版本,2)你不需要手动计算,因为API有一个方法(见我的答案)。@MrUpsidown我不相信JS的人不能用JS编写给定的公式;)容易;)但当问题提到JS时,我会尝试提供JS。显然没什么大不了的!谢谢更新!这当然是正确的数学。但是1)你没有提供Javascript版本,2)你不需要手动计算,因为API有一个方法(见我的答案)。@MrUpsidown我不相信JS的人不能用JS编写给定的公式;)容易;)但当问题提到JS时,我会尝试提供JS。显然没什么大不了的!谢谢更新!我已经在使用几何体库,所以这是完美的。谢谢,我已经在使用几何体库了,所以这是完美的。谢谢