Я борюсь с моей GMAP-приложенийПолучить список PointLatLng на виртуальной дуге заданных 3 точек (центр, начало, конец)
Использования библиотеки GMAP.NET, я пытаюсь нарисовать заполненный дуговых многоугольник, заданный тремя координатами: center_coordinate
, start_coordinate
и end_coordinate
(Все в формате DD,MM.MMM
).
Зная, что я хочу нарисовать дугу как многоугольник на карте с соответствующим разрешением, я дополнительно определяю несколько сегментов и информацию о направлении по часовой стрелке/против часовой стрелки.
Обычно я знаю, как нарисовать многоугольник (сгенерированный списком PointLatLng
) на карту с помощью GMAP.NET. Это работает отлично, поэтому я решил получить список PointLatLng
.
Моя проблема заключается в том, что у меня нет конкретной идеи о том, как рассчитать каждую точку идеальной дуги.
Что я сделал до сих пор
Public Function list_of_points_on_arc(point_center As PointLatLng, point_arc_start As PointLatLng, point_arc_end As PointLatLng, direction As String) As List(Of PointLatLng)
'direction: CW - clockwise/CC - Counter Clockwise
Const radiusEarthKilometres As Double = 6371.01
'sets the resolution of arc
Dim elements As Integer = 20
'unknown point on arc, each ...element
Dim point_on_arc As PointLatLng
'List collects all points aon arc
Dim gpollist As List(Of PointLatLng) = New List(Of PointLatLng)
For i As Integer = 0 To elements
' ?????????????????????????????????????????????????????????
'calculates new point_on_arc based on following information
' - elements, point_center, point_arc_start, point_arc_end
' ...
'
' ...
'
' point_on_arc = New PointLatLng(on_arc_lat, on_arc_lon)
' ?????????????????????????????????????????????????????????
'adds point_on_arc to list
gpollist.Add(point_on_arc)
Next
'returns list of pointsLatLon
Return gpollist
End Function
Любая помощь, чтобы подтолкнуть меня в правильном направлении, высоко ценится. Благодарю.