1 Star 0 Fork 0

fmy_xfk / location-display

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

location-display 位置显示程序

介绍

该仓库的内容为“基于百度地图的位置显示程序”,可以在百度地图上显示静态目标和动态目标。动态目标的更新采用HTTP POST方法或者简单的TCP通信实现。如下图所示,三色箭头为动态目标(称为marker),红色气泡为静态目标(称为location)。动态目标的各项信息会显示与左侧的侧边栏中。 img1

软件架构

该仓库分为服务端(/server)和开发人员客户端(/client)两个部分。服务端使用Node.js+Express+EJS编写,页面中使用了JQuery来辅助开发。开发人员客户端仅供开发调试使用,采用Python编写,使用了requests库模拟上传/下载文件、更新动态目标位置和查询动态目标位置的功能。

安装教程

  1. 安装Node.js;
  2. 克隆本仓库到服务器,并进入/server文件夹;
  3. 使用npm install命令安装项目所需的包;
  4. 键入npm run dev以调试模式启动本项目;
  5. 本项目默认占用805249端口,可在/server/bin/www中修改httpPorttcpPort的值;
  6. 不建议将该项目用于生产环境。 如果需要使本项目连续运行,可以使用npm install -g pm2来安装pm2进程管理工具,再通过pm2 start bin/www启动项目。

使用说明:服务端

A. 首次使用
  1. 先去百度地图开放平台申请一个JavaScript API的密钥(AccessKey, AK);
  2. 登录管理员账户(用户名admin,密码admin#123),单击导航栏“设置”一项,进入如下界面; img2
  3. 输入申请到的AK,单击“设置”按钮,显示设置成功后,单击上方“主页”即可正常使用;
  4. 如果不需要使用发送模拟器,可以取消选中图片中的复选框。
B. 动态目标更新

更新动态目标的位置有两种方法:

方法1: 通过TCP协议向服务器5249端口发送消息。

消息格式如下所示:

S|数字UID编号|纬度,N/S(北纬/南纬),精度,E/W(东经/西经),海拔,M,气压,P,X角速度,Y角速度,Z角速度,X加速度,Y加速度,Z加速度,模式标记(a/S/E/A)

例如:

S|1|32.1,N,118.5,E,36.7,M,101463.0,P,1.00,2.00,3.00,1.00,2.00,3.000,S

方法2: 通过HTTP协议向服务器URL/api/update发送POST请求。

请求体应当如下设置:

{
    'uid':数字UID编号,
    'newdata':要更新的内容,即TCP消息的第三部分
}

例如:

{
    'uid':1,
    'newdata':'32.1,N,118.5,E,36.7,M,101463.0,P, 1.00,2.00,3.00,1.00,2.00,3.000,S'
}

动态目标的方向无法手动设定,系统会根据两次位置的差异自动计算方向。

C. 消息转发

通过TCP协议更新动态目标时,支持数据转发。转发目标应当向服务器5249端口发送字母B,以开始接收转发消息;通过再次发送字母D,可以停止接收转发消息。转发消息的内容只是将首字母S改为F,其他内容不变。

D. 动态目标初始位置和静态目标位置的设定

单击导航栏“设置”一项进入的页面中,有相关内容的设置,单击按钮可以进入编辑页面。

img3

在上图中Name为名称(无实际作用),IconID表示箭头样式(支持0~4),UID为TCP通信时使用的编号,InitAngle为初始角度(12点方向为零度,顺时针为正),InitLng为初始经度(东经),InitLat为初始纬度(北纬),操作一栏的按钮为删除键(一旦点击,会不经确认直接删除!)。

img4

为了编辑静态目标,Name为名称(在地图tooltip上显示),Lng为经度(东经),Lat纬度(北纬),操作一栏的按钮为删除键(一旦点击,会不经确认直接删除!)。

E. 文件管理

本系统具备单一文件的管理功能。

管理员界面如下,可以下载该文件当前版本和历史版本,上传该文件的新版本(上传的文件会被自动重命名为“日期_时间.db”)。可以编辑已有文件的文件名或者删除之。

img5

普通用户界面如下,只能下载当前版本的文件。

img6

F. 用户管理

默认用户列表如下:

用户名 密码
admin admin#123
user001 user001123
user002 user002123
user003 user003123

管理员用户(admin)可以在用户管理界面添加、删除用户(一旦点击,会不经确认直接删除!),或者修改他们的密码。为了放置admin账户出现问题,该界面不能删除或修改admin账户。界面如下:

img7

使用说明:开发人员客户端

对于一般用户,直接从浏览器访问即可,无需使用开发人员客户端!

  1. 启动服务器;
  2. 设置config.ini中的内容,即服务器地址,用户名,密码; img8
  3. 根目录(/client)下有4个python文件,分别是下载文件(test_download)、上传文件(test_upload)、更新动态目标(test_update)和查询动态目标位置(test_query)的示例代码。需要先安装requests库以实现http请求的发送。
MIT License Copyright (c) 2023 fmy_xfk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于百度地图的位置显示程序 展开 收起
JavaScript 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/fmy_xfk/location-display.git
git@gitee.com:fmy_xfk/location-display.git
fmy_xfk
location-display
location-display
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891