我正在努力使用我的GMAP-Application
使用GMAP.NET库,我试图绘制由3个坐标给出的填充弧形多边形:center_coordinate
,start_coordinate
和end_coordinate
(全部格式为{ {1}})。
知道我想在地图上以适当的分辨率绘制圆弧作为多边形,我另外定义了许多线段和顺时针/逆时针方向信息。
我通常知道如何使用GMAP.NET将多边形(由DD,MM.MMM
列表生成)绘制到地图上。这很好,所以我决定获得PointLatLng
的列表。
我的问题是我对如何计算理想弧上的每个点都没有具体的想法。
到目前为止我做了什么
PointLatLng
任何有助于推动我朝着正确方向前进的帮助都非常感谢。感谢。
答案 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}}