Важно (9.07.22)

Если картинки в постах не отображаются, зайдите в блог через прокси. РКН заблокировал поддомены blogger.com на которые загружались картинки.

понедельник, 4 ноября 2013 г.

Delphi XE5 iOS и Android, одна строчка кода - Map My Location

Michael Swindell поставил перед нами задачу создания мобильного приложения с помощью Delphi xe5 для iOS и Android, используя при этом только одну строчку кода. Подумав об этом некоторое время, вот моё первое приложение с одной строчкой кода, "Map My Location". Это приложение использует компоненты TLocationSensor, TToolBar, TLabel и TWebBrowser для создания Android и iOS приложения, которое отображает карты Google с моим текущим местоположением.

upd (20.04.2014). Добавил информацию о разрешениях.


Чтобы начать этот проект, запускаем Delphi XE5 и создаём новый проект, используя меню "File | New | FireMonkey Mobile Application - Delphi".
Выбираем шаблон "Blank Application". На пустой форме добавляем компонент "TToolBar" и устанавливаем свойство "Align: alTop". Добавляем компонент "TLabel" к "TToolBar" и устанавливаем свойства "Text: Map My Location; TextAlign: taCenter; Align: taCenter";. Далее добавляем компонент "TWebBrowser" на форму и устанавливаем свойство "Align: alClient;" (компонент заполнит оставшуюся часть клиентской области формы). Размещаем компонент "TLocationSensor" на форме, он позволит получать координаты широты и долготы от датчика GPS, ставим свойство "Active: True;" (при запуске приложение сразу начнёт определять координаты).



Создаем обработчик события "OnLocationChanged" для "TLocationSensor" и добавляем одну строчку кода:
procedure TForm1.LocationSensor1LocationChanged(Sender: TObject; const OldLocation, NewLocation: TLocationCoord2D);
begin
  WebBrowser1.Navigate(
    Format(
      'https://maps.google.com/maps?q=%s,%s&output=embed',
      [NewLocation.Latitude.ToString, NewLocation.Longitude.ToString]
    )
  );
end;

В этой строке кода мы получаем широту (NewLocation.Latitude) и долготу(NewLocation.Longitude), преобразуем в строки (используя функцию ToString) и вводим оба значения в строку с помощью функции Format, после чего передаём полученную строку в TWebBrowser.Navigate.


Необходимо также дать разрешение на использование GPS датчика и подключения к Интернету:
Заходим в меню «Project -> Optoins -> Uses Permissions» и ставим галочки напротив пунктов:
  • Access location extra commands
  • Access mock location
  • Internet
После всех действий получаем готовое приложение, которое можно запускать как на Android устройствах, так и на iOS устройствах. Ниже вы можете видеть примеры работы приложения на iPhone Apple, 4S и Samsung Galaxy S4.





p.s. Это вольный перевод статьи Delphi XE5 iOS and Android One Line of Code App - Map My Location (Автор: David Intersimone)