如何使用 Maps.TMapCircle in Delphi 10 for Android?
How to use Maps.TMapCircle in Delphi 10 for Android?
我想为 Android 应用程序添加一些 TmapCircle
到我的 TMapView
。添加 Marker
效果很好。只有 Circles
不工作。
这是我的代码:
uses
system.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.TabControl, FMX.StdCtrls, FMX.Controls.Presentation,
FMX.Gestures, System.Actions, FMX.ActnList, FMX.Maps, System.Sensors,
System.Sensors.Components, IdBaseComponent, IdIntercept,System.IOUtils,
IdBlockCipherIntercept, Data.FMTBcd, Data.DB, Data.SqlExpr,
Data.DbxSqlite, System.Generics.Collections;
...
..
.
private
{ Private declarations }
FMarkers : TList<TMapMarker>;
FCircles : TList<TMapCircle>;
...
..
.
implementation
var
MyMarker : TMapMarkerDescriptor;
MyCircle : TMapCircleDescriptor;
...
..
.
procedure TTabbedwithNavigationForm.Button1Click(Sender: TObject);
var
Position: TMapCoordinate;
begin
position.Latitude := mapview1.Location.Latitude;
position.Longitude := mapview1.Location.Longitude;
MyMarker := TMapMarkerDescriptor.Create(Position, 'MyMarker');
MyMarker.Draggable := True;
MyMarker.Visible :=True;
Fmarkers.Add(MapView1.AddMarker(MyMarker));
MyCircle := TMapCircleDescriptor.Create(Position, 190);
Mycircle.StrokeWidth := 3;
FCircles.Add(MapView1.AddCircle(MyCircle));
end;
Fmarkers
工作正常。但是 Fcircles
给我一个错误:
Segmentation Fault 11
在这一行中:
FCircles.Add(MapView1.AddCircle(MyCircle));
我不明白为什么。
我正在使用 Rad Studio 10。
您省略了源代码的相关部分。请post一个完整例子。
但是,我认为您的初始化代码(您省略了)有问题。您很可能忘记创建 FCircles
。因此,发生访问冲突,由错误消息“Segmentation Fault 11”指示。
我想为 Android 应用程序添加一些 TmapCircle
到我的 TMapView
。添加 Marker
效果很好。只有 Circles
不工作。
这是我的代码:
uses
system.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.TabControl, FMX.StdCtrls, FMX.Controls.Presentation,
FMX.Gestures, System.Actions, FMX.ActnList, FMX.Maps, System.Sensors,
System.Sensors.Components, IdBaseComponent, IdIntercept,System.IOUtils,
IdBlockCipherIntercept, Data.FMTBcd, Data.DB, Data.SqlExpr,
Data.DbxSqlite, System.Generics.Collections;
...
..
.
private
{ Private declarations }
FMarkers : TList<TMapMarker>;
FCircles : TList<TMapCircle>;
...
..
.
implementation
var
MyMarker : TMapMarkerDescriptor;
MyCircle : TMapCircleDescriptor;
...
..
.
procedure TTabbedwithNavigationForm.Button1Click(Sender: TObject);
var
Position: TMapCoordinate;
begin
position.Latitude := mapview1.Location.Latitude;
position.Longitude := mapview1.Location.Longitude;
MyMarker := TMapMarkerDescriptor.Create(Position, 'MyMarker');
MyMarker.Draggable := True;
MyMarker.Visible :=True;
Fmarkers.Add(MapView1.AddMarker(MyMarker));
MyCircle := TMapCircleDescriptor.Create(Position, 190);
Mycircle.StrokeWidth := 3;
FCircles.Add(MapView1.AddCircle(MyCircle));
end;
Fmarkers
工作正常。但是 Fcircles
给我一个错误:
Segmentation Fault 11
在这一行中:
FCircles.Add(MapView1.AddCircle(MyCircle));
我不明白为什么。
我正在使用 Rad Studio 10。
您省略了源代码的相关部分。请post一个完整例子。
但是,我认为您的初始化代码(您省略了)有问题。您很可能忘记创建 FCircles
。因此,发生访问冲突,由错误消息“Segmentation Fault 11”指示。