Prettymapp - Tạo bản đồ trong ứng dụng web Streamlit bằng dữ liệu OpenStreetMap
(github.com/chrieke)- Prettymapp là một ứng dụng web và gói Python để tạo bản đồ từ dữ liệu OpenStreetMap, hỗ trợ tạo bản đồ cả trong ứng dụng Streamlit lẫn bằng mã Python
- Đây là dự án viết lại prettymaps, tập trung vào cấu hình phù hợp với giao diện ứng dụng web và tốc độ
- Dự án chọn giảm bớt các tùy chọn cấu hình phức tạp, cải thiện tốc độ, giảm độ phức tạp của mã và đơn giản hóa giao diện cấu hình, đồng thời đã được kiểm thử một phần và bổ sung component ứng dụng web Streamlit
- Ứng dụng web có thể dùng ngay tại prettymapp.streamlit.app, còn trên máy cục bộ có thể chạy bằng
uv sync --extra streamlitrồiuv run streamlit run streamlit-prettymapp/app.py - Gói Python được cài bằng
pip install prettymapp, và dùngget_aoi,get_osm_geometries,Plot,STYLESđể định nghĩa khu vực, tải dữ liệu OSM, dựng bản đồ và lưu ảnh - Các kiểu mặc định gồm 4 loại:
Peach,Auburn,Citrus,Flannel; có thể điều chỉnh kiểu và bố cục bằngdraw_settingsvà các tham số củaPlotnhưshape,contour_width - Có thể vẽ từ tệp OSM XML được xuất từ openstreetmap.org v.v. bằng
get_osm_geometries_from_xml, và thay đổi việc chọn các lớp landcover OSM sẽ hiển thị bằng cấu hìnhLANDCOVER_CLASSES
1 bình luận
Ý kiến trên Hacker News
Bạn có thể tự thử tại: https://wfcmzortl5n8cqhdowr6dm.streamlit.app/
pip install -r requirements.txtpip install -r requirements-dev.txtpip install -r streamlit-prettymapp/requirements.txtstreamlit run streamlit-prettymapp/app.pyLệnh
streamlitđược cài bởi filerequirements.txtthứ ba. Bản đồ Macau hiển thị đúng, nhưng bị kẹt ởCreating map... (may take up to a minute), nên tôi thắc mắc liệu khóa API OSM có không hoạt động khôngCập nhật: Có vẻ ở những khu vực có khá nhiều phần tử OSM thì đơn giản là rất chậm. Thực ra nó đang kẹt ở bước chuyển OSM thành đối tượng hình học khi cố chuyển đổi 400 nghìn đối tượng
Cập nhật 2: https://github.com/chrieke/prettymapp/issues/26
Khi tôi dùng tên thành phố của mình, nó lấy trung tâm thành phố làm mặc định hợp lý, nhưng khu tôi ở khá xa chỗ đó nên nếu không thu nhỏ rất nhiều thì không hiện trên bản đồ
get_aoihttps://github.com/chrieke/prettymapp/blob/main/prettymapp/g...
Tôi không chắc đây thực sự là bản viết lại hay chỉ là bản phóng tác. Có thể không được đổi giấy phép, nên cần cẩn trọng
Đây là một công ty tốt đang cố xây dựng kinh doanh bằng các công cụ và bản đồ tử tế trong lĩnh vực này, đồng thời đóng góp đáng kể cho mã nguồn mở. Một số công cụ của họ là mã nguồn mở nên cũng có thể tự host. Trên website cũng có các ví dụ bản đồ theo chủ đề khá ổn
Tôi từng kỳ vọng lập trình hàm đại chúng sẽ là OCaml/Haskell, nhưng thực tế lại thành React, một thư viện JavaScript mang tính chất hàm; còn GUI immediate mode thì tôi từng kỳ vọng là imgui, nhưng có cảm giác nó đến dưới dạng như Gradio/Streamlit. Tôi chưa trực tiếp dùng, nhưng nhìn qua thì cảm thấy vậy