爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • PinToo帮助主页
  • 学习手册

    • 基本入门

    • 功能介绍

    • 控件说明

      • 公共属性
      • 标准控件
      • 系统控件
      • 附加控件
      • 布局控件
      • 形状控件
      • 数据控制控件
      • 手势控件
      • 仪表盘控件
      • 快速设计控件
      • 多媒体控件
      • 物联网控件
      • 地图控件
        • 1. TfxAMap
        • 2. TfxAMapView
          • 2.1. 属性(Properties)
          • 2.1.1. Align属性
          • 2.1.2. Anchors属性
          • 2.1.3. Enabled属性
          • 2.1.4. Height属性
          • 2.1.5. Hint属性
          • 2.1.6. HitTest属性
          • 2.1.7. Locked属性
          • 2.1.8. Margins属性
          • 2.1.9. MarginsWrapMode属性
          • 2.1.10. Name属性
          • 2.1.11. Opacity属性
          • 2.1.12. Padding属性
          • 2.1.13. PopupMenu属性
          • 2.1.14. Position属性
          • 2.1.15. RotationAngle属性
          • 2.1.16. RotationCenter属性
          • 2.1.17. Scale属性
          • 2.1.18. Size属性
          • 2.1.19. Touch属性
          • 2.1.20. Visible属性
          • 2.2. 事件(Events)
          • 2.2.1. OnLocationChangedCallbackEvent事件
          • 2.2.2. OnMapClickCallbackEvent事件
          • 2.2.3. OnMapScreenShotCallbackEvent事件
          • 2.2.4. OnMarkerClickCallbackEvent事件
          • 2.3. 方法(Methods)
          • 2.3.1. SetMapLanguage方法
          • 2.3.2. SetMapType方法
          • 2.3.3. MoveCamera方法
          • 2.3.4. AddMarker1方法
          • 2.3.5. AddMarker2方法
          • 2.3.6. AddMarker3方法
          • 2.3.7. AddMarker4方法
          • 2.3.8. addOverlayToMap方法
          • 2.3.9. Clear方法
          • 2.3.10. getMapScreenShot方法
          • 2.3.11. SetMyLocationEnabled方法
          • 2.3.12. ShowMyLocationSingle方法
          • 2.3.13. ShowMyLocationBitmap方法
          • 2.3.14. HideMyLocation方法
          • 2.3.15. SetMyLocationType方法
          • 2.3.16. SetMyLocationButtonEnabled方法
          • 2.3.17. setCompassEnabled方法
          • 2.3.18. setScaleControlsEnabled方法
          • 2.3.19. Zoom方法
          • 2.3.20. addPolylineFromLatLng方法
          • 2.3.21. addPolylineFromLatLngList方法
          • 2.3.22. addPolylineInPlayGround方法
          • 2.3.23. startMove方法
          • 2.3.24. stopLocation方法
        • 3. TfxFNCMaps
          • 3.1. 属性
          • 3.1.1. APIKey
          • 3.1.2. Circles
          • 3.1.3. ElementContainer
          • 3.1.4. Markers
          • 3.1.5. Polygons
          • 3.1.6. Polylines
          • 3.1.7. Rectangles
          • 3.1.8. Service
          • 3.2. 方法
          • 3.2.1. BeginUpdate
          • 3.2.2. EndUpdate
          • 3.2.3. AddMarkerRec
          • 3.2.4. AddMarkerCoordinate
          • 3.2.5. ClearMarkers
          • 3.2.6. ClearPolyLines
          • 3.2.7. ClearPolygons
          • 3.2.8. ClearRectangles
          • 3.2.9. ShowPopup
          • 3.2.10. SetZoomLevel
        • 4. TfxFNCOpenLayers
          • 4.1. TileServer
          • 4.1.1. TileLayers
          • 4.1.2. 折线与多边形标签
        • 5. TfxFNCGeocoding
          • 5.1. 属性
          • 5.1.1. APIKey
          • 5.1.2. GeocodingRequests
          • 5.1.3. Service
          • 5.2. 事件
          • 5.3. 方法
          • 5.3.1. GetGeocodingAddress
      • 数据表格控件
      • 特效控件
      • 动画控件
      • SVG控件
      • IsoBean控件
    • 功能用法

    • 专用模板

    • 开发流程

    • 函数程序

  • 开发手册

目录

地图控件

# PinToo 控件使用(地图控件)

# 1. TfxAMap

  • 引用单元 CCAMap

  TfxAMap组件是一个基于高德地图的定位组件。

  TfxAMap通过StartLocation来开启动定位,通过StopLocation方法结束定位。

  开启定位时,触发OnLocationChangedCallbackEvent事件,返回定位信息。

示例

//设置TfxListView
procedure SetViewItem(AText: String; ADetail: String);
begin
  with lvLocation.Items.Add do
  begin
    Text := AText;
    Detail := ADetail;
  end;
end;

//显示定位信息
Procedure fxAMap1OnLocationChangedCallbackEvent(Sender: TObject; ErrorCode: Integer; ErrorInfo: string; 
LocationDetail: string; LocationType: Integer; Longitude: Double; Latitude: Double; Altitude: Double; 
Accuracy: Single; Provider: string; Speed: Single; Bearing: Single; Satellites: Integer; Country: string; 
Province: string; City: string; CityCode: string; District: string; AdCode: string; Address: string; 
PoiName: string; LocationTime: string; isWifiAble: Boolean; isWifiAbleString: string; GPSStatus: Integer; 
GPSStatusString: string);
Begin
    lvLocation.BeginUpdate;
  try
    lvLocation.Items.Clear;
    SetViewItem('提供者:'+ Provider,'');
    SetViewItem('经度:'+ FloatToStr(Longitude),'');
    SetViewItem('纬度:'+ FloatToStr(Latitude),'');
    SetViewItem('海拔:'+ FloatToStr(Altitude) + '米','');
   SetViewItem('精度:'+ FloatToStr(Accuracy) + '米','');
    SetViewItem('角度:'+FloatToStr(Bearing),'');
    SetViewItem('速度:'+ FloatToStr(Speed) + '米 / 秒','');
    SetViewItem('国家:'+  Country,'');
    SetViewItem('省:'+  Province,'');
    SetViewItem('市:'+ City,'');
    SetViewItem('城市编码:'+  CityCode,'');
    SetViewItem('区:'+  District,'');
    SetViewItem('区域码:'+  AdCode,'');
    SetViewItem('地址:'+  Address,'');
    SetViewItem('兴趣点:'+  PoiName,'');
    SetViewItem('定位时间:'+  LocationTime,'');
    SetViewItem('WIFI开关:', isWifiAbleString);
    SetViewItem('GPS状态:', GPSStatusString);
  finally
    lvLocation.EndUpdate();
  end; 
End;

//初始化
Begin
  lvLocation.ItemAppearanceObjects.ItemEditObjects.Detail.Height := 24;
  fxAMap1.StartLocation;
  fxAMap1.StopLocation;
End.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
运行结果

# 2. TfxAMapView

  • 引用单元 CCAMapView

  TfxAMapView组件是一个基于高德地图的地图浏览组件。

# 2.1. 属性(Properties)

  • TfxAMapView组件主要属性
属性 功能说明
Align 指定此控件的对齐选项(顶部、左侧、客户端等)。
Anchors 指定如何将控件锚定到其父控件。
Enabled 指定控件是否响应鼠标、键盘和计时器事件。
Height 指定控件的垂直大小(以像素为单位)。
Hint 指定当用户将鼠标移到控件上时出现的文本字符串。
HitTest 使控件能够捕获鼠标事件。
Locked 指定控件在设计时是否锁定。
Margins 指定控件的页边距。
Name 指定代码中引用的组件的名称。
Opacity 指定控件不透明度。
Padding 指定控件的填充。
PopupMenu 指定上下文(弹出式)菜单对象
Position 指定当前控件的相对于其父控件的左上角。
RotationAngle 指定控件从x轴旋转的数量(以度为单位)。
RotationCenter 指定控件的轴心点的位置。
Scale 指定控件的规模。
Size 指定垂直和水平大小(大小。控件的高度和大小(以像素为单位)。
Touch 指定与控件关联的触摸管理器组件。
Visible 指定组件是否显示在屏幕上。
Width 指定控件的水平大小(以像素为单位)。
WrapMode 指定是否以及如何调整位图图像的大小、复制和位置以呈现TfxImage表面。

# 2.1.1. Align属性

  指定此控件的对齐选项(顶部,左侧,客户端等)。

  使用“ 对齐”自动设置当前控件的对齐方式。将“ 对齐”设置为与None可能影响控件的 位置,大小(高度和宽度)以及锚点不同的值。默认情况下,“ 对齐”设置为None。

  设置了Align或Anchors属性的控件可以使用与默认值(1,1)不同的Scale,这样即使控件具有自定义比例,它们也可以对齐。

# 2.1.2. Anchors属性

  指定控件如何锚定到其父级。

  使用锚点可确保控件相对于父控件的边缘保持当前位置,即使父控件已调整大小。当它的父的大小时,控制保持相对于其所被固定的边缘的位置。仅在调整父控件的大小时才强制执行锚定。

  如果控件同时锚固到相对的边缘,则控件将水平或垂直拉伸以保持控件边缘和父边缘之间的距离恒定。如果控件锚定到其父级的所有四个边缘,则控件将在所有方向上拉伸。默认情况下,控件固定在其容器的顶部和左侧边缘(Anchors = [akTop,akLeft])。

  自动对齐可能会影响控件的锚点。当对齐设置为None所有的主播都可用。如果Align不是None,则排除受自动对齐影响的锚点。更改受自动对齐影响的锚的状态对控件没有影响。

  设置了Align或Anchors属性的控件可以使用与默认值(1,1)不同的Scale,这样即使控件具有自定义比例,它们也可以对齐。

# 2.1.3. Enabled属性

  指定控件是否响应鼠标,键盘和计时器事件。

  使用Enabled可以更改控件对用户的可用性。要禁用控件,请将Enabled设置为False。一些禁用的控件显示为灰色(例如:按钮,复选框,标签),而其他一些(容器控件)仅失去其功能而不更改其外观。

  如果Enabled设置为False,则控件将忽略鼠标,键盘和计时器事件。

  要重新启用控件,请将Enabled设置为True。

# 2.1.4. Height属性

  指定控件的垂直大小(以像素为单位)。

  使用Height属性读取或更改控件的高度。

# 2.1.5. Hint属性

  指定当用户将鼠标移到控件上时出现的文本字符串。

# 2.1.6. HitTest属性

  使控件能够捕获鼠标事件。

# 2.1.7. Locked属性

  指定控件在设计时是否锁定。

# 2.1.8. Margins属性

  指定控件的页边距。

Margins(页边距)的控制的从每个边缘的距离(以像素为单位)(top(顶部), left(左边), bottom(底部), right(右侧)),以相同的内另一父控制或其父边缘。 边距为控件的外侧增加了空间。

  如果边距不为0,则没有其他控件比指定距离更接近该控件。如果从父级边到相应控制边的距离小于该边的指定边距,则在必要时重新调整控件的位置和大小,以保持指定的距离。

  下图显示了 Padding(填充)和 Margins(边距)属性如何影响控件的对齐方式,位置和大小。

# 2.1.9. MarginsWrapMode属性

  指定如何调整位图的边距大小,复制和定位。

  使用MarginWrapMode属性设置并获取如何在TImage中显示位图的边距。默认情况下,页边距被拉伸以填充整个TImage。要查看MarginWrapMode的可能值,请转到TImageWrapMode。

  如果未设置BitmapMargins属性,则MarginWrapMode对图像无效。

# 2.1.10. Name属性

  指定代码中引用的组件的名称。

  使用名称更改组件的名称以反映其在当前应用程序中的用途。默认情况下,IDE根据组件的类型分配顺序名称,如‘fxButton1’、‘fxButton2’等。

警告:在运行时更改名称将导致对旧名称的任何引用变得未定义。任何使用旧名称的后续代码都将导致异常。

# 2.1.11. Opacity属性

  指定控件不透明度。

  设置不透明度属性值可自定义当前控件的透明度。

  不透明度属性的取值范围为0到1。如果不透明度为1,则控件完全不透明;否则,控件完全不透明。如果为0,则控件是完全透明的。大于1的值视为1,小于0的值视为0。

  不透明度适用于控件的子控件。

# 2.1.12. Padding属性

  指定控件的填充。

  控件的填充指定控件的子级可以接近其每个边缘(上,左,下,右)的程度(以像素为单位)。填充为控件的内侧增加了空间。

  如有必要,请调整控件的子级的位置和大小,以保持Padding。

  下图显示了 Padding(填充)和 Margins(边距)属性如何影响控件的对齐方式,位置和大小。

# 2.1.13. PopupMenu属性

  指定上下文(弹出式)菜单对象。

# 2.1.14. Position属性

  指定当前控件的相对于其父控件的左上角。

  Position(位置)可以受到其父控件的填充和控件的空白的影响。

# 2.1.15. RotationAngle属性

  指定控件从x轴旋转的量(以度为单位)。

  正角对应于顺时针旋转。对于逆时针旋转,请使用负值。

  要设置旋转中心,请使用RotationCenter属性。

# 2.1.16. RotationCenter属性

  指定控件的轴心点的位置。

  旋转中心的坐标取值范围为0到1。坐标为(0,0)的点对应于控件的左上角,坐标为(1,1)的点对应于控件的左上角。控件的右下角,默认旋转中心为(0.5,0.5),[0,0]和[1,1]之外的值可以在某些后代类中裁剪。

  要设置旋转角度,请使用 RotationAngle属性。

# 2.1.17. Scale属性

  指定控件的比例。

  设置比例坐标以指定每个轴上的比例。

  每个轴的初始缩放比例为1。

注意:设置 了'对齐'或'锚点'属性的控件可以使用与默认值(1,1)不同的比例,这样,即使控件具有自定义比例,它们也可以对齐。

# 2.1.18. Size属性

  指定垂直和水平大小(大小。控件的高度和大小(以像素为单位)。

  使用Size属性读取或更改控件的大小。

# 2.1.19. Touch属性

  指定与控件关联的触摸管理器组件。

  使用“ 触摸”属性可以访问与控件关联的手势选项。Touch指定类型为TTouchManager的类。

触摸用于:

  • 关联TfxGestureManager。

    (TfxGestureManager管理控件可以使用的所有标准手势。)

  • 选择标准,交互式或自定义手势以与控件关联。

    (您还可以将每个手势连接到一个动作;请参阅将动作分配给手势。)

# 2.1.20. Visible属性

  指定组件是否显示在屏幕上。

  在运行时使用可视属性来控制控件的可见性。如果Visible为真,则出现控件。如果可见为假,则控件不可见。

# 2.2. 事件(Events)

  • TfxAMapView组件主要事件
事件 何时触发
OnLocationChangedCallbackEvent 当位置发生改变时触发
OnMapClickCallbackEvent 当单击地图时触发
OnMapScreenShotCallbackEvent 获取地图截图时触发
OnMarkerClickCallbackEvent 当单价地图上标记时触发

# 2.2.1. OnLocationChangedCallbackEvent事件

{   参数:
    ErrorCode: Integer; // 错误代码
    ErrorInfo: string; // 错误信息
    LocationDetail: string; // 描述
    LocationType: Integer; // 定位类型
    Longitude: Double; // 经    度
    Latitude: Double; // 纬    度
    Altitude: Double; // 海拔
    Accuracy: Single; // 精度 米
    Provider: string; // 提供者
    Speed: Single; // 速度 米/秒
    Bearing: Single; // 角    度
    Satellites: Integer; // 定位服务的卫星个数
    Country: string; // 国    家
    Province: string; // 省
    City: string; // 市
    CityCode: string; // 城市编码
    District: string; // 区
    AdCode: string; // 区域 码
    Address: string; // 地    址
    PoiName: string; // 兴趣点
    LocationTime: string; // 定位时间
    isWifiAble: Boolean; // WIFI开关
    isWifiAbleString: string; // WIFI开关
    GPSStatus: Integer; // GPS状态
    GPSStatusString: string // GPS状态
}
Procedure OnLocationChangedCallbackEvent(Sender: TObject; ErrorCode: Integer; ErrorInfo: string; LocationDetail: string; LocationType: Integer; Longitude: Double; Latitude: Double; Altitude: Double; Accuracy: Single; Provider: string; Speed: Single; Bearing: Single; Satellites: Integer; Country: string; Province: string; City: string; CityCode: string; District: string; AdCode: string; Address: string; PoiName: string; LocationTime: string; isWifiAble: Boolean; isWifiAbleString: string; GPSStatus: Integer; GPSStatusString: string);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

  当位置发生改变时,触发该事件,并返回位置信息。

示例

  //在地图上显示我的位置标记
  if ErrorCode = 0 then
  begin
      fxLabel1.Text := Address;
      fxAMapView1.Zoom(18);
      fxAMapView1.AddMarker3(Longitude + 0.00026, Latitude + 0.00016,'我是您的邻居', '远亲不如紧邻!', true, 0.0, true);
  end;
1
2
3
4
5
6
7

# 2.2.2. OnMapClickCallbackEvent事件

//参数:TCCAMapLatLng 经纬度
Procedure fxAMapView1OnMapClickCallbackEvent(Sender: TObject; ALatLng: TCCAMapLatLng);
1
2

  在地图上单击时触发该事件。

示例

  //单击地图的时候,在地图上添加一个标记
  fxAMapView1.Zoom(18);
  fxAMapView1.AddMarker2(ALatLng.Longitude + 0.00026, ALatLng.Latitude + 0.00016, true, fxImage1.Bitmap);
1
2
3

# 2.2.3. OnMapScreenShotCallbackEvent事件

//参数:ABitmap 地图截图
Procedure fxAMapView1OnMapScreenShotCallbackEvent(Sender: TObject; ABitmap: TBitmap);
1
2

  获取地图截图时触发该事件。

示例

  //将地图截图赋值图片控件
  fxImage1.Bitmap := ABitmap;
1
2

# 2.2.4. OnMarkerClickCallbackEvent事件

//参数:ALatLng 地图标记经纬度
Procedure fxAMapView1OnMarkerClickCallbackEvent(Sender: TObject; ALatLng: TCCAMapLatLng);
1
2

  当单击地图上标记时触发该事件。

示例

  //获取标记的经纬度
  Showmessage('经度:'+FloatToStr(ALatLng.FLongitude)+',维度:'+FloatToStr(ALatLng.FLatitude));
1
2

# 2.3. 方法(Methods)

  • TfxAMapView组件主要方法
方法 功能说明
SetMapLanguage 设置地图语言
SetMapType 设置地图类型
MoveCamera 移动视角
AddMarker1 往地图上添加一个标记
AddMarker2 往地图上添加一个标记
AddMarker3 往地图上添加一个标记
AddMarker4 往地图上添加一个标记
addOverlayToMap 往地图上添加一个groundoverlay覆盖物
Clear 从地图上删除所有的overlay(marker,circle,polyline 等对象)
getMapScreenShot 获取地图截图
SetMyLocationEnabled 设置我的位置是否启用
ShowMyLocationSingle 显示我的位置图标(指定图标序号)
ShowMyLocationBitmap 显示我的位置图标(指定图象)
HideMyLocation 隐藏我的位置
SetMyLocationType 设置我的位置类型
SetMyLocationButtonEnabled 设置我的位置按钮是否启用
setCompassEnabled 设置罗盘是否启用
setScaleControlsEnabled 设置是否显示比例尺
Zoom 放大缩小地图
addPolylineFromLatLng
addPolylineFromLatLngList
addPolylineInPlayGround
startMove 开始移动
stopLocation 停止定位

# 2.3.1. SetMapLanguage方法

//功能:设置地图语言
//返回值:无
//参数:AValue 语言标记 zh_cn 中文,en 英文
{
  CCAMap_Language_CHINESE = 'zh_cn'; // 中文地图
  CCAMap_Language_ENGLISH = 'en';    // 英文地图
}
procedure SetMapLanguage(AValue: string);
1
2
3
4
5
6
7
8

示例

  //设置为中文地图
  fxAMapView1.SetMapLanguage('zh_cn');
  //设置为英文地图
  fxAMapView1.SetMapLanguage('en');
1
2
3
4

# 2.3.2. SetMapType方法

//功能:设置地图模式
//返回值:无
//参数:AValue 地图模式
//    MAP_TYPE_NORMAL = 1 普通地图,值为1;
//    MAP_TYPE_SATELLITE = 2 卫星地图,值为2;
//    MAP_TYPE_NIGHT = 3 黑夜地图,夜间模式,值为3;
//    MAP_TYPE_NAVI = 4 导航模式,值为4;
//    MAP_TYPE_BUS = 5 公交模式,值为5

procedure SetMapType(AValue: TCCAMap_MapType);
1
2
3
4
5
6
7
8
9
10

示例

  //设置为普通地图
  fxAMapView1.SetMapType(MAP_TYPE_NORMAL);
  //设置为卫星地图
  fxAMapView1.SetMapType(MAP_TYPE_SATELLITE);
  //设置为黑夜地图
  fxAMapView1.SetMapType(MAP_TYPE_NIGHT);
  //设置为导航模式
  fxAMapView1.SetMapType(MAP_TYPE_NAVI);
  //设置为公交模式
  fxAMapView1.SetMapType(MAP_TYPE_BUS);
1
2
3
4
5
6
7
8
9
10

# 2.3.3. MoveCamera方法

//功能:移动视角
//返回值:无
//参数:
// target为LatLng位置,zoom为缩放级别,bearing为可视区域指向的方向,以角度为单位,正北方向为0度,tilt为目标可视区域的倾斜度,以角度为单位。)
procedure MoveCamera(ALongitude: Double; ALatitude: Double; AZoom: Single; ATilt: Single; ABearing: Single);
1
2
3
4
5

# 2.3.4. AddMarker1方法

//功能:往地图上添加一个标记
//返回值:无
//参数:
//ALongitude:经度
//ALatitude:维度
//ADraggable:是否为可拖动标记
//AMarkerIcon:标记图标类型
{
  // 标记类型
  CCAMap_MarkerType_HUE_RED = 0.0;
  CCAMap_MarkerType_HUE_ORANGE = 30.0;
  CCAMap_MarkerType_HUE_YELLOW = 60.0;
  CCAMap_MarkerType_HUE_GREEN = 120.0;
  CCAMap_MarkerType_HUE_CYAN = 180.0;
  CCAMap_MarkerType_HUE_AZURE = 210.0;
  CCAMap_MarkerType_HUE_BLUE = 240.0;
  CCAMap_MarkerType_HUE_VIOLET = 270.0;
  CCAMap_MarkerType_HUE_MAGENTA = 300.0;
  CCAMap_MarkerType_HUE_ROSE = 330.0;
}
procedure AddMarker1(ALongitude: Double; ALatitude: Double; ADraggable: Boolean; AMarkerIcon: Single);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

示例

fxAMapView1.AddMarker3(Longitude + 0.00026, Latitude + 0.00016,'我是您的邻居', '远亲不如紧邻!', true, CCAMap_MarkerType_HUE_ROSE);
1

# 2.3.5. AddMarker2方法

//功能:往地图上添加一个标记
//返回值:无
//参数:
//ALongitude:经度
//ALatitude:维度
//ADraggable:是否为可拖动标记
//AMarkerIcon:标记图标对象
procedure AddMarker2(ALongitude: Double; ALatitude: Double; ADraggable: Boolean; AMarkerIcon: TBitmap);
1
2
3
4
5
6
7
8

示例

fxAMapView1.Zoom(18);
fxAMapView1.AddMarker2(ALatLng.Longitude + 0.00026, ALatLng.Latitude + 0.00016, true, fxImage1.Bitmap);
1
2

# 2.3.6. AddMarker3方法

//功能:往地图上添加一个标记
//返回值:无
//参数:
//ALongitude:经度
//ALatitude:维度
//ADraggable:是否为可拖动标记
//AMarkerIcon:标记图标序号
//ATitle:标记标签
//ASnippet:标记小标签
//AShowInfoWindow:是否显示信息窗口
procedure AddMarker3(ALongitude: Double; ALatitude: Double; ATitle: string; ASnippet: string; ADraggable: Boolean; 
AMarkerIcon: Single; AShowInfoWindow: Boolean);
1
2
3
4
5
6
7
8
9
10
11
12

示例

fxAMapView1.AddMarker3(Longitude + 0.00026, Latitude + 0.00016,'我是您的邻居', '远亲不如紧邻!', true, CCAMap_MarkerType_HUE_ROSE, true);
1

# 2.3.7. AddMarker4方法

//功能:往地图上添加一个标记
//返回值:无
//参数:
//ALongitude:经度
//ALatitude:维度
//ADraggable:是否为可拖动标记
//AMarkerIcon:标记图标对象
//ATitle:标记标签
//ASnippet:标记小标签
//AShowInfoWindow:是否显示信息窗口
procedure AddMarker4(ALongitude: Double; ALatitude: Double; ATitle: string; ASnippet: string; ADraggable: Boolean; 
AMarkerIcon: TBitmap; AShowInfoWindow: Boolean);
1
2
3
4
5
6
7
8
9
10
11
12

示例

fxAMapView1.AddMarker3(Longitude + 0.00026, Latitude + 0.00016,'我是您的邻居', '远亲不如紧邻!', true, fxImage1.Bitmap, true);
1

# 2.3.8. addOverlayToMap方法

//功能:往地图上添加一个groundoverlay覆盖物
//返回值:无
//参数:
//ALongitude:经度
//ALatitude:维度
//GroundOverlay:覆盖物图片
procedure addOverlayToMap(ALongitude: Double; ALatitude: Double; GroundOverlay: TBitmap);
1
2
3
4
5
6
7

示例

fxAMapView1.AddMarker3(Longitude + 0.00026, Latitude + 0.00016, fxImage1.Bitmap);
1

# 2.3.9. Clear方法

//功能:从地图上删除所有的overlay(marker,circle,polyline 等对象)
procedure Clear;
1
2

# 2.3.10. getMapScreenShot方法

//功能:获取地图截图
//返回值:截图成功执行OnMapScreenShotCallbackEvent事件,并返回Bitmap对象
//参数:无
procedure getMapScreenShot;
1
2
3
4

# 2.3.11. SetMyLocationEnabled方法

//功能:设置我的位置是否启用
//返回值:无
//参数:enabled = true 或 false
procedure SetMyLocationEnabled(enabled: Boolean);
1
2
3
4

示例

//显示我的位置
fxAMapView1.SetMyLocationEnabled(true);
//禁用我的位置
fxAMapView1.SetMyLocationEnabled(false);
1
2
3
4

# 2.3.12. ShowMyLocationSingle方法

//功能:设置我的位置图标
//返回值:无
//参数:AMarkerIcon 我的位置图标序号
procedure ShowMyLocationSingle(AMarkerIcon: Single);
1
2
3
4

示例

fxAMapView1.ShowMyLocationSingle(CCAMap_MarkerType_HUE_ROSE);
1

# 2.3.13. ShowMyLocationBitmap方法

//功能:设置我的位置图标
//返回值:无
//参数:AMarkerIcon 我的位置图标对象
procedure ShowMyLocationBitmap(AMarkerIcon: TBitmap);
1
2
3
4

示例

fxAMapView1.ShowMyLocationBitmap(fxImage1.Bitmap);
1

# 2.3.14. HideMyLocation方法

//功能:隐藏我的位置
//返回值:无
//参数:AMarkerIcon 我的位置图标对象
procedure HideMyLocation;
1
2
3
4

# 2.3.15. SetMyLocationType方法

//功能:设置我的位置类型
//返回值:无
//参数:AMyLocationType 我的位置类型
{
TCCAMap_MyLocationType = (
LOCATION_TYPE_SHOW = 0, // 只定位一次。
LOCATION_TYPE_LOCATE = 1, // 定位一次,且将视角移动到地图中心点。
LOCATION_TYPE_FOLLOW = 2, // 连续定位、且将视角移动到地图中心点,定位蓝点跟随设备移动。(1秒1次定位)
LOCATION_TYPE_MAP_ROTATE = 3,// 连续定位、且将视角移动到地图中心点,地图依照设备方向旋转,定位点会跟随设备移动。(1秒1次定位)
LOCATION_TYPE_LOCATION_ROTATE = 4,// 连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)默认执行此种模式。
// 以下三种模式从5.1.0版本开始提供
LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER = 5,// 连续定位、蓝点不会移动到地图中心点,定位点依照设备方向旋转,并且蓝点会跟随设备移动。
LOCATION_TYPE_FOLLOW_NO_CENTER = 6, // 连续定位、蓝点不会移动到地图中心点,并且蓝点会跟随设备移动。
LOCATION_TYPE_MAP_ROTATE_NO_CENTER);// 连续定位、蓝点不会移动到地图中心点,地图依照设备方向旋转,并且蓝点会跟随设备移动。
}
procedure SetMyLocationType(AMyLocationType: TCCAMap_MyLocationType);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

示例

//只定位一次
fxAMapView1.SetMyLocationType(LOCATION_TYPE_SHOW);
//定位一次,且将视角移动到地图中心点
fxAMapView1.SetMyLocationType(LOCATION_TYPE_LOCATE);
//连续定位、且将视角移动到地图中心点,定位蓝点跟随设备移动。(1秒1次定位)
fxAMapView1.SetMyLocationType(LOCATION_TYPE_FOLLOW);
1
2
3
4
5
6

# 2.3.16. SetMyLocationButtonEnabled方法

//功能:设置我的位置按钮是否启用
//返回值:无
//参数:MyLocationButtonEnabled 是否启用
procedure SetMyLocationButtonEnabled(MyLocationButtonEnabled: Boolean);
1
2
3
4

示例

//启用我的位置按钮
fxAMapView1.SetMyLocationButtonEnabled(true);
//禁用我的位置按钮
fxAMapView1.SetMyLocationButtonEnabled(false);
1
2
3
4

# 2.3.17. setCompassEnabled方法

//功能:设置罗盘是否启用
//返回值:无
//参数:CompassEnabled 是否启用
procedure setCompassEnabled(CompassEnabled: Boolean);
1
2
3
4

示例

//启用罗盘
fxAMapView1.setCompassEnabled(true);
//禁用罗盘
fxAMapView1.setCompassEnabled(false);
1
2
3
4

# 2.3.18. setScaleControlsEnabled方法

//功能:设置是否显示比例尺
//返回值:无
//参数:scaleControlsEnabled 是否启用
procedure setScaleControlsEnabled(scaleControlsEnabled: Boolean);
1
2
3
4

示例

//显示比例尺
fxAMapView1.setScaleControlsEnabled(true);
//禁用比例尺
fxAMapView1.setScaleControlsEnabled(false);
1
2
3
4

# 2.3.19. Zoom方法

//功能:放大缩小地图
//返回值:无
//参数:zoomTo 放大倍数
procedure Zoom(zoomTo: Single);
1
2
3
4

示例

//放大18倍
fxAMapView1.Zoom(18);
1
2

# 2.3.20. addPolylineFromLatLng方法

procedure addPolylineFromLatLng(APoint: TCCAMapLatLng; APolylineOptions: TCCPolylineOptions);
1

# 2.3.21. addPolylineFromLatLngList方法

procedure addPolylineFromLatLngList(APoints: TArray<TCCAMapLatLng>; APolylineOptions: TCCPolylineOptions);
1

# 2.3.22. addPolylineInPlayGround方法

procedure addPolylineInPlayGround(APoints: TArray<TCCAMapLatLng>);
1

# 2.3.23. startMove方法

//功能:开始移动
//返回值:无
//参数:无
procedure startMove;
1
2
3
4

# 2.3.24. stopLocation方法

//功能:停止定位
//返回值:无
//参数:无
procedure stopLocation;
1
2
3
4

# 3. TfxFNCMaps

   此控件是地图服务的抽象层展示,可通过地图信息服务商提供的API来实现特定的地图显示的功能。

  关于自定义的图形添加方法如下,请根据示例进行说明。

  • 添加标记的示例。
  //支持自定义标记类型
  fxFNCMaps1.AddMarker(25.047468, 121.509705,'<font color="red"><b>Car</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/car.png').DataInteger := 0;
  fxFNCMaps1.AddMarker(24.212871, 120.670919,'<font color="red"><b>Car</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/car.png').DataInteger := 1;
  fxFNCMaps1.AddMarker(24.674813, 121.478387,'<font color="red"><b>Car</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/car.png').DataInteger := 2;
  
  fxFNCMaps1.AddMarker(25.499806, 119.549742,'<font color="red"><b>Cust</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/cust.png').DataInteger := 3;
  fxFNCMaps1.AddMarker(22.761620, 121.143498,'<font color="red"><b>Supply</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/supply.png').DataInteger := 4;
  fxFNCMaps1.AddMarker(24.202322, 120.711247,'<font color="red"><b>meter</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/meter.png').DataInteger := 5;
  fxFNCMaps1.SetCenterCoordinate(25.499806, 119.549742);
  
  ZoomLevel := 8;
  fxFNCMaps1.SetZoomLevel(ZoomLevel);
1
2
3
4
5
6
7
8
9
10
11
12
  • 添加弹窗的示例。
var
  s: String;
  prevPopup: String;
begin
  if prevPopUp <> '' then
    fxFNCMaps1.ClosePopup(prevPopUp);

   s :='<font color="red"><b>IsoFace</b></font><br>'
      + '<iframe width="240" height="240" src="https://isoface.net/isoface/images/video/rocket_2.mp4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>';
  prevPopUp := fxFNCMaps1.ShowPopup(25.042232, 121.559655,s,-80,50);
  fxFNCMaps1.SetCenterCoordinate(25.042232, 121.559655);
End;
1
2
3
4
5
6
7
8
9
10
11
12
  • 添加路径的示例。
var
  cdsData:TfxRFDataSet;
Begin
  cdsData:=TfxRFDataSet.Create(nil);
  try
 { 添加字段 }
 
  cdsData.FieldDefs.Add('Latitude',ftFMTBcd,4,false);
  cdsData.FieldDefs.Add('Longitude',ftFMTBcd,4,false);
  
 { 创建建数据集, 不可缺少的一步 }
   cdsData.CreateDataSet;
   
   AddRecord(cdsData,25.043759, 121.494587);
   AddRecord(cdsData,25.053090, 121.505574); 
   AddRecord(cdsData,25.064662, 121.506369); 
   AddRecord(cdsData,25.072282, 121.506712);
   AddRecord(cdsData,25.089073, 121.497614);
   AddRecord(cdsData,25.094980, 121.490576);
   fxFNCMaps1.LoadGPXDataSet(cdsData,true,true,3,Orangered,false,false,600);
   
   fxFNCMaps1.AddMarker(25.043759, 121.494587,'<font color="green"><b>Start</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/location.png');
   fxFNCMaps1.AddMarker(25.094980, 121.490576,'<font color="red"><b>Stop</b></font><br>','https://s1.imagehub.cc/images/2022/08/24/location.png');

   fxFNCMaps1.SetCenterCoordinate(25.043759, 121.494587);
   ZoomLevel := 12.5;
   fxFNCMaps1.SetZoomLevel(ZoomLevel);
   
   Finally
   //Except {ErrorMsg / RaiseMsg(Const Error:String)}
     cdsData.Free;
   End;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 3.1. 属性

# 3.1.1. APIKey

property APIKey: UnicodeString;
1

  用于设置APIKey,对于部分地图信息提供商,需要填写此属性后才可使用。

# 3.1.2. Circles

property Circles: TTMSFNCMapsCircles;
1

  圆标记的管理。点击控件属性结构列表,通过添加按钮可手动添加标记。添加的标记包含以下属性:

名称 说明
Center 设置圆的中心位置,指定标记的纬度与经度位置
FillColor 圆所使用的填充层的颜色
FillOpacity 填充层的透明度
Radius 圆的半径
StrokeColor 圆边线的颜色
StrokeOpacity 圆边线的透明度
StrokeWidth 圆边线的像素宽度
Visible 是否显示

# 3.1.3. ElementContainer

property ElementContainer: TTMSFNCElementContainer;
1

  通过此属性的设置,可在地图上层添加HTML与CSS元素。通过Actions 可创建自定义控件,这部分内容与地图服务相互独立,在任何地图服务下均显示为相同的效果。点击控件属性结构列表,通过添加按钮可手动添加。添加的元素包含以下属性:

名称 说明
Actions 设置执行的动作
HTML 元素的HTML
HTMLElementClass 元素的类名称
HTMLElementID 元素的ID

# 3.1.4. Markers

property Markers: TTMSFNCMapsMarkers;
1

  地图标记的管理。点击控件属性结构列表,通过添加按钮可手动添加。添加的标记包含以下属性:

名称 说明
IconURL 如使用自定义图标,则在此处指定自定义图标的URL
Latitude 指定标记所在的纬度
Longtitude 指定标记所在的经度
Title 标记的标题信息
Visible 标记是否可见

# 3.1.5. Polygons

property Polygons: TTMSFNCPolygons;
1

  多边形标记的管理,点击控件属性结构列表,通过添加按钮可手动添加。添加的标记包含以下属性:

名称 说明
Coordinates 多边形的角所在的经纬度位置
FillColor 填充层的颜色
FillOpacity 填充层的透明度
StrokeColor 边线的颜色
StrokeOpacity 边线的透明度
StrokeWidth 边线的像素宽度
Visible 是否显示

# 3.1.6. Polylines

property Polylines: TTMSFNCPolylines;
1

  折线标记的管理,点击控件属性结构列表,通过添加按钮可手动添加。添加的标记包含以下属性:

名称 说明
Coordinates 折线的端点所在的经纬度位置
StrokeColor 边线的颜色
StrokeOpacity 边线的透明度
StrokeWidth 边线的像素宽度
Visible 是否显示

# 3.1.7. Rectangles

property Rectangles: TTMSFNCRectangles;
1

  矩形标记的管理,点击控件属性结构列表,通过添加按钮可手动添加。添加的标记包含以下属性:

名称 说明
Bounds 设置定位边线的坐标位置,需为 NorthEast 与 SouthWest 设置经纬度位置。
FillColor 填充层的颜色
FillOpacity 填充层的透明度
StrokeColor 边线的颜色
StrokeOpacity 边线的透明度
StrokeWidth 边线的像素宽度
Visible 是否显示

# 3.1.8. Service

property Service: TTMSFNCMapsService;
1

  设置地图服务的提供商。您可以在程序中动态切换地图服务提供商,动态切换后,已设置的标记、折线、多边形等仍然会保留。但是定位信息与缩放等会恢复至默认设置。可选项目如下:

名称 说明
msAzureMaps Azure 地图
msBingMaps Bing 地图
msGoogleMaps Google 地图
msHere Here 地图
msMapBox MapBox 地图
msMapKit MapKit 地图
msOpenLayers OpenLayers 地图
msTomTom TomTom 地图

# 3.2. 方法

# 3.2.1. BeginUpdate

procedure BeginUpdate;
1

  开始执行更新。

# 3.2.2. EndUpdate

procedure EndUpdate;
1

  结束更新。

# 3.2.3. AddMarkerRec

function AddMarkerRec(var ACoordinate: TTMSFNCMapsCoordinateRec;ATitle: UnicodeString;AIconURL:UnicodeString): TTMSFNCOpenLayersMarker;
1

  在地图的指定位置添加标记。

var
  Coordinate: TTMSFNCMapsCoordinateRec;
begin
  Coordinate.Logtitude := 49.0564068515288;
  Coordinate.Latitude := 24.1373163639494;
  fxFNCMaps1.AddMarkerRec(Coordinate,'','');
end;
1
2
3
4
5
6
7

# 3.2.4. AddMarkerCoordinate

function AddMarkerCoordinate(ALatitude: Double; ALongtitude: Double; ATitle: UnicodeString; AIconURL: UnicodeString): TTMSFNCOpenLayersMarker;
1

  直接指定标记位置,进行标记添加。

  fxFNCMaps1.AddMarkerCoordinate(49.05,24.13,'','');
1

# 3.2.5. ClearMarkers

procedure ClearMarkers;
1

  清除所有的地图标记。

# 3.2.6. ClearPolyLines

procedure ClearPolyLines;
1

  清除所有的折线标记。

# 3.2.7. ClearPolygons

procedure ClearPolygons;
1

  清除所有的多边形标记。

# 3.2.8. ClearRectangles

procedure ClearRectangles;
1

  清除所有矩形标记。

# 3.2.9. ShowPopup

function ShowPopup(var ACoordinate: TTMSFNCMapsCoordinateRec;AText: UnicodeString; AOffsetX: Double; AOffserY: Double): UnicodeString:
1

  设置显示弹出式窗口。

# 3.2.10. SetZoomLevel

procedure SetZoomLevel(AZoomLevel: Double);
1

  设置地图的缩放级别。

# 4. TfxFNCOpenLayers

  TFNCOpenLayers 继承于 TFNCMaps,并公开了特定于 OpenLayers API 的额外功能。如需要了解此组件的通用属性、事件与方法,请参考 TfxFNCMaps。

# 4.1. TileServer

  当使用此组件时,您可以指定自定义的瓦片图层服务器,可在 Options.TileServer 中进行指定。

# 4.1.1. TileLayers

  您可以指定切片图层列表以显示地图图层的顶部。TileLayers 具有 URL 值和可选 Opacity 值的 tilelayers 集合。

# 4.1.2. 折线与多边形标签

  您可以为折线和多边形指定标签文本。 默认情况下,标签文本显示在折线的中心。可指定的内容属性如下:

名称 描述
Label.Text 设置标签文本
Label.FontColor 设置标签文本的的字体颜色
Label.FontSize 设置标签文本的字体大小
Label.OffsetX 设置标签在X方向上的偏移量
Label.OffsetY 设置标签在Y方向上的偏移量

# 5. TfxFNCGeocoding

  此组件用于执行地址地理编码或者坐标反向地理编码。

# 5.1. 属性

# 5.1.1. APIKey

property APIKey: UnicodeString;
1

  用于设置APIKey,对于部分地图信息提供商,需要填写此属性后才可使用。

# 5.1.2. GeocodingRequests

property GeocodingRequests: TTMSFNCGeocodingRequests;
1

  设置地理信息编码请求的项目。

# 5.1.3. Service

property Service: TTMSFNCMapsService;
1

  设置地理编码信息服务的提供商。可选项目有 gsAzure、gsBing、gsGeoApify、gsGoogle、gsHere、gsMapBox、gsOpenRoute、gsOpenStreetMap。

# 5.2. 事件

事件名称 触发方式
OnGetGeocoding 调用 GetGeocoding 后触发。 包含地理编码操作的结果。 ARequest.Status 和 ARequest.ErrorMessage 值可用于查看所选服务返回的状态和错误消息(如果有)。 在多个地理编码调用的情况下,ARequest.ID 值可用于确定结果与哪个调用相关联。 从请求返回的数据可以在 ARequest.Items 集合中找到。
OnGetReverseGeocoding 调用 GetReverseGeocoding 后触发。 包含反向地理编码操作的结果。 ARequest.Status 和 ARequest.ErrorMessage 值可用于查看所选服务返回的状态和错误消息(如果有)。 在多个 GetReverseGeocoding 调用的情况下,ARequest.ID 值可用于确定结果与哪个调用相关联。 从请求返回的数据可以在 ARequest.Items 集合中找到。
OnGetGeocodingResult 调用 GetGeocoding 后触发。 包含地理编码操作的结果。 从请求返回的数据可以在 AResult.Items 集合中找到。
OnGetReverseGeocodingResult 调用 GetReverseGeocoding 后触发。 包含反向地理编码操作的结果。 从请求返回的数据可以在 AResult.Items 集合中找到。

# 5.3. 方法

# 5.3.1. GetGeocodingAddress

procedure GetGeocodingAddress(AAddress: UnicodeString; AID: UnicodeString; ADataPointer: Pointer; AMode: TTMSFNCMapsLocaleMode);
1

  获取指定位置的地理地点信息。

物联网控件
数据表格控件

← 物联网控件 数据表格控件→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式