愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • 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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式