Hi,
I am using execute javascript function on TMSFNCGoogleMaps to get ARC PATH (array of points) so i can draw Arc on the map.
i have implemented some code like:
unit uLts;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, dxSkinsCore, dxSkinTheBezier, dxLayoutContainer,
VCL.TMSFNCTypes, VCL.TMSFNCUtils, VCL.TMSFNCGraphics, VCL.TMSFNCGraphicsTypes,
VCL.TMSFNCCustomControl, VCL.TMSFNCWebBrowser, VCL.TMSFNCMaps,
VCL.TMSFNCGoogleMaps, cxClasses, dxLayoutControl, VCL.TMSFNCMapsCommonTypes, JSON;
type
TfrmLts = class(TForm)
lcLeftGroup_Root: TdxLayoutGroup;
lcLeft: TdxLayoutControl;
gmap: TTMSFNCGoogleMaps;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure drawArc(aCenter: TTMSFNCMapsCoordinateRec; aRad: integer;
aStartAngle: integer; aEndAngle: integer);
public
{ Public declarations }
end;
var
frmLts: TfrmLts;
implementation
var
gcenter: TTMSFNCMapsCoordinateRec;
{$R *.dfm}
procedure TfrmLts.FormShow(Sender: TObject);
begin
gcenter := CreateCoordinate(-6.175392, 106.827153);
gmap.BeginUpdate;
gmap.DeInitialize;
gmap.Parent := self;
gmap.Initialize;
gmap.AddMarker(gcenter);
gmap.EndUpdate;
drawArc(gcenter, 550, 30, 90);
end;
procedure TfrmLts.drawArc(aCenter: TTMSFNCMapsCoordinateRec; aRad: Integer;
aStartAngle: Integer; aEndAngle: Integer);
var
js: string;
begin
js :=
'function getArcPath(center, radiusMeters, startAngle, endAngle) {'+
'var point, prev, points = [], a = startAngle;'+
'while(true) {'+
'point = google.maps.geometry.spherical.computeOffset(center, radiusMeters, a);'+
'points.push(point);'+
'if(a == endAngle) break;'+
'a++;'+
'if(a >360) a = 1;'+
'}'+
'return points;'+
'}'+
'getArcPath('+ GETCENTERCOORDINATEFUNCTION +', '+ IntToStr(aRad) +', '+ IntToStr(aStartAngle) +', '+ IntToStr(aEndAngle) +');';
gmap.ExecuteJavascript(js,
procedure(const aVal: string)
begin
// if aVal = 'null' then
// exit;
ShowMessage(TJSONObject.ParseJSONValue(aVal).Value);
end
);
end;
end.
but for every run i always got null result. any idea why is this happening?
thank you