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

beklexx

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

    67
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные beklexx

  1. Геометрически этот вопрос решить нереально, не в каждом проекте идёт постоянное снятие GPS координат дабы по каким либо закономерностям вычисления проводить... бывает 2 координаты и вторая уже швах

  2. что-то похожее я реализовал чуток другим способом... 

    при нажатии на маркер я показываю юзеру кнопку (создать новое положение маркера) после нажатия на которую я убираю маркер и жду события OnMapClick, которое создаст новый маркер

    procedure TFGPS.MapView1MapClick(const [Ref] Position: TMapCoordinate);
    begin
      if NOT(WaitTapForGPS) then exit;
      WaitTapForGPS:= False;
    
      GPS_X:= Format('%2.6f', [Position.Latitude]);
      GPS_Y:= Format('%2.6f', [Position.Longitude]);
    
      MarkerAdd(GPS_X, GPS_Y, 'New GPS coord');
    end;

    Правда у меня чуток другая задача... а разве в вашем случае возвращаемый TMapMarker из события OnMarkerDragEnd не содержит в себе новые координаты?

  3. У меня вот так работает

    procedure TFVisit.ListView1ButtonClick(const Sender: TObject;
      const AItem: TListItem; const AObject: TListItemSimpleControl);
    begin
      if AObject.ClassName = 'TListItemTextButton' then
        begin
          ........
        end;
    end;

     

  4. Здравствуйте товарищи.

    Помогите выявить одну проблему, а то уже не знаю как с этим бороться, странно что даже гугл не помогает.

    В общем есть несколько клиентов на андроиде, так вот они изредка перестают цепляться к datasnap серверу. Причём не все сразу, к примеру один отвалился а другие норм работают.

    post-419-0-49811700-1456726029.png

    Решается только методом полного сброса смартфона и закачки клиента обратно.

    Как я понял это происходит если ставят какой либо другой софт на смартфон, кодировка или ещё что изменяется.

    Как это выявить я так и не допёр, есть какое мнение?

    Заранее благодарю.

  5. я ещё не тестил, но судя по коду предоставленному Русланом, как то так:

     

    procedure TFrmMain.LocationSensorLocationChanged(Sender: TObject;
      const [Ref] OldLocation, NewLocation: TLocationCoord2D);
    var
      Lat,Lon:String;
      lSensorType : String;
    begin
      lSensorType := GetLocationSensorType(LocationSensor);
      if lSensorType = 'Triangulation' then exit;
      Lat:=Format('%2.6f',[NewLocation.Latitude]);
      Lon:=Format('%2.6f',[NewLocation.Longitude]);
      // выполняем что то там
    end;
  6. Так благодаря этому можно отсеивать эти координаты от вышек дабы увеличить точность ... я так понял это из за  них появляются левые координаты которые +- до 2 км.

  7.  

    да но как все это по делу использовать?

    Если знать как определяются координаты (по ЖПС или по сотовым вышкам), то можно выбирать какие координаты использовать, а какие отбрасывать...

     

    Узнать тип сенсора можно вот так 

    function getLocationSensorType(const ASensor : TLocationSensor) : String;
    begin
      with ASensor do
      case Sensor.SensorType of
        TLocationSensorType.GPS: result           := 'GPS';
        TLocationSensorType.Static: result        := 'Static';
        TLocationSensorType.Lookup: result        := 'Lookup';
        TLocationSensorType.Triangulation: result := 'Triangulation';
        TLocationSensorType.Broadcast: result     := 'Broadcast';
        TLocationSensorType.DeadReckoning: result := 'DeadReckoning';
        TLocationSensorType.Other: result         := 'Other';
        else result                               := 'Unknown';
      end;
    end;
    
    procedure TFrmMain.LocationSensorLocationChanged(Sender: TObject;
      const [Ref] OldLocation, NewLocation: TLocationCoord2D);
    var
      Lat,Lon:String;
      lSensorType : String;
    begin
      Lat:=Format('%2.6f',[NewLocation.Latitude]);
      Lon:=Format('%2.6f',[NewLocation.Longitude]);
      lSensorType := GetLocationSensorType(LocationSensor); 
      Memo1.Lines.Add('Lat='+Lat+' Lon='+Lon+' lSensorType='+lSensorType);
    end;
    

    однако он мне выдает lSensorType=GPS всегда, даже в случае отключения GPS на устройстве... не знаю почему  :blink:

     

    а тут Triangulation это и есть тип сенсора от вышек?

  8. Есть такая фигня... тоже мешает это... думаю, что в какой-то момент вместо спутника выдаются координаты определенные по базовым станциям сотового оператора. 

     

    Ну надо же, а я уж уверовал что в dx10 починили TLocationSensor и стал грешить на это https://habrahabr.ru/post/257443/ (хотя тут указано про вышки, но...) и на то что у некоторых планшеты с плохим сенсором

  9. эхх... System.Sensors.TCustomMotionSensor.Motion

    Platform Support

    This property is only supported on Windows.

     

    Platform Details

    Android

    Android provides different types of motion sensors. Each type of sensor supports a different set of properties:

    iOS

    iOS provides different types of motion sensors. Each type of sensor supports a different set of properties:

    Windows

    Complete support.

     

    инфа... 

    http://docwiki.embarcadero.com/Libraries/XE8/en/System.Sensors.TCustomMotionSensor

    http://docwiki.appmethod.com/appmethod/1.17/libraries/en/System.Sensors.TCustomMotionSensor.Motion

     

    печалька...

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