Skip to content

rowicy/charimachi

Repository files navigation

CHARIMACHI

CHARIMACHI

注位置点表示 違反率注意 快適度

デモ

デモ

動画

概要

安全、快適な車道通行ルートを提案する 自転車専用ナビアプリ CHARIMACHI

自転車利用者が安心して車道を走行できるよう支援するナビゲーションアプリを開発しました。自転車での移動を安全かつ快適に走行できるルートを検索・提示し、通行に適した道を優先的に案内します。さらに、交通安全に関する注意喚起として、事故が多発している場所や違反率が高い場所へのピン止めなどをすることで、事故や違反が身近にあるという認識を高め、車道通行の重要性理解を促進します。 注意喚起をするだけのサービスでは、重要性を理解されていない方々への普及は難しいと考え、日常的につかうナビゲーションアプリとすることで、安全な走行環境を提供しつつ、自転車の車道通行を社会に定着させることを目指します。

なぜこのサービスを作るのか

車道通行が根付かない要因として、事故や違反が身近にあるという認識が薄く、注意喚起を目にする機会も少ないため、その重要性を十分に理解していないこと、さらに安全に通行できない車道が存在し、安全・快適に自転車を走行できるルートが確認できないことにあると考えました。本サービスではこの二点の課題解決を目指します。

安全かつ快適とはどのような道か

  • 自転車専用帯が確保されている
  • 歩道内に自転車帯が確保されている
  • 車道の幅が広い
  • 信号待ちの回数が少ない
  • 路駐・路停車が少ない
  • 大型車両の通行量が多くない

(最後2項目は今回実装できないかもしれない要件)

機能

  • マップ表示
  • 現在地表示
  • 出発地・到着地の候補検索
  • ルート描画
    • 自転車専用帯優先
    • 駐輪所経由モード(オープンデータ)
    • バス停回避モード(オープンデータ)
    • 注意喚起
      • 取締強化交差点注意(オープンデータ)
      • 違反率別交差点注意(オープンデータ)
  • 経由地点表示
  • 所要時間表示
  • about画面・制作元・出典

使用オープンデータ・API

自転車専用帯優先

取締強化交差点注意(オープンデータ)

違反率別注意交差点(オープンデータ)

駐輪所経由モード

バス停回避モード

データ/API名 API提供 更新可能性 用途 リンク
自転車専用帯優先 (OpenRouteService) yes yes ルート検索時呼び出し OpenRouteService
取締強化交差点注意 (東京都オープンデータカタログ - 交通規制情報) yes yes 内部で加工データを保持 リンク
違反率別注意交差点 (交通量統計表) no yes 内部で加工データを保持,更新batch処理あり リンク
Overpass API yes - 内部データ加工用 Overpass API
駐輪所経由モード (東京都オープンデータカタログ - 駐輪場情報) yes yes ルート検索時呼び出し リンク
バス停回避モード (公共交通オープンデータ - 都営バス停留所データ) yes yes 内部で加工データを保持 リンク

構成図

アーキテクチャ

flowchart LR
    ClientApp[クライアントアプリ(Expo)] --ルート検索--> GoServer


    GoServer <--元ルートデータ--> OpenRouteService

    GoServer <--オープンデータ加工--> OpenData
    

    ClientApp[クライアントアプリ(Expo)] --描画--> OSM[OpenStreetMap]
    
Loading

処理の流れ

sequenceDiagram
    participant OSM as OpenStreetMap
    participant Client as クライアントアプリ (Expo)
    participant Go as Goサーバー
    participant ORS as OpenRouteService
    participant OD as OpenData

    Client->>Go: 経路リクエスト
    Go->>ORS: 経路探索リクエスト
    Client->>OSM: 地図データ取得
    OSM->>Client: 
    ORS->>Go: 経路データ返却
    Go ->> OD: データ取得
    OD ->>Go: 
    Go -->> Go: ルート変更・レスポンス情報追加
    Go->>Client: 経路・メタデータ返却
    Client-->>Client: 経路・ポイント描画
Loading

This is a template for mobile app development using:

This is a template for building APIs using:

This directory contains OpenAPI specifications swagger files. OpenAPI version 3.0 is used for the specifications, and the files are in JSON format.

To generate the OpenAPI definitions, run the following command from the repository root:

./generate-openapi.sh

This script will:

  1. Generate Swagger 2.0 documentation using swag init in the API directory
  2. Convert the Swagger 2.0 specification to OpenAPI 3.0.0 format
  3. Place the result in openapi-specifications/api.swagger.json
  4. Verify that React Native type generation and mock server commands work correctly

This is a configuration file for ls-lint, a linter for directory structures.
GitHub Actions are set up to run ls-lint on pull requests to ensure that the directory structure adheres to the defined rules.
For api and mobile-app directories, add settings for each directory, as they are ignored except for markdown files.

Clone

git clone --recurse-submodules https://github.com/rowicy/charimachi.git

Run on debug mode

make run_api_dev
make run_mobile_app

About

A mobile app that suggests safe and comfortable routes for cyclists.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •