代码之家  ›  专栏  ›  技术社区  ›  PascalL

如何使用地图。用于Android的Delphi 10中的TMapCircle?

  •  0
  • PascalL  · 技术社区  · 9 年前

    我想加一些 TmapCircle 到我的 TMapView 用于Android应用程序。正在添加 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 给我一个错误:

    分段故障11

    在此行中:

    FCircles.Add(MapView1.AddCircle(MyCircle));
    

    我不明白为什么。

    我正在使用Rad Studio 10。

    1 回复  |  直到 9 年前
        1
  •  1
  •   René Hoffmann esd    9 年前

    您省略了源代码的相关部分。请张贴 实例

    然而,我认为您的初始化代码(您省略了)已损坏。很可能是您忘记创建 FCircles 因此,会发生访问冲突,错误消息“ 分段故障11 ".