4.0 KiB
4.0 KiB
会面点 Meeting Point
一个帮助多人寻找最佳聚会地点的地图应用。输入多个参与者的位置,自动计算几何中心,并在中心点附近搜索咖啡馆、餐厅、KTV 等聚会场所。
✨ 功能特点
-
📍 多点位置设置
- 通过地址搜索添加位置
- 直接在地图上点击添加位置
- 支持输入提示和自动补全
-
🎯 智能中心计算
- 使用球面几何算法计算多点中心
- 准确计算地球曲面上的几何中心
-
🔍 周边搜索
- 支持自定义搜索关键词
- 可调节搜索半径(500米-10公里)
- 预设常用场所类型(咖啡馆、餐厅、KTV等)
-
🗺️ 地图可视化
- 深色主题地图
- 清晰的标记和信息展示
- 搜索范围可视化
🚀 快速开始
前置要求
- Go 1.21+
- 高德地图开发者账号和 Web 服务 API Key
获取高德地图 API Key
- 访问 高德开放平台
- 注册/登录开发者账号
- 进入「控制台」→「应用管理」→「创建新应用」
- 添加 Key,选择「Web 服务」类型
- 复制生成的 Key
安装步骤
- 克隆项目
git clone https://github.com/yourusername/meeting-point.git
cd meeting-point
- 安装依赖
go mod download
- 配置 API Key
复制配置文件模板并填入你的 Key:
cp config.example.json config.json
编辑 config.json:
{
"amap_key": "你的高德地图API_Key",
"port": "8080"
}
或者使用环境变量:
export AMAP_KEY="你的高德地图API_Key"
export PORT="8080"
- 启动服务
go run main.go
- 访问应用
打开浏览器访问 http://localhost:8080
📖 使用说明
添加位置
有两种方式添加参与者位置:
- 搜索添加:在左侧搜索框中输入地址或地点名称,从下拉列表中选择
- 点击添加:直接在地图上点击想要添加的位置
搜索聚会地点
- 添加至少 2 个位置点
- 在「搜索类型」中输入或选择想要查找的场所类型
- 调整搜索半径
- 点击「搜索最佳会面点」按钮
查看结果
- 地图上会显示计算出的中心点(金色星星标记)
- 搜索到的场所会以绿色标记显示
- 左侧列表会显示详细信息,点击可在地图上定位
🏗️ 技术架构
后端
- Go - 高性能后端语言
- Gin - Web 框架
- 高德地图 Web API - 地理编码、POI 搜索
前端
- 原生 JavaScript - 无框架依赖
- 高德地图 JS API - 地图展示和交互
- CSS3 - 现代化 UI 设计
API 端点
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | / |
主页面 |
| GET | /api/config |
获取配置 |
| POST | /api/geocode |
地址转坐标 |
| POST | /api/center |
计算中心点 |
| POST | /api/search |
搜索周边 POI |
| GET | /api/tips |
输入提示 |
📁 项目结构
meeting-point/
├── main.go # 后端主程序
├── go.mod # Go 模块文件
├── go.sum # 依赖锁定文件
├── config.json # 配置文件(需创建)
├── config.example.json # 配置文件模板
├── README.md # 项目说明
├── templates/
│ └── index.html # 前端页面模板
└── static/
├── css/
│ └── style.css # 样式文件
└── js/
└── app.js # 前端逻辑
🔧 配置说明
config.json
{
"amap_key": "高德地图API Key",
"port": "服务端口,默认8080"
}
环境变量
AMAP_KEY- 高德地图 API Key(优先级高于配置文件)PORT- 服务端口
📝 开发计划
- 添加路线规划功能
- 支持更多地图服务商
- 添加位置分享功能
- 移动端适配优化
- 添加历史记录功能
📄 许可证
MIT License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
