>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Kotlin

散歩をコミットに変え、OpenStreetMapを気軽に支援する方法

近所を歩いているとき、お気に入りのカフェが閉店しているのに地図にはまだ表示されていることに気づいた経験はありませんか?あるいは、中庭に素晴らしい遊び場ができたのに、ナビには何も表示されていないことはありませんか?通常、そこで思考は止まります。OpenStreetMap(OSM)エディタの深い世界——タグ、レイヤー、特定の構文——に週末の夜を費やすのは、考えものです。

StreetCompleteプロジェクトはその常識を変えます。地図データの精査をシンプルなクエストの連続に変えるAndroidアプリです。GISの専門家である必要も、amenity=cafeshop=coffeeの違いを知る必要もありません。

StreetComplete

StreetCompleteとは、そしてなぜ必要なのか

StreetCompleteは、フィールド利用に特化したオープンソースのOSMエディタです。核となるアイデアは、建物や道路のジオメトリを描画しない(それはモニターの前で行う方が簡単)代わりに、地図に属性データを追加するというものです。

ほとんどの地図が抱える問題は、細部のデータがすぐに古くなることです。通りの名前が変わることはめったにありませんが、交差点の点字ブロック、公園の小道の表面素材、小さな店の営業時間——これらは常に変化しています。StreetCompleteはそんな「空白部分」を見つけて、ユーザーに記入を促します。

クエストの仕組み

アプリを開くと、現在位置のデータがダウンロードされ、地図にクエストアイコンが表示されます。各クエストは具体的な質問です。

例えば:

  • この建物には住所番号がありますか?
  • この道路の表面は?アスファルト、砂利、敷石?
  • この横断歩道は音声信号を備えていますか?
  • この入り口には車椅子用ランプがありますか?

インターフェースで適切なオプションを選択するか、テキストを入力するだけで、アプリが自動的に正しい changeset を形成し、代わりに OSM データベースに送信します。XML や複雑なタグ付け schemes を扱う必要はありません。

プロジェクトの技術的な側面

このプロジェクトは Kotlin で書かれており、精力的に開発されています。リポジトリで注目すべきポイント:

  1. クエストアーキテクチャ。各クエストは独立したモジュールで、質問が表示される条件(既存のタグによる SQL 風のフィルター)と回答フォームのロジックを記述しています。
  2. オフライン動作。アプリがデータをキャッシュするため、森林に入って樹種やトレイルの表面タイプをマッピングしても、帰宅後に Wi-Fi で編集内容をアップロードできます。
  3. AR 測定。最近のバージョンでは、增强現実を使って建物の高さや道路の幅を測定する機能が追加されました。

ちなみに、開発者は現在プロジェクトをマルチプラットフォームに активно 移植中で、StreetComplete がようやく iOS にも登場することになるでしょう。これはリポジトリのチケットでフォローできる大規模な作業です。

開発者が注目すべき理由

コントリビュート先のプロジェクトを探しているなら、StreetComplete は素晴らしい候補です。まず、非常に明確な構造を持っています。其次、参入障壁が低く、インターフェースの翻訳やシンプルなクエストの作成から始められます。

単に良いことをしたい人のために:OpenStreetMap を良くする 가장 빠른 方法です。プロプライエタリな地図とは異なり、OSM データはすべての人に属します。あなたの編集は Maps.me、Organic Maps、OsmAnd、そしてその他の数千的服务に反映されます。

誰が役立つか

このアプリは、 많이 걸 다니거나 자전거를 타는 사람들에게 most 어필할 것입니다。日常の通勤を小さなゲームに変えてくれます。

もちろん、制限もあります。地図にまだ存在しない全く新しいオブジェクト(例えば、今できたばかりの建物)を追加することはできません。そのためには、JOSM や iD などの本格的なエディタを使う必要があります。しかし、近隣地域の「整理整頓」とデータの更新に関しては、StreetComplete に並ぶものはありません。

アプリは Google Play または F-Droid からダウンロードできます。コードを読みたい거나独自のクエストを提案したい場合は、GitHub のリポジトリを確認してください。プロジェクトは活発で、毎日コミットが来ており、コミュニティは新規参加者を喜んで支援しています。

関連プロジェクト