我试图找到目的地点,给定起点纬度/长度,方位和距离.下面这个网站的计算器给了我想要的结果.
http://www.movable-type.co.uk/scripts/latlong.html
当我尝试通过代码实现相同的时候,我得不到正确的结果.
以下是我的代码 -
private GLatLng pointRadialDistance(double lat1, double lon1,
double radianBearing, double radialDistance)
{
double rEarth = 6371.01;
lat1 = DegreeToRadian(lat1);
lon1 = DegreeToRadian(lon1);
radianBearing = DegreeToRadian(radianBearing);
radialDistance = radialDistance / rEarth;
double lat = Math.Asin(Math.Sin(lat1) * Math.Cos(radialDistance) + Math.Cos(lat1)
* Math.Sin(radialDistance) * Math.Cos(radianBearing));
double lon;
if (Math.Cos(lat) == 0)
{ // Endpoint a pole
lon = lon1;
}
else
{
lon = ((lon1 - Math.Asin(Math.Sin(radianBearing) * Math.Sin(radialDistance) / Math.Cos(lat))
+ Math.PI) % (2 * Math.PI)) - Math.PI; …Run Code Online (Sandbox Code Playgroud) 我正在地图中绘制一个圆圈(在用户的当前位置),我希望屏幕可以缩放以使整个圆圈具有一定的余量.我现在在做什么:
drawCercleAroundPin(_googleMap, DataManager.RADIUS_SEARCH_CERCLE, _location);
moveCamera(_googleMap, (10 / ((DataManager.RADIUS_SEARCH_CERCLE / 900) + 1))+10, 2000, _location, null);
Run Code Online (Sandbox Code Playgroud)
好吧,我尝试了一些愚蠢的微积分,因为我无法找到合适的解决方案......
有没有人有想法?