GPS跟踪系统Traccar

news2024/11/29 20:48:30

在这里插入图片描述

什么是 Traccar ?

Traccar是一个开源的 GPS 跟踪系统。支持 200多种GPS 协议和 2000 多种型号的 GPS 跟踪设备。当然也包括像 iOS/Android 这样的手机设备,手机设备只需要安装Traccar的客户端即可使用。

前文介绍的 Hauk 只支持 Android 客户端,适合个人分享;而 Traccar 的应用范围显然要广泛的多,可以用于车队、出租车管理等行业应用。

准备

traccar.xml

官方的方法是执行一次容器来获取到缺省的 traccar.xml

第一步、创建工作目录

# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs

# 进入 traccar 目录
cd /volume2/docker/traccar

第二步、获取到缺省的 traccar.xml文件

docker run \
    --rm \
    --entrypoint cat \
    traccar/traccar:latest \
    /opt/traccar/conf/traccar.xml > /opt/traccar/traccar.xml

当然更简单的方法是将下面的内容直接保存为 traccar.xml

<?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>

    <!--

    This is the main configuration file. All your configuration parameters should be placed in this file.

    Default configuration parameters are located in the "default.xml" file. You should not modify it to avoid issues
    with upgrading to a new version. Parameters in the main config file override values in the default file. Do not
    remove "config.default" parameter from this file unless you know what you are doing.

    For list of available parameters see following page: https://www.traccar.org/configuration-file/

    -->

    <entry key='database.driver'>org.h2.Driver</entry>
    <entry key='database.url'>jdbc:h2:./data/database</entry>
    <entry key='database.user'>sa</entry>
    <entry key='database.password'></entry>

</properties>

关于配置文件的详细说明,可以看官方文档:https://www.traccar.org/configuration-file/

数据库

缺省设置中,采用的是 H2 数据库,这是一个用 Java 开发的嵌入式数据库,本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中,但并不建议将其用于生产环境。

如果你想改为 MySQL,例如使用群晖自带的 MariaDB,可以参考官方文档:https://www.traccar.org/mysql/,对 traccar.xml文件进行修改。

不过老苏没试过,不确定会不会有问题,所以另外启个 MySQL 容器可能会简单一些;

端口

官方提供的安装方法,需要打开端口范围是 5000-5150 ,协议包括 TCP/UDP,这种方法比较省事,但是对我们来说,一方面并没有那么多的设备需要支持,另一方面群晖本身占用了其中的部分端口,比如最常规的 5000,如果启用了 WebDAV Server 的话,可能 5005 也被占用了

所以老苏的建议是按需开端口。打开 https://www.traccar.org/devices/ ,找到你使用的 GPS 设备

如果找不到,可以试试通过协议来识别:https://www.traccar.org/identify-protocol/

但如果你跟老苏一样,只是用移动端 app的话,不另开端口也是可以的

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 traccar ,选择第一个 traccar/traccar,版本选择 latest

本文写作时, latest 版本对应为 5.7

docker 文件夹中,创建一个新文件夹 traccar,并在其中建一个子文件夹 logs

文件夹装载路径说明
docker/traccar/logs/opt/traccar/logs存放日志
docker/traccar/traccar.xml/opt/traccar/conf/traccar.xml设置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
80828082

默认没有暴露端口

需要自己点 + 号添加

假如你要添加的设备要用到端口 5023,需要同时添加 TCPUDP

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs

# 进入 traccar 目录
cd /volume2/docker/traccar

# 获取 traccar.xml 文件
docker run \
    --rm \
    --entrypoint cat \
    traccar/traccar:latest \
    /opt/traccar/conf/traccar.xml > ./traccar.xml

# 根据需要对 traccar.xml 文件进行修改

# 运行容器(标准)
docker run -d \
   --restart unless-stopped \
   --name traccar \
   -p 8082:8082 \
   -p 5000-5150:5000-5150 \
   -p 5000-5150:5000-5150/udp \
   -v $(pwd)/logs:/opt/traccar/logs \
   -v $(pwd)/traccar.xml:/opt/traccar/conf/traccar.xml:ro \
   traccar/traccar:latest

# 运行容器(只使用手机app)
docker run -d \
   --restart unless-stopped \
   --name traccar \
   -p 8082:8082 \
   -v $(pwd)/logs:/opt/traccar/logs \
   -v $(pwd)/traccar.xml:/opt/traccar/conf/traccar.xml:ro \
   traccar/traccar:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  traccar:
    image: traccar/traccar:latest
    container_name: traccar
    restart: unless-stopped
    ports:
      - 8082:8082
    volumes:
      - ./logs:/opt/traccar/logs
      - ./traccar.xml:/opt/traccar/conf/traccar.xml:ro

然后执行下面的命令

# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs

# 进入 traccar 目录
cd /volume2/docker/traccar

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8082 ,第一次需要注册

注册成功后就可以登录了

设置地图

进入 设置 --> 首选项 --> 地图 --> 已选地图

其中红色的地图需要 key,黑色的不需要;

系统默认勾选了 3 种地图,你可以再选择 高德地图,保存后就可以在首页进行切换了

+/- 号进行缩放

移动端 app

移动端的下载地址:https://www.traccar.org/client/

老苏还是下载的 Android 平台的

打开 app

修改服务器地址

保存后,直接启用 定位服务

注意你的设备编码,添加设备时会用到;

添加设备

Web 主界面点 +号,添加 注册您的第一台设备

填入名称和设备编号

回到首页后,左侧会有刚添加的设备

地图上也会有设备所在的位置

接下来你可以做跟踪轨迹、设置围栏等操作

参考文档

Traccar
地址:https://github.com/traccar/

Source Code - Traccar
地址:https://www.traccar.org/source-code/

traccar/traccar-docker: Traccar Docker
地址:https://github.com/traccar/traccar-docker

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析第13课Matplotlib可视化

官网:https://matplotlib.org/users/installing.html 04-1Matplotlib介绍与安装 Matplotlib介绍 什么是Matplotlib Matplotlib是一个Python的基础绘图库,它可与 NumPy(科学计算的) 一起使用,代替Matlab(计算很好)使用。 为什么要学习Matplotlib(灵活度高) 将数据…

AutoHotKey文件与路径交互操作

文章目录 路径操作文件选择文件读写文件属性 AHK作为一种脚本语言&#xff0c;其功能特点是对操作系统功能的整合与简化&#xff0c;从而缩减操作流程&#xff0c;从而起到提高效率的目的。鼠标、键盘的映射&#xff0c;相当于是对外设操作的简化&#xff0c;而除了外部交互之外…

docker harbor私有仓库部署

docker harbor私有仓库部署 docker system prune -a 删除停掉的服务&#xff0c;自定义网络等。 docker 私有仓库 docker配置文件 vim /etc/docker.daemon.josn { “insecury-registries”: ["192.168.232.10:5000]&#xff0c;#指定私有仓库 } docker pull/push 19…

chatgpt赋能python:Python中引入其他包的指南

Python中引入其他包的指南 Python是一种流行的编程语言&#xff0c;拥有丰富的开源软件包和库。许多Python程序将使用其他包来增强其功能。在本文中&#xff0c;我们将探讨如何在Python项目中使用和引入其他包。 什么是Python包和库&#xff1f; Python包是一组可重复使用的…

冈萨雷斯DIP第7章知识点

文章目录 7.3 相关7.5 基图像7.6 傅里叶相关变换7.6.1 离散哈特利变换7.6.3 离散正弦变换 DIP的其他章节都好复习&#xff0c;唯独就这个第7章小波变换。复习起来十分头大&#xff0c;所以我开始写他的课后题&#xff0c;雾。 7.3 相关 已知两个连续函数 f ( x ) f(x) f(x) …

单链表【数据结构、数组模拟】

不采用动态链表 一般情况下&#xff0c;都是直接使用下面的代码进行模拟的 struct Node{int val;Node *next; }然后当我们需要进行创建一个新的节点时&#xff0c;都需要使用new Node()&#xff0c;非常慢&#xff01;&#xff01;&#xff01; 数据规模一般都是10w~100w的数…

Android性能分析工具:Perfetto介绍及用法

本文字数&#xff1a;8409字 预计阅读时间&#xff1a;22分钟 概念 什么是Perfetto?Perfetto是Android 10中引入的全新平台级跟踪工具。这是适用于Android、Linux和Chrome的更加通用和复杂的开源跟踪项目。与Systrace不同&#xff0c;它提供数据源超集&#xff0c;可让您以pro…

【6.09 代随_52day】 最长递增子序列、最长连续递增序列、最长重复子数组

最长递增子序列、最长连续递增序列、最长重复子数组 最长递增子序列1.方法图解步骤递归代码 最长连续递增序列1.动态规划的方法图解步骤代码 最长重复子数组图解步骤代码 最长递增子序列 力扣连接&#xff1a;300. 最长递增子序列&#xff08;中等&#xff09; 1.方法 dp[i]…

开源 Golang 微服务入门三:ORM 框架 GORM

前言 前两篇笔记分别介绍了 Golang 微服务 HTTP 框架 Hertz 和 Golang 微服务 RPC 框架 Kitex&#xff0c;本文将要介绍面向ORM(持久层)框架 GORM。 官方文档 GORM 是面向 Golang 语言的一种 ORM(持久层)框架&#xff0c;支持多种数据库的接入&#xff0c;例如 MySQL&#x…

【TCP/IP】多进程服务器的实现(进阶) - 僵尸进程及wait、waitpid函数

目录 僵尸(Zombie)进程 僵尸进程的产生机制 僵尸进程的危害 僵尸进程的销毁 wait函数 waitpid函数 进程管理在网络编程中十分重要&#xff0c;如果未处理好&#xff0c;将会导致出现“僵尸进程”&#xff0c;进而影响服务器端对进程的管控。 僵尸(Zombie)进程 第一次听到…

继万物分割SAM之后,万物识别模型RAM来了!

Recognize Anything: A Strong Image Tagging Model 提出“识别万物模型”&#xff08;Recognize Anything Model&#xff0c;RAM&#xff09;&#xff0c;用于图像打标签。RAM 可以高精度地识别任何常见类别。RAM 引入了图像打标签的一个新范式&#xff0c;利用大规模的图像-文…

如何在RPC和RESTful之间做选择?

不同软件系统之间的通信可以通过RPC&#xff08;远程过程调用&#xff09;或RESTful&#xff08;表现层状态转移&#xff09;协议来建立&#xff0c;这些协议允许多个系统在分布式计算中协同工作。 这两种协议在设计哲学上有所区别。RPC使得可以像调用本地过程一样调用服务器上…

AI时代已经到来,不想被抛弃,特别是传统产业的你,怎么办?

由于ChatGTP的惊人表现&#xff0c;本来已经趋于平淡的AI&#xff0c;又火爆起来。毫无疑问&#xff0c;人类已经进入了AI时代&#xff0c;AI将渗入到各行各业&#xff0c;渗入到生活与工作的每个方面。这是一场新的工业革命&#xff0c;很多工作都将消失&#xff0c;但也会产生…

【Python】Python进阶系列教程-- Python3 MySQL - mysql-connector 驱动(三)

文章目录 前言创建数据库连接创建数据库创建数据表主键设置 插入数据批量插入查询数据where 条件语句排序Limit删除记录更新表数据删除表 前言 往期回顾&#xff1a; Python进阶系列教程-- Python3 正则表达式&#xff08;一&#xff09;Python进阶系列教程-- Python3 CGI编程…

记录--7 个沙雕又带有陷阱的 JS 面试题

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 为了保证的可读性&#xff0c;本文采用意译而非直译。 在 JS 面试中&#xff0c;经常会看到一些简单而又沙雕的题目&#xff0c;这些题目包含一些陷阱&#xff0c;但这些在我们规范的编码下或者业务中…

基于BP神经网络的轨迹跟踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

NLP(1):Introduction

文章目录 Why process textChallengesText processingword, sentence, document, corpus, tokenProcessing stepsSentence segmentationWord TokenizationMaxMatch AlgorithmSubword Tokenization &#xff08;BPE&#xff09;BPE 算法 Word NormalizationStop Words Remove Wh…

数据分析第17课seaborn绘图

关系型绘图 seaborn.relplot() 这个函数功能非常强大,可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图(散点图是看到变量与变量之间相关性最优的一个图形),也可以绘制线性图,具体绘制什么图形是通过kind参数来决定的。实际上以下两个函数就是relplot的特例…

Vue2 事件的默认和传播行为、事件修饰符

前言 在学习vue2时&#xff0c;学到了 事件修饰符&#xff0c;但是对事件的默认行为和传播行为不太理解&#xff0c;所以也就是不知道为啥要使用事件修饰符&#xff0c;所以找了一些资料&#xff0c;在此记录一下。 Vue2官方文档 事件处理 — Vue.js (vuejs.org)https://v2.…

【 Python 全栈开发 - WEB开发篇 - 29 】MySQL初步

文章目录 一、MySQL介绍二、SQL语言三、MySQL安装与配置第一步&#xff1a;下载压缩文件第二步&#xff1a;解压第三步&#xff1a;配置第四步&#xff1a;登录 一、MySQL介绍 MySQL 是一个开源的关系型数据库管理系统&#xff0c;它使用 Structured Query Language&#xff0…