Как можно получить последние геопозиции?

qwerty7 years ago

Всем привет )
У меня еще одна база данных можно ли как то записовать туда последние геопозиции чтоб не делать лишние запросы

Anton Tananaev7 years ago

Если база на том же сервере то можно добавить дополнительные SQL запросы в конфигурацию.

qwerty7 years ago

Можно так использовать если не так можете показать маленький пример? спасибо!

    <entry key='database.insertPosition'>
        INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, cours$
        VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :latitude, :speed, :course, :address$

        UPDATE `taxi`.`drivers` SET `lat` = :latitude WHERE `taxi`.`drivers`.`id` = 6;
    </entry>
Anton Tananaev7 years ago

Примерно так.

qwerty7 years ago

Спасибо большое !

А логи можно где то посмотреть? проста сейчас не получается обновить записи в базе данных.

qwerty7 years ago

Вот мой конфиг

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
    <entry key="config.default">./conf/default.xml</entry>
    <entry key='web.port'>8082</entry>
    <entry key='geocoder.enable'>false</entry>
    <entry key='database.driver'>com.mysql.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://localhost/traccar?allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;chara
cterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>user</entry>
    <entry key='database.password'>pass</entry>
    <entry key='server.timeout'>120</entry>
    <entry key='database.insertPosition'>
        INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course
, address, attributes)
        VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address,
 :attributes);

        UPDATE `taxi.itmaker.uz`.`drivers` SET `lat` = :latitude WHERE `taxi.itmaker.uz`.`drivers`.`id` = 6;
    </entry>
</properties>
Anton Tananaev7 years ago

Путь к логам можно найти тут:

https://www.traccar.org/troubleshooting/

qwerty7 years ago

Я нашел логи и тут пишет что с параметрами что то не так
Вот логи

2018-05-02 12:35:04  WARN: No value specified for parameter 3 - SQLException (... < QueryBuilder:477 < DataManager:448 < DefaultDataHan
2018-05-02 12:35:04  INFO: [93DEDE94] id: 1, time: 2018-05-02 12:34:37, lat: 41.27578, lon: 69.21513, speed: 0.0, course: 0.0
2018-05-02 12:35:04 DEBUG: [93DEDE94: 5055 < 213.230.78.58] HEX: 504f5354202f3f69643d312674696d657374616d703d31353235323533363938266c61
2018-05-02 12:35:04 DEBUG: [93DEDE94: 5055 > 213.230.78.58] HEX: 485454502f312e3120323030204f4b0d0a436f6e74656e742d4c656e6774683a20300d
2018-05-02 12:35:04  WARN: No value specified for parameter 3 - SQLException (... < QueryBuilder:477 < DataManager:448 < DefaultDataHan
2018-05-02 12:35:04  INFO: [93DEDE94] id: 1, time: 2018-05-02 12:34:58, lat: 41.27584, lon: 69.21514, speed: 0.0, course: 0.0
2018-05-02 12:35:13  INFO: user: 1, action: login

А вот мои запросы

<entry key='database.insertPosition'>
        INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course
, address, attributes)
        VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address,
 :attributes);

        UPDATE `taxi`.`drivers` SET `lat` = 1000 WHERE `taxi`.`drivers`.`id` = 6;
    </entry>
qwerty7 years ago

В чем проблема подскажите плиз ))

Anton Tananaev7 years ago

Параметра :now уже не существует. Используйте стандартную функцию базы данных чтобы получить время.

qwerty7 years ago

Спасибо большое ! заработал