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

Лидеры

  1. Rusland

    Rusland

    Пользователи


    • Баллы

      4

    • Постов

      1 204


  2. rareMax

    rareMax

    Пользователи


    • Баллы

      1

    • Постов

      553


  3. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      1

    • Постов

      2 517


  4. Alex Bozhko

    Alex Bozhko

    Пользователи


    • Баллы

      1

    • Постов

      104


Популярный контент

Показан контент с высокой репутацией 05.04.2016 во всех областях

  1. Rusland

    GPS

    Собственно то что написал и есть пример. Но собственно нужно еще протестировать как будет работать при движении (я пока тестил когда объект неподвижен). GetDistance я брал вроде у ZuBy: function TFormMain.GetDistance(const aStart, aEnd: TMapCoordinate): Double; const // определение расстояния между двумя точками Radius = 6372795; // примерный радиус земли PiDiv180=Pi/180; var CosLatStart, SinLatStart, CosLatEnd, SinLatEnd, Delta, CosDelta, SinDelta, X, Y: Double; begin try CosLatStart := Cos(aStart.Latitude * PiDiv180); CosLatEnd := Cos(aEnd.Latitude * PiDiv180); SinLatStart := Sin(aStart.Latitude * PiDiv180); SinLatEnd := Sin(aEnd.Latitude * PiDiv180); Delta := (aEnd.Longitude * PiDiv180) - (aStart.Longitude * PiDiv180); CosDelta := Cos(Delta); SinDelta := Sin(Delta); Y := Sqrt(((CosLatEnd*SinDelta)*(CosLatEnd*SinDelta))+ ((CosLatStart*SinLatEnd-SinLatStart*CosLatEnd*CosDelta) *(CosLatStart*SinLatEnd-SinLatStart*CosLatEnd*CosDelta))); X := SinLatStart * SinLatEnd + CosLatStart * CosLatEnd * CosDelta; Result := Round(ArcTan2(Y, X) * Radius); except Result := -1; end; end; Alexander, Решение рабочее.
    2 балла
  2. Rusland

    GPS

    Пока придумал вести список последних N-координат (я взял 10) и 1.) сравнивать последнюю полученную с предыдущей на измененное расстояние. Если расстояние больше чем M-метров (в моем случае 100м), значит координата "захвачена" с базовой станции, а не GPS if (GetDistance(x,y,x2,y2)>100) then Result:=false 2.) во время стоянки объекта проверять принадлежит ли последняя координата (Ш0,Д0) многоугольнику вершинами которого являются предыдущие координаты (Ш1,Д1) - (ШN, ДN). type tPolygon = array of tPoint; //tPoint - это запись, с двумя полями, x и y ... function IsCoordInPoly(x,y: integer; myP: tPolygon): boolean; //x и y - это координаты var //myP - массив с вершинами полигона i,j,npol: integer; inPoly: boolean; begin inPoly:=false; npol:=length(myP)-1; j:=npol; for i:=0 to npol do begin if ((((myP[i].y<y) and (y<myP[j].y)) or ((myP[j].y<=y) and (y<myP[i].y))) and (x>(myP[j].x-myP[i].x)*(y-myP[i].y) / (myP[j].y-myP[i].y)+myP[i].x)) then inPoly:=not inPoly; j:=i; end; result:=inPoly; end; Но не оставляю надежды добраться до координат самого MapView
    1 балл
  3. Alex Bozhko

    RAD 11 на подходе?

    Конечно надо! Но прежде всего надо, что бы команда разработчиков, в том числе и создатель этого форума, имели ресурс на развитие качественного продукта. А вот как это сделать (что бы и овцы целы и волки сыты) думают специально обученные люди из команды маркетологов.
    1 балл
  4. 1) Кастомный стиль в виде плитки * 2) ListView с горизонтальной прокруткой, профиксил баги, которые появились из-за этого * 3) Отступ сверху от первого Itema, задается вручную. (нужно было сделать, чтобы решить без многочисленных костылей одну ситуацию) 4) Кастомные цвета для отдельных Item'ов 5) разные хелперы и внутренние настройки * можно посмотреть тут скрин выполненной работы
    1 балл
  5. rareMax

    RAD 11 на подходе?

    The Berlin release contains the following new and improved features.
    1 балл
  6. PS. Первое решение оказалось рабочим... не знаю почему у меня вчера отказывалось нормально работать Пользуйтесь. PPS. Надеюсь Embarcadero исправит этот баг в следующей версии и не придется делать столько телодвижений ) Странно что после закрытия программы сервис перестает слать координаты - значок GPS пропадает. Хотя в Настройки->Приложения->Работающие я вижу как процесс перезапускается.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...