Skip to content

Repository files navigation

LooFree

一个轻量、移动端优先的欧洲免费厕所 Web App。

已实现

  • 基于 OpenStreetMap 的交互地图
  • 使用 Overpass API 查询附近公共厕所
  • 只把明确标注 fee=no 的厕所认定为“确认免费”
  • 将未提供费用数据的厕所单独标为“费用未知”
  • 排除 access=private、access=no 和 access=customers
  • 欧洲城市及地标搜索
  • 浏览器定位、距离排序、无障碍筛选
  • 开放时间、管理方、步行导航和 OSM 原始数据入口
  • 桌面和手机响应式布局

本地运行

需要 Node.js 20.19+ 或 22.12+。

npm install
npm run dev

生产构建:

npm run build
npm run preview

数据说明

厕所数据来自 OpenStreetMap,通过公共 Overpass API 实时查询。地点搜索使用 OpenStreetMap Nominatim。公共服务可能有速率限制,正式上线前建议增加自己的缓存/API 代理,并遵守 OSM、Overpass 和 Nominatim 的使用政策与署名要求。

后续封装 iOS / Android

当前项目是标准 Vite + React 单页应用,可以后续接入 Capacitor:

  1. 安装 @capacitor/core、@capacitor/cli、@capacitor/ios 和 @capacitor/android。
  2. 将 Capacitor 的 webDir 指向 dist。
  3. 增加原生定位权限说明和外部导航适配。
  4. 接入缓存代理、收藏和用户纠错后,再准备商店发布。

发布

项目通过 Cloudflare Workers Static Assets 发布,配置文件是 wrangler.jsonc,生产域名为 https://loo.naassh.com。

npm run deploy

About

欧洲免费厕所地图:基于 OpenStreetMap 的轻量 Web App

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages