news 2026/3/17 9:25:36

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

作者头像

张小明

前端开发工程师

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/3/15 17:08:11

Java扫码点餐系统:国际支付与多语言新突破

若要通过Java源码打造国际版扫码点餐系统&#xff0c;实现国际支付与多语言的新突破&#xff0c;可从以下技术架构和功能设计入手&#xff0c;结合实际业务需求进行开发或优化&#xff1a;一、技术架构&#xff1a;支撑全球化高并发与多语言适配后端框架Spring Boot 3.x Sprin…

作者头像 李华
网站建设 2026/3/15 13:17:11

同城自助KTV新体验:Java预约系统源码详解

同城自助KTV新体验&#xff1a;Java预约系统源码详解一、技术架构&#xff1a;微服务与边缘计算构建弹性底座微服务拆分与通信系统采用Spring Cloud框架&#xff0c;将核心功能拆分为用户服务、订单服务、设备服务、支付服务等独立模块。各服务通过RESTful API或Kafka消息队列实…

作者头像 李华
网站建设 2026/3/14 17:58:29

Java助力无人KTV:线上智能预约系统源码

以下是一套基于Java技术的无人KTV线上预约系统源码的核心架构与功能实现方案&#xff0c;涵盖技术选型、核心功能、性能优化及安全机制等方面&#xff1a;一、技术选型微服务架构&#xff1a;采用Spring Cloud Alibaba技术栈&#xff0c;将系统拆分为用户服务、订单服务、设备服…

作者头像 李华
网站建设 2026/3/14 15:51:23

同城约球新体验:Java赛事系统源码全攻略

Java赋能同城约球&#xff1a;赛事预约系统源码全攻略 一、系统架构设计&#xff1a;高并发与可扩展的基石 技术选型 后端框架&#xff1a;采用 Spring Boot 2.7 Spring Cloud 2021.x 构建微服务架构&#xff0c;支持独立部署与快速迭代。数据库&#xff1a; MySQL 8.0&…

作者头像 李华
网站建设 2026/3/15 15:23:23

SDK游戏盾核心功能与部署指南:5分钟实现游戏安全加速一体化

SDK游戏盾核心功能防DDoS攻击 实时检测并清洗流量攻击&#xff0c;支持TCP/UDP/HTTP/HTTPS协议防护&#xff0c;识别异常流量并自动触发防护策略。智能加速 基于全球节点部署的动态路由优化技术&#xff0c;自动选择最优路径降低延迟&#xff0c;提升玩家游戏体验。协议安全 加…

作者头像 李华
网站建设 2026/3/17 5:19:05

同行都在用的高防CDN究竟是什么?一文讲透核心原理与行业价值

高防CDN的定义与核心功能高防CDN&#xff08;高防御内容分发网络&#xff09;是结合CDN加速与DDoS防护能力的网络安全服务。其核心功能包括&#xff1a;分布式流量清洗&#xff1a;通过全球节点分散攻击流量&#xff0c;就近拦截恶意请求。智能负载均衡&#xff1a;动态分配用户…

作者头像 李华