桂院校园导航 云开发版本 配置及修改教程 2.3.x

发布于:2025-06-23 ⋅ 阅读:(15) ⋅ 点赞:(0)

代码仓库

Gitee:桂院校园导航小程序

GitHub:GLU-Campus-Guide

具体小版本号以推送记录的描述为准

更新日志

序号 模块 内容
1 【新增特性】 ①云开发项目实现多校区切换(将坐标、范围、默认地点等数据融入校区管理中)
②地图、搜索和热度页中均有多校区切换(只存在一个校区时不显示)
2 【优化】 ①云开发项目无需使用“地图参数获取工具”
②初始化时,云数据库集合只用创建,无需导入文件
③删除未使用的云函数
④格式化所有代码
⑤提取公共方法
3 【问题修复】
4 【其他】 ①清理无意义的控制台打印语句

0. 导入项目

一定要看 ↓
桂院校园导航 导入与配置教程
一定要看 ↑

将图片上传至云存储,获取图片链接,替换掉项目里原来的图片链接

​0.1 上传所有云函数

将 cloudfunctions云函数文件夹 下的 所有文件夹 - 右键 - 上传并部署

0.2 建立数据库集合

无需导入文件

序号 集合名称 描述
1 campus 校区
2 category 地点类型
3 site 地点
4 schoolguide 校园指南
5 media 媒体信息
6 admin 管理员

0.3 如果后续看不到图片,就修改存储的权限

1. 全局 app.json

app.json 中的 navigationBarTitleText 属性 是 全局的导航栏标题文字内容,自行修改

“navigationBarTitleText”: “xx校园导航”,

2. 数据 data/*

2.1 部分数据 data/data.js

这里存放 和风天气API、小程序名称 和 作者信息,自行修改
和风天气API调用方式改过,实在搞不起来,可以直接用我的

和风天气API申请教程

2.2 地图数据 data/map.js

这里存放 腾讯位置服务API、学校坐标 和 部分地图参数信息,自行修改

腾讯位置服务API记得申请额度

腾讯位置服务API申请教程

这里的学校坐标其实只用于天气API的位置传递

坐标拾取器

2.3 媒体数据 data/media.js

这里存放 图片、图标 的链接

将图片上传至云存储,获取图片链接,替换掉原来的图片链接

2.4 学校数据 data/school.js

这里存放 学校公众号二维码、小程序(没有可置空),以及学校信息

通过 wx.previewImage 接口实现 全屏预览(公众号二维码)图片

获取 公众号二维码 的方法

通过 wx.navigateToMiniProgram 接口实现 跳转外部小程序

获取 小程序 appId 的方法

前一个数组是公众号,后一个数组是小程序码
做成这样是为了更便捷地调整(可以置为空数组,也可以自行调整长度,从而显示对应数量的东西)

在这里插入图片描述

3. 图片

校徽(将新图片拖入images文件夹覆盖原图片),保持文件名(school_logo.png)不变

在这里插入图片描述

4. 首页 pages/home/home

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

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

首页的学校格言和荣誉,自行根据字数的多少,来使用和注释不同的css代码,实现一行两列或两行一列的效果


5. 地图 pages/map/map

这里暂时不用改什么,说下相关细节

考虑到会存在不同校区的路线规划,相关逻辑会变得复杂,故取消了地图边界的设定。需要的可以自行研究

地图边界:限制地图的显示范围,不能滑出这个范围。​通过 MapContext.setBoundary 接口实现

简单说明一下,判断当前位置是否在学校内部 的逻辑

​①先确定学校范围,即一个在地图上的,闭合的,边不交叉的多边形
②接着通过 wx.getLocation 接口获取当前的地理位置
③使用 射线法 判断点是否在多边形内,从而推断出 当前位置 是否在校区内

wx.getLocation接口 申请教程,如果实在搞不定接口,可以询问群友

射线法简要原理: 平面几何:判断点是否在多边形内(射线法)


再说下 自定义图层(就是覆盖在地图上的图片)

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

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

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

可以来比较一下,原始地图上不同学校的观感(都是100米标尺),简直是天壤之别

6. 更多 pages/more/more

去除了授权登录的全部代码,因为现在想要获取小程序用户头像昵称很麻烦

有需要的可以自行研究

小程序用户头像昵称获取规则调整公告

“特别说明”按钮中的说明信息 自行修改 ,若不用就删掉

“推荐给好友”按钮,之前是能转发,但目前我的小程序没法认证,就改成预览图片


接下来就是信息管理的内容了,主要就是说下如何进行管理

7. 地点相关 pages/manage/site/*

默认地点:定位不在学校时,地图显示的地点
学校范围:用来判断当前定位点是否在学校内部
这俩是必需的

地点类型和地点倒是没啥好说的,倒是校区需要注意一些东西

说下顺序
①先创建校区和地点类型(不然地点选不了这俩),再去创建地点
②创建地点后,回去校区管理,选定对应校区的默认地点(不然地图页会出问题)
③如果删除某个校区下的默认地点,需要重新选定其他地点作为默认地点

新增校区时
①填写经纬度后,才能选取校区范围,使用 坐标拾取器 获取
②关闭“使用图片”的话,地图页上就显示校区范围的多边形;打开的话,就显示这张图片
③图片的四边对应的经纬度,可以使用 ps和坐标拾取器 获取

坐标拾取器


关于校园地图图片

个人还是非常建议使用自定义图层图片的(校园地图图片),因为观感很好

大伙自行注意 图片版权

PS:
电脑端的小程序无法显示自定义图层,只能通过手机投屏或者安卓模拟器进行演示
因为是覆盖在腾讯地图上的,为了准确,最好以腾讯地图为参照进行图片处理

获取图片的方式无外乎几种:

①去 学校官网、官微、相关社团、网络、宣传手册、校园内 找找 手绘地图 / 电子地图 / 俯视地图 / 沙盘地图 / 学校区域示意图
如果有且比较规整,那可以直接或者改改就用

请添加图片描述

②去 天地图 / Google地图 / 百度地图 / 腾讯地图 / 高德地图 / 其他地图,截取卫星地图,之后可以投给AI进行优化(比如GPT-4o、豆包等工具的图片处理功能)
AI提示词:生成图片、图片风格为平面、图片风格为板绘、图片风格为手账…
之后简单扣个图,就能用了

在这里插入图片描述

实在搞不定,也没事,那就不用了

至于我的话,我是从学校宣传板上拍了张照片,接着用PS改出来的图片

8. 媒体管理 pages/manage/media/*

轮播图
①上传比例一致的图片,不然显示效果不好
②如果要确保顺序,建议一张一张地传,不然顺序会乱

视频
可传可不传

地点默认图片
新增地点时,如果不选择图片,那么会使用这的图片

9. 校园指南管理 pages/manage/schoolguide-list

这里其实用的是富文本(类似html的一种格式),当初是为了想实现换行才用了富文本

然后这里的名称、搜索关键词、内容,都可以在前面的校园指南页的搜索框去搜索

10. 管理员管理 pages/manage/admin-list

11. 其他

有个比较尴尬的情况,需要注意一下:

小程序没有发行,那别人看不到你的小程序

此时你只能去小程序后台,将对方添加为你的开发成员,再让他扫预览的二维码,这样才能访问小程序


到这里就结束啦,表扬一下优秀的你自己吧,能够把这么长的教程看完


网站公告

今日签到

点亮在社区的每一天
去签到