Prettymapp - StreamlitウェブアプリでOpenStreetMapデータを使って地図を生成
(github.com/chrieke)- Prettymapp は、OpenStreetMapデータで地図を作成するウェブアプリ兼Pythonパッケージで、StreamlitアプリとPythonコードの両方で地図生成をサポート
- prettymaps を書き直したプロジェクトで、ウェブアプリ向けの設定と速度に重点を置いている
- より複雑な設定オプションを減らし、速度改善、コードの複雑さの低減、簡素化された設定インターフェースを採用し、部分的にテストを行い、Streamlit のウェブアプリコンポーネントを追加
- ウェブアプリは prettymapp.streamlit.app ですぐに使え、ローカルでは
uv sync --extra streamlitの後にuv run streamlit run streamlit-prettymapp/app.pyで実行 - Pythonパッケージは
pip install prettymappでインストールし、get_aoi,get_osm_geometries,Plot,STYLESを使って領域定義、OSMデータのダウンロード、地図レンダリング、画像保存を行う - デフォルトスタイルは
Peach,Auburn,Citrus,Flannelの4種類で、draw_settingsとPlot引数のshape,contour_widthなどでスタイルとレイアウトを調整 get_osm_geometries_from_xmlにより openstreetmap.org などからエクスポートした OSM XML ファイルをプロットでき、LANDCOVER_CLASSES設定で表示するOSM landcoverクラスの選択を変更可能
1件のコメント
Hacker News のコメント
自分で試せる: https://wfcmzortl5n8cqhdowr6dm.streamlit.app/
pip install -r requirements.txtpip install -r requirements-dev.txtpip install -r streamlit-prettymapp/requirements.txtstreamlit run streamlit-prettymapp/app.pystreamlitコマンドは3つ目のrequirements.txtがインストールしてくれる。マカオの地図はちゃんと表示されるが、Creating map... (may take up to a minute)で止まるので、OSM API キーが効いていないのか気になった追記: OSM 要素がかなり多い地域では、単に非常に遅いだけのようだ。実際には OSM を幾何オブジェクトに変換する段階で、40万個のオブジェクトを変換しようとして止まっている
追記 2: https://github.com/chrieke/prettymapp/issues/26
自分の都市名を使うと妥当なデフォルトとして中心街が使われるが、うちの近所はそこからかなり遠いので、かなり縮小しないと地図に出てこない
get_aoiを呼び出すときに住所の代わりに座標を使えるhttps://github.com/chrieke/prettymapp/blob/main/prettymapp/g...
これが本当に書き直しなのか、単なる翻案なのか確信が持てない。ライセンスを変更できない可能性もあるので注意が必要
この分野で良いツールと地図を使って事業を築こうとしている良い会社で、オープンソースにも大きく貢献している。複数のツールがオープンソースなので自分でホストすることも可能。Web サイトにはテーマ別地図の例もなかなか良いものがある
主流の関数型プログラミングは OCaml/Haskell になると期待していたが、実際には関数型の性格を持つ JavaScript ライブラリである React になった。即時モード GUI は imgui を期待していたが、Gradio/Streamlit のような形で来た感じがする。自分で使ったことはないが、ざっと見るとそう感じる