云上高校导航 小程序 开发教程

news2025/1/20 21:58:20

Gitee仓库:云上高校导航

GitHub仓库:云上高校导航

“云上高校导航”是一套基于小程序云开发的校园导航类系统开发方案,该开发方案可供开发者进行二次开发,用于解决师生和访客的校园出行需求。
 

项目优势及创新:

  • 使用小程序作为载体进行开发,免安装,即开即用;
  • 绘制校园地图并将其覆盖在电子地图上展示,使校园地点展示更加清晰明了;
  • 考虑到目标人群的实际需求,对地点进行分类,根据类别展示不同的地点;
  • 图文并茂展示介绍校园的方方面面,让用户在使用时感受到浓厚的校园氛围;
  • 将地图相关数据上云。同时移植数据管理功能到手机上,使数据管理更加便捷;
  • 项目及开发文档现已开源,可以进行二次开发以拓展到其他高校。

演示视频

中国大学生计算机设计大赛 云上高校导航 演示视频

开发教程

1. 全局 app.json

app.json 中的 navigationBarTitleText 属性 设置的是 全局的导航栏标题文字内容改成自己的。

"navigationBarTitleText": "云上高校导航"

2. 首页 pages/home

英文缩写 和 学校简称 ,自行修改

3. 学校简介 pages/school/introduction/introduction

轮播图 和 视频 是存在数据库里的,自行修改

下面 红框 圈出的地方写的是我的学校信息 校名 英文 和 学校风光 ,写死在页面里的, 自行修改。

下面 橙框 圈出的地方写的是我的学校信息 学校简介 ,引用 utils.js 里的数据, 自行修改。

4. 校园信息 pages/school/school

轮播图 和 学校简介页的是一样的, 是存在数据库里的,如果之前没改,自行修改

下面 红框 圈出的地方写的是我的学校信息(代码那没圈完,照着模拟器改就行),写死在页面里的, 自行修改

下面 橙框 圈出的地方是 校徽 ,引用 utils.js 里的数据, 自行修改


图标栏后面的两个功能按钮,自行更改,实现方式如下:

官微按钮是通过 wx.previewImage 接口实现(全屏预览图片)。

获取 公众号二维码 的方法

招生官微按钮也是 通过 wx.navigateToMiniProgram 接口实现(跳转外部小程序)。跳转“桂林学院 招生办”小程序。如果你学校没有招生小程序就换成学校别的小程序 或者 改成像楼上一样全屏预览图片(学校的官方图书馆、学生会或者什么的公众号)。

获取 小程序 appId 的方法

功能栏的“联系作者”功能按钮也是通过  wx.previewImage接口实现(全屏预览图片),自行修改为你自己的微信二维码。

功能栏的“获取openid”功能按钮,你获取了 openid 填入 云数据库 的 admin集合 的 openid字段 后,删掉或注释掉代码,不然这个会显得很奇怪。

底部的信息 自行修改​​​​​​​

5. 学校信息 pages/school/information/information

院系信息 和 部门联络电话 引用 utils.js 里的数据,院系信息是用list存储的,部门联络电话是用嵌套list存储的,比较好理解, 自行修改。

这里偷懒了没写进数据库,要是想写进数据库 自行修改 项目


天气功能是调用 和风天气API 实现。我的想法是只展示学校那的天气,所以相关的数据就写死了。

修改 wxml 的 红框 为 你自己学校所在地区

修改 js 的 红框 为 你自己学校的坐标(别把 经度 和 纬度 填反了!!!

坐标拾取器

如果你想搞那种根据定位获取天气,或者是展示更多天气的那种,可以参考下面的大佬的文章

微信小程序实现天气预报功能(支持自动定位)(附源码)

 6. 交通信息 pages/school/traffic/traffic

因为其中涉及到了多种颜色,不好写在until.js里引入使用。就将文字全部写死,自行修改

不同颜色的文字使用不同样式渲染。

7. 软件声明 pages/school/statement/statement

 自行修改   如果用到了 我的项目或代码 请在这里说明一下!谢谢 

 8. 管理界面 pages/admin/admin

如果你没有地图,就对地图管理的代码进行相应的删改。

可以尝试改为以下这种方式(如果你之前把学校信息页的院系信息和部门联络电话改为云开发,可以自行添加页面)。

接下来的都是地图相关的了。

9. 地点管理 pages/admin/manage-site/manage-site

对 类别 和 地点 进行重新设定

TIP:这里只是我的想法,没有测试过,不保证一定可行,想要尝试的话建议提前备份数据(数据库导出所有集合)。

① 提前准备好所有数据( 数据放 excel 或者 文档里,图片分类放 文件夹 里,能提高之后的操作效率 )

② 先清空 类别 和 地点 集合( 删掉集合再新建集合 )

③ 在 类别管理界面 新增 所有类别

④ 在 地点管理界面 新增 所有地点 ( 建议在 微信开发者工具 操作,使用 复制粘贴大法,这里先不要上传图片

如果在新增地点时就上传图片会让云存储变得乱七八糟。

如果你不介意的话,直接跳过看下一条(上面深蓝色的字就不用管,新增地点时就上传图片)。

如果你介意的话,可以思考下怎么保持下面的样子还能正常显示。

哈哈哈不卖关子了其实很简单,往下看就是了。

⑤把所有图片按类别分类放入文件夹并将整个文件夹上传到云存储(就像我仓库里那样)

⑥然后点进去,复制图片的 File ID(比如 二级学院 类别 下的 传媒学院 的 图片)

 ⑦进入数据库的 地点集合 ,找到 传媒学院 那条记录 ,将 img字段 用刚才复制的 File ID 覆盖修改就行(哪怕修改所有地点图片路径,也不会耗时很久哒)

当然 答辩项目演示时 就 用手机选择图片上传 就行,上面的做法只是为了美观、整齐、好管理。

10. 地图 pages/map/map

地图中心点坐标

 修改 红框 里的 经度纬度 为 你自己学校的坐标(别把 经度 和 纬度 填反了!!!

坐标拾取器


地图边界

地图边界是通过 MapContext.setBoundary 接口实现(限制地图的显示范围)。

 修改 红框 里的 西南角和东北角 的 经度纬度 为 你自己学校区域西南角和东北角的坐标(大概就行,选远一点也无妨)(别把 经度 和 纬度 填反了!!!

坐标拾取器


自定义图层(覆盖校园地图)

我使用这个是因为我的学校在腾讯地图上太干净了(啥都没有)。。。影响观感。

之后用PS画了三天三夜才画出来,真的痛苦。

可以来比较一下(都是100米标尺),简直是天壤之别

自定义图层是通过 MapContext.addGroundOverlay 接口实现(创建自定义图片图层,图片会随着地图缩放而缩放)。

自定义图层不会在 微信开发者工具上 显示,只能在手机端查看。

如果你的学校在地图上展示的效果很好就把 整个接口函数代码 删了。


判断所在位置是否在校区内

通过 wx.getLocation 接口获取当前的地理位置。将其中的 经度 纬度 进行判断,经度 和 纬度 在特定范围内,就说明 你的位置在校区内。


 (所在位置不在学校时的)默认坐标的修改

要修改 getdefaultsite 、 location 和 markertap 这三个自定义函数的部分代码。

getdefaultsite 自定义函数

我把默认位置设置为东门,就使用云函数从数据库 地点集合 中 找到 那个地点 的 类别编号 和地点编号。

修改 红框 里的 内容 为 你想要 设定的默认地点的名称(这个名称必须要确保在 地点集合中 存在!!!

location 自定义函数

自行更改图中的两处的内容

上面的是 地图标注点 的 气泡文本内容(左右的那个空格不要删,不然显示会有点奇怪)

 下面的是 消息提示框 的内容

markertap 自定义函数

默认地点是那个类别的第几个,就把那个数填入 红框 处

11. 地图选点 pages/admin/getpoint

地图相关的修改方法与 地图页的 差不多,就不赘述了。

欢迎补充!!!

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

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

相关文章

Flink 常用API(2)——转换算子+聚合算子

转换算子(Transformation) 映射(map) 用于将数据流中的数据进行转换,形成新的数据流 “一一映射”,消费一个元素就产出一个元素 参数:接口 MapFunction 的实现 方法:map 返回值…

C#串口通信从入门到精通(13)——多个串口发送数据

文章目录 前言1、多串口数据的发送2、源码前言 我们在开发串口通信程序时,有时候会需要连接不止一个串口,这时候该怎么写程序呢?本文就来介绍多个串口数据的发送 1、多串口数据的发送 我们在之前的专栏中介绍了串口数据的发送,当时有提到过,我们是通过创建一个SerialPo…

支付系统设计三:渠道网关设计06-业务处理

文章目录 前言一、业务服务工厂二、业务处理服务1. 业务处理服务2. 业务处理抽象服务3. 流量控制4. 报文提交4.1 获取交易的服务端通讯列表4.2 循环请求支付渠道4.2.1 报文组装4.2.2 报文发送4.2.2.1 协议处理器获取4.2.2.2 构建通讯客户端4.2.2.3 发送请求4.2.2.4 响应报文读取…

【rust】| 06——语言特性 | 所有权

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础 | 变量(不可变?)和常量 【rust】| 03——语法基础 | 数据类型 【rust】| 04——语法基础 | 函数 【rust】| 05——语法基础 | 流程控制 【rust】| 06——语言特…

论文/文章/课设 不会写 后端的实现方式?来试试这个吧!

起因 有朋友用了云开发,但是不太会写,老师也不太理解,就来询问我该怎么写(不要苛责老师古板,他们确实不一定能够立刻接受新东西) 用的不是云开发的也适用以下思路 思路 我们把后端开发类比成拧螺丝&…

非煤矿山电子封条 yolov7

非煤矿山电子封条通过yolov7python网络模型技术,非煤矿山电子封条可以对矿山主副井口、风井口、车辆出入口和调度室等全天候不间断实时分析预警,发现人员违规行为及异常设备状态立即告警。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研…

GitSVN区别及选型

1、结论先行 git更适用于纯代码仓库,优势在于分支管理svn则擅长于文件管理,优势在于目录级权限控制 2、版本管理发展历程 3、Git&SVN为何而生 Git出生于2005年,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版…

LeetCode 63 不同路径 II

题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左…

一款超级简洁的个人博客系统搭建教程(附源码)

开发环境 IDEA、jdk1.8、mysql8.33 开发框架 springboot 1.首先,确保已安装 Git 和 IntelliJ IDEA。如果你还没有安装 Git,请前往官网下载并安装 Git。 2.打开 IntelliJ IDEA,选择 “File” -> “New” -> “Project from Version Con…

Java面试知识点(全)- Java面试基础部分三

[Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 ThreadPoolExecutor 如果不了解这个类,应该了解前面提到的ExecutorService,开一个自己的线程池非常方便: Execut…

桂院导航小程序 静态项目 二次开发教程

Gitee代码仓库:桂院导航小程序 先 假装 大伙都成功安装了静态项目,并能在 微信开发者工具 和 手机 上正确运行。 接着就是 将项目 改成自己的学校。 代码里的注释我就不说明了,有提到 我的学校 的文字都改成你自己的就行 1. 全局 app.json…

吴恩达教你写提示词 ChatGPT prompt engineering

文章目录 吴恩达教你写提示词 ChatGPT prompt engineering1. 关键提示(prompt)原则1. 基础2. 编写明确和具体的提示词3. 给模型时间“思考”4. 模型的限制5. 迭代式提示(prompt)开发过程 2. 提示(prompt)一…

Ubuntu下通过Wine安装LTSpice 17.1.8

LTSpice LTSpice 是常用的电路模拟软件, 但是只有 Windows 版本和 Mac 版本, 在 Linux 下需要用 Wine 运行. 以下说明如何在 Ubuntu 下安装最新的 LTSpice 17.1.8 安装 下载 LTSpice 安装文件 下载地址: https://www.analog.com/en/design-center/design-tools-and-calcula…

51单片机也可以移植RTOS

说起RTOS移植,我们首先会想到32位单片机。 那么51单片机可以移植RTOS吗? 我的答案是,只要资源够用(ROM空间、RAM空间),可以移植。 前提是你对RTOS的实现原理非常清楚,并且可以自己完成移植工作…

国内免费cdn汇总2023最新

内容分发网络简称CDN,其原理大概是将网站内容分发至加速节点,让用户从就近的服务器节点上获取内容,从而提高网站的访问加载速度。大部分服务商(如阿里云,腾讯云,京东云等)的CDN服务是按使用量收…

在Linux开发板上安装HomeAssistant

1. 什么是Home Assistant Home Assistant 使用 Python3 开发的,是一个完整的 UI 管理的家庭自动化生态系统,它运行 Home Assistant Core、Home Assistant Supervisor 和附加组件。它预装在 Home Assistant OS 上,当然也可以安装在任何 Linux…

Android ConstraintLayout 使用入门

ConstraintLayout是Android中一个非常强大的布局管理器,它可以帮助我们快速创建复杂的布局,并且具有很好的性能和可扩展性。在本文中,我将从面试的角度,详细讲解ConstraintLayout的概念、特点、使用方法和示例。 概念 Constraint…

力扣19删除链表的倒数第 N 个结点:思路分析+图文全解+方法总结(快慢指针法递归法)+深入思考

文章目录 第一部分:题目描述第二部分:代码实现2.1 快慢指针法2.2 递归 第一部分:题目描述 🏠 链接:19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) ⭐ 难度:中等 第二部分&#…

Java【网络编程2】 详解基于 UDP 协议的 Socket API, 逐行代码解析如何网络编程

文章目录 前言一、认识 Socket(套接字), TCP 协议和 UDP 协议1, 什么是 Socket(套接字)2, 浅谈 TCP 协议和 UDP 协议的区别和特点 二、基于 UDP 协议的 Socket API1, DatagramSocket 类2, DatagramPacket 类 三、逐行代码解析网络编程1, 逐行解析客户端1.1, 核心成员方法 start…

(转载)从0开始学matlab(第2天)—MATLAB 变量的初始化

当变量初始化时,MATLAB 将会自动建立变量。有三种方式初始化 MATLAB 中的变量: 1 .用赋值语句初始化变量 2 .用 input 函数从键盘输入初始化变量 3 .从文件读取一个数据 前两种方法我们在这里讨论&#xff0c…