通过给定3个点(中心,开始,结束)获取虚拟弧上的PointLatLng列表

时间:2016-12-07 15:29:00

标签: vb.net latitude-longitude point gmap.net

我正在努力使用我的GMAP-Application

使用GMAP.NET库,我试图绘制由3个坐标给出的填充弧形多边形:center_coordinatestart_coordinateend_coordinate(全部格式为{ {1}})。

知道我想在地图上以适当的分辨率绘制圆弧作为多边形,我另外定义了许多线段和顺时针/逆时针方向信息。

我通常知道如何使用GMAP.NET将多边形(由DD,MM.MMM列表生成)绘制到地图上。这很好,所以我决定获得PointLatLng的列表。

我的问题是我对如何计算理想弧上的每个点都没有具体的想法。

到目前为止我做了什么

PointLatLng

任何有助于推动我朝着正确方向前进的帮助都非常感谢。感谢。

1 个答案:

答案 0 :(得分:0)

嗯,您可以将参数方程用于圆(https://en.wikipedia.org/wiki/Circle#Equations):

x = cx + r * cos(a)
y = cy + r * sin(a)

其中r是半径,cx,cy是原点,a是以弧度表示的角度。在您的情况下,您只需将总周长(2pi)除以a即可得到增量值,如:

double a_part = 2 * PI / elements;
for(i = 1; i <= elements; i++)
{
   x = cx + r * cos(i * a_part);
   y = cy + r * sin(i * a_part);
}

如果要在gmap中绘制很多圆圈,最好只通过继承GMapMarker并使用DrawEllipse函数绘制一个半径为圆的圆圈来制作新的标记类型,这将在下面讨论:{{ 3}}