news 2026/2/25 2:02:34

做停车位置记录工具,停车后拍摄车位照片+定位,生成导航路线,支持语音唤醒查询,解决商场,小区找不到车位的麻烦。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
做停车位置记录工具,停车后拍摄车位照片+定位,生成导航路线,支持语音唤醒查询,解决商场,小区找不到车位的麻烦。

1. 实际应用场景描述

场景

在大型商场、写字楼、小区停车场停车后,很多人会遇到以下问题:

- 停完车后忘记具体位置,绕圈找车。

- 地下停车场结构复杂,楼层、区域编号难记。

- 手机信号差,地图定位不准。

- 双手提物时无法操作手机查询。

2. 痛点引入

1. 记忆负担:停车后需记住楼层、区域、车位号。

2. 环境复杂:光线暗、标识不清,导致回程迷路。

3. 操作不便:双手提物或下雨天不方便看手机。

4. 定位不准:GPS 在室内信号弱,地图导航失效。

3. 核心逻辑讲解

1. 数据层:

- 停车记录(照片路径、GPS 坐标、楼层、区域、时间戳)存储在本地数据库(SQLite)或 JSON 文件中。

2. 业务逻辑:

- 停车后拍摄车位照片 + 自动获取 GPS 定位。

- 保存记录并生成唯一 ID。

- 回程时通过语音唤醒查询最近停车记录。

- 调用地图 API 生成步行导航路线。

3. 展示层:

- 移动端 Web 页面或桌面端 GUI 展示地图与导航。

4. 创新点(智能时代下的创新课程思路):

- 语音交互:支持 “Hey Park” 唤醒查询。

- 室内定位增强:结合蓝牙信标或 Wi-Fi 指纹(如有)。

- AR 导航:未来可扩展为 AR 实景指引。

- 社区共享:匿名分享停车场热点区域,帮助他人避堵。

4. 代码模块化设计

parking_locator/

├── app.py # Flask 主程序(提供 API 与 Web 界面)

├── data/

│ └── parking_records.json # 停车记录数据

├── models/

│ └── record.py # 数据模型

├── utils/

│ ├── location.py # 获取 GPS 坐标

│ ├── speech.py # 语音唤醒与识别

│ └── map.py # 调用地图 API 生成路线

├── static/

│ ├── uploads/ # 停车照片

│ └── style.css

├── templates/

│ ├── index.html # 首页

│ └── history.html # 历史记录页

├── requirements.txt

└── README.md

4.1

"record.py"(数据模型)

class ParkingRecord:

def __init__(self, id, photo_path, lat, lon, floor, area, timestamp):

self.id = id

self.photo_path = photo_path

self.lat = lat

self.lon = lon

self.floor = floor

self.area = area

self.timestamp = timestamp

4.2

"location.py"(获取定位)

import requests

def get_current_location():

# 使用免费 IP 定位(仅示例,真实项目可用 GPS 模块或手机定位)

try:

res = requests.get("https://ipapi.co/json/").json()

return res['latitude'], res['longitude']

except:

return None, None

4.3

"speech.py"(语音唤醒示例)

import speech_recognition as sr

def listen_for_wake_word(wake_word="停车"):

recognizer = sr.Recognizer()

with sr.Microphone() as source:

print("请说出唤醒词...")

audio = recognizer.listen(source)

try:

text = recognizer.recognize_google(audio, language="zh-CN")

if wake_word in text:

return True

except:

pass

return False

4.4

"app.py"(Flask 后端)

from flask import Flask, render_template, request, redirect, url_for

import json

import os

from datetime import datetime

from utils.location import get_current_location

app = Flask(__name__)

UPLOAD_FOLDER = 'static/uploads'

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

def load_records():

with open('data/parking_records.json', 'r', encoding='utf-8') as f:

return json.load(f)

def save_records(data):

with open('data/parking_records.json', 'w', encoding='utf-8') as f:

json.dump(data, f, ensure_ascii=False, indent=4)

@app.route('/')

def index():

records = load_records()

return render_template('index.html', records=records)

@app.route('/save', methods=['POST'])

def save_parking():

file = request.files['photo']

floor = request.form['floor']

area = request.form['area']

filename = file.filename

filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename)

file.save(filepath)

lat, lon = get_current_location()

records = load_records()

new_id = len(records) + 1

records.append({

"id": new_id,

"photo": f"uploads/{filename}",

"lat": lat,

"lon": lon,

"floor": floor,

"area": area,

"timestamp": datetime.now().isoformat()

})

save_records(records)

return redirect(url_for('index'))

@app.route('/navigate/<int:record_id>')

def navigate(record_id):

records = load_records()

record = next((r for r in records if r['id'] == record_id), None)

if record:

# 这里可调用地图 API 生成导航 URL

maps_url = f"https://www.google.com/maps/dir/?api=1&destination={record['lat']},{record['lon']}"

return redirect(maps_url)

return "记录未找到"

if __name__ == '__main__':

os.makedirs(UPLOAD_FOLDER, exist_ok=True)

app.run(debug=True)

4.5

"templates/index.html"(简化版)

<h1>停车位置记录</h1>

<form action="/save" method="post" enctype="multipart/form-data">

<input type="file" name="photo" accept="image/*" required>

<input type="text" name="floor" placeholder="楼层" required>

<input type="text" name="area" placeholder="区域" required>

<button type="submit">保存停车位置</button>

</form>

<h2>历史记录</h2>

{% for r in records %}

<div>

<img src="{{ url_for('static', filename=r.photo) }}" width="100">

<p>{{ r.floor }} - {{ r.area }}</p>

<a href="/navigate/{{ r.id }}">导航到这里</a>

</div>

{% endfor %}

**4.6

"requirements.txt"

Flask==2.3.0

requests==2.31.0

SpeechRecognition==3.10.0

pyaudio==0.2.11

5. README.md

# 停车位置记录工具

## 简介

停车后拍摄车位照片+定位,生成导航路线,支持语音唤醒查询,解决商场、小区找不到车位的麻烦。

## 安装与使用

1. 克隆项目

2. 安装依赖:`pip install -r requirements.txt`

3. 运行:`python app.py`

4. 访问 http://127.0.0.1:5000

## 功能

- 拍照+定位保存

- 历史记录查看

- 一键导航

- 语音唤醒(需麦克风)

## 注意

真实部署需考虑移动端适配与室内定位精度提升。

6. 使用说明

1. 停车后打开网页,上传车位照片并填写楼层、区域。

2. 系统自动保存 GPS 坐标与时间。

3. 回程时在电脑或手机上打开网页,点击“导航到这里”。

4. 语音唤醒功能可在终端运行

"speech.py" 测试。

7. 核心知识点卡片

知识点 说明

GPS 定位获取 使用 API 或设备传感器

语音识别 SpeechRecognition + Google API

数据存储 JSON 或 SQLite

Flask 文件上传 安全保存用户图片

创新营销思维 语音交互、AR 导航、社区共享

8. 总结

本项目通过 Python + Flask 实现了一个停车位置记录工具,结合了智能时代下的创新课程思路:

- 痛点驱动:解决停车后找车难、操作不便的问题。

- 数据驱动:照片+定位+结构化信息,确保可回溯。

- 可扩展性:可升级为移动 App、AR 导航、室内定位增强。

如果你愿意,可以升级为移动端 App(Kivy/Flutter),并集成蓝牙信标室内定位,让找车更精准。

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 23:03:38

计算机毕业设计之jsp农村信息服务平台

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的农村信息服务平台。当前的信息管理存在工作效率…

作者头像 李华
网站建设 2026/2/21 22:09:12

解锁国际餐饮市场:Java扫码点餐源码全攻略

若要利用Java源码打造国际版扫码点餐系统&#xff0c;解锁国际餐饮市场&#xff0c;可参考以下全攻略&#xff0c;涵盖技术架构、核心功能、全球化适配、部署扩展及未来趋势等方面&#xff1a;一、技术架构后端框架&#xff1a;采用Spring Boot 3.x与Spring Cloud Alibaba构建微…

作者头像 李华
网站建设 2026/2/12 0:11:51

Java打造无人KTV:线上预约系统源码全解析

以下是基于Java技术打造的无人KTV线上预约系统源码的全解析&#xff0c;涵盖技术架构、核心功能、性能优化及创新实践四个维度&#xff1a; 一、技术架构 微服务架构&#xff1a; 采用Spring Cloud框架&#xff0c;将核心功能拆分为用户服务、订单服务、设备服务、支付服务等独…

作者头像 李华
网站建设 2026/2/24 3:31:16

Java打造智能约球:同城赛事系统源码详解

以下是一套基于Java的同城赛事系统源码详解&#xff0c;涵盖技术架构、核心功能、关键代码示例及系统优势&#xff1a; 一、技术架构 后端框架&#xff1a;采用Spring Boot 3.0 Spring Cloud Alibaba 2022构建微服务架构&#xff0c;实现服务的高可用性、可扩展性和易维护性。…

作者头像 李华
网站建设 2026/2/24 13:36:20

别只知道 Postman!.NET 开发者必备的 7 款 API 调试工具

前言在前后端分离、微服务架构普及的当下&#xff0c;API 接口的设计、调试、测试与管理已成为研发流程的核心环节。一款高效的 API 工具&#xff0c;不仅能简化接口开发的繁琐步骤&#xff0c;还能打通团队协作链路&#xff0c;大幅提升研发效率。本文精选 7 款程序员常用的 A…

作者头像 李华