В этом посте наглядно показано, как провести линию между координатами:
procedure TForm2.WebFileUpload1GetFileAsText(Sender: TObject; AFileIndex: Integer; AText: string);
var
ja: TJSArray;
begin
ja := GPXToCoordinates(AText);
WebLeafletMaps1.AddPolyLine(ja, clBlue, 3);
end;
Итак, вы можете рисовать линии, используя функцию AddPolyLine
, но у меня возникли проблемы с тем, что передать в функцию AddPolyLine
. Они используют функцию GPXToCoordinates
для преобразования файла GPX в TJSArray
, но как должен выглядеть этот массив?
Как я могу использовать свои собственные координаты для функции AddPolyLine
? Я не хочу использовать файл GPX.
Вот как вы можете провести линию между двумя точками на карте без использования файла GPX:
procedure TForm1.WebFormShow(Sender: TObject);
var
MyCoordinates: TJSArray;
begin
MyCoordinates := TJSArray.New;
asm
MyCoordinates = [
[-27.1251322, 23.1663553],
[-28.1244564, 26.1643535]
];
end;
WebLeafletMaps1.AddPolyLine(MyCoordinates, clBlue, 3);
end;
@TomBrunberg Это географические координаты (широта и долгота).
Итак, согласно тому, что сказано здесь en.wikipedia.org/wiki/Geographic_coordinate_system ?
@TomBrunberg Похоже на то. Я нашел это: «Пакет Leaflet ожидает, что все данные о точках, линиях и формах будут указаны в широте и долготе с использованием WGS 84 (также известного как EPSG: 4326)». По сути, это та же система координат, которую использует Google Maps. Вы можете получить координаты мест прямо из Карт Google и использовать их в Leaflet с OpenStreetMap, и они работают с правильным местоположением.
Но вы упустили самую важную информацию. Вы не уточнили, что означают эти цифры. Это пиксели или географические координаты, и если да, то по какому определению?