Перейти к содержанию
Fire Monkey от А до Я
  • 0

Навигация TmapView


Edward Tarasov

Вопрос

Подскажите плз студенту, весь инет перерыл - ничего кроме tmapview не нашел, и тот позволяет только отображать маркеры и прокладывать через них маршрут... ок маршрут проложили а как включить навигацию? чтобы телка сказала - поверни те туда то.... не ясно, и возможно ли вообще такое? 

Кстатить при использовании tmapview вместо карты - пустой экран.

вообщем надо передать в tmapview мое местоположение и куда надо идти, затем включить навигацию

Кто занет как сделать ?????????

Или может есть возможность использовать встроенные возможности навигации?

Изменено пользователем Edward Tarasov
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
9 часов назад, Edward Tarasov сказал:

может есть возможность использовать встроенные возможности навигации

Нет понятия "встроенных возможностей навигации".

Вам надо - вы в своем приложении и:

- отслеживайте положение,
- меняйте маркер (положение /поворот),
- смотрите - ушел с маршрута или нет,
- озвучивайте "телку"
- и так далее.

Совокупность всех этих действий и будет тем, что вы подразумеваете под "навигацией".
Только учтите, что пользоваться для прокладки маршрута вы будете чьим-то API. А лицензионные соглашения по их использованию имеют ограничения. Печально будет, если на очередном запуске вашего приложения гугл / яндекс / ситигид / другой провайдер скажут "до свидания".

Ссылка на комментарий
  • 0
15 часов назад, Edward Tarasov сказал:

Или может есть возможность использовать встроенные возможности навигации?

Проще всего из программы открыть яндекс или другой навигатор с установленными точками куда идти. Самому сделать  нормальный навигатор - это чьё-то платное api, так как бесплатное не гарантированно будет отдавать данные, ну и месяцы работы.
 

Ссылка на комментарий
  • 0
4 часа назад, Akad сказал:

Проще всего из программы открыть яндекс или другой навигатор с установленными точками куда идти. Самому сделать  нормальный навигатор - это чьё-то платное api, так как бесплатное не гарантированно будет отдавать данные, ну и месяцы работы.
 

Вот как это сделать?? из программы открыть встроенный навигатор, я об это и спрашивал(Или может есть возможность использовать встроенные возможности навигации?) 

Ссылка на комментарий
  • 1

Вот так я открываю яндекс навигатор:



var
   Intent: JIntent;
   pm: JPackageManager;
   tempList: JList;
begin
.....
   Intent := TJIntent.Create;
   Intent.setAction
      (StringToJString('ru.yandex.yandexnavi.action.BUILD_ROUTE_ON_MAP'));
   Intent.setPackage(StringToJString('ru.yandex.yandexnavi'));
   pm := SharedActivity.getPackageManager;
   tempList := pm.queryIntentActivities(Intent, 0);

   // Проверяем, установлен ли Яндекс.Навигатор
   if (tempList = nil) or (tempList.SIZE = 0) then
   begin
      // Если нет - будем открывать страничку Навигатора в Google Play
      Intent := TJIntent.Create;
      Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
      Intent.setData(StrToJURI('market://details?id=ru.yandex.yandexnavi'));
   end
   else
   begin
      // intent.putExtra(StringToJString('lat_from'), g_CurrentLocation.la);
      // intent.putExtra(StringToJString('lon_from'), g_CurrentLocation.lo);
      Intent.putExtra(StringToJString('lat_to'), StringToJString(las));
      Intent.putExtra(StringToJString('lon_to'), StringToJString(los));
      // intent.putExtra(StringToJString('desc'), StringToJString(LOS));
   end;

   SharedActivity.startActivity(Intent);
end;

Тут задаётся куда. Так же можно откуда и описание (комментировано)

9 минут назад, Edward Tarasov сказал:

Или может есть возможность использовать встроенные возможности навигации?

Их нету. Есть возможность статично что-то отобразить. Не более.

 

Изменено пользователем Akad
Ссылка на комментарий
  • 0

если кому лень искать инфу, может пригодится... на основе ответа от Akad для google maps

uses
  Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText

...
  
var Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  try
    Intent.setData(StrToJURI('google.navigation:q='+GX+','+GY+'&mode=d')); //если есть google maps
  except
    Intent.setData(StrToJURI('https://www.google.com/maps/dir/?api=1&destination='+GX+','+GY+'&travelmode=driving')); //иначе открываем ссылку в браузере
  end;
  SharedActivity.startActivity(Intent);
end;

 

Изменено пользователем beklexx
Ссылка на комментарий
  • 0

Всем привет!

Большое спасибо за представленное решение!

Два вопроса по теме:

1. Есть ли возможность реализовать то же самое (передать координаты точки в навигатор и открыть его) в iOS?

2. Сделать все это, не для Google/Яндекс, а для общего случая (в приложении-навигаторе, установленному в девайсе по-умолчанию)?

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...