FGX.Map.TfgCustomMap

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску

Delphi

TfgCustomMap = class (TfgControl)

TComponent -> TfgControl -> TfgCustomMap

Прямые наследники: TfgMap

Описание

Контрол отображения нативной карты. Карта позволяет работать с графическими объектами на карте, маркерами, а так же обеспечивает базовые настройки работы с камерой и способов отображения карты.

Для того, чтобы начать использовать камеру на Android, необходимо получить API ключ от Google Maps. Это делается таким же способом, как и для FMX. Инструкция доступна здесь: http://docwiki.embarcadero.com/RADStudio/Rio/en/Configuring_Android_Applications_to_Use_Google_Maps

Google карта требует наличие следующих разрешений, которые нужно запросить при помощи сервиса TfgPermissionService в рантайме:

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION

Обратите внимание, что работа с маркерами доступна только после полной загрузки карты, а именно в событии OnMapReady или позже.

На каждой платформе используется свой провайдер карты. На Андроиде - Google Map.

Конструкторы

constructor
Create(AOwner: TComponent)

Описание отсутствует.

Методы

function
IsMapReadyToUse(): Boolean

Готова ли карта к работе. Карта инициализируется асинхронно, поэтому работа с картой доступна только после полной инициализации. Проверить готовность карты к работе можно через этот метод или в событии OnMapReady .

function
AddMarker(const APosition: TfgMapCoordinate; const ATitle: string): TfgMapMarker

Добавляет на карту маркер с заголовком ATitle . Уникальный идентификатор маркера генерируется автоматически.

Метод должен вызывать только, когда карта пронициализирована и готова к использованию OnMapReady , IsMapReadyToUse .
function
AddMarker(const AId: string; const APosition: TfgMapCoordinate; const ATitle: string): TfgMapMarker

Добавляет на карту маркер с заголовком ATitle и уникальным идентификатором AId . Если на карте уже есть маркер с таким же идентификатором, то бросит исключение EfgMapError .

Метод должен вызывать только, когда карта пронициализирована и готова к использованию OnMapReady , IsMapReadyToUse

AId может использоваться для дальнейшего удаления маркера про уникальному идентификатору.

Карта является владельцем всех экземпляров маркеров. Поэтому маркеры удаляются автоматически картой.

function
FindMarkerById(const AId: string; var AMarker: TfgMapMarker): Boolean

Ищет маркер на карте по указанному идентификатору AId и если он найден, то возвращает его в AMarker .

procedure
RemoveMarker(const AMarker: TfgMapMarker)

Удаляет маркер с карты.

procedure
RemoveMarker(const AId: string)

Удаляет маркер с карты по его идентификатору TfgMapMarker.Id .

procedure
ClearMarkersInCategory(const ACategory: string)

Удаляет все маркеры в указанной категории ACategory .

Название категории регистрозависимое.
procedure
ClearMarkers()

Удаляет все маркеры с карты и уничтожает все экземпляры маркеров.

Свойства

property
CameraTarget: TfgMapCoordinate

Географические координаты относительно которой размещается камера.

property
CameraZoom: Single

Зум камеры [1..20]:

  • 1 - Весь мир. Самый мелкий масштаб.
  • 5 - Континенты.
  • 10 - Города.
  • 15 - Улицы.
  • 20 - Здания.
property
CameraTilt: Single

Наклон камеры относительно перпендикуляра опущеного на землю и направления обзора с камеры в точку CameraTarget .

property
CameraBearing: Single

Пеленг камеры в градусах по часовой стрелке относительно Севера.

property
MapType: TfgMapType

Тип карты.

property
GoogleMapStyle: TfgGoogleMapStyleOptions

Настройки стиля Google карты.

Актуально только для Андроид платформы.

События

event
OnCameraChanging: TNotifyEvent

Срабатывает в процессе изменения параметров камеры.

event
OnMapReady: TNotifyEvent

Вызывается, когда карта проинициализирована и готова к использованию. Именно в этот момент можно работать с объектами на карте.

event
OnTapMarker: TfgOnMapMarkerTap

Вызывается, когда пользователь нажимает на маркер.

Константы

const
DefaultMapType: TfgMapType

Описание отсутствует.