This document outlines potential future enhancements, features, and UI/UX improvements identified during the modernization of MaplatEditor to MaplatEditor-next.
Current state: Base maps are appended via tmsList.json and map-specific suppression rules are defined in tmsList.[mapID].json. Both currently require manual JSON file editing inside the settings directory.
Proposed improvement:
- Create a dedicated UI panel (e.g., in
MapEdit.vueor a newSettings.vuetab) to let users visually toggle which base maps should be visible/available for the currently edited historical map. - Migrate this configuration storage from standalone JSON files to the main database (e.g., NeDB or its successor) to ensure data integrity and easier querying.
Current state: The global list of custom base maps (tms_list.json in project root or tmsList.json in settings) is managed by manual file edits.
Proposed improvement:
- Build a "Base Map Manager" interface allowing users to Add/Edit/Delete custom TMS endpoints, complete with preview functionality and attribution fields.
Current state: The UI is being ported from a legacy Bootstrap 3/jQuery design to Vue 3/Bootstrap 5. Proposed improvements:
- State management: Use Pinia for complex state sharing across components instead of heavy prop drilling or global window variables.
- Componentization: Break down monolithic files like
MapEdit.vueinto smaller, reusable components (e.g.,LayerSettings.vue,CoordinateEditor.vue,MapToolbar.vue).
現状: TIN計算(Delaunay三角分割)は Electron のメインプロセス(Node.js)経由で @maplat/tin を実行しており、2000点超の大規模データで約7秒を要する。オリジナル実装と同等の速度ではあるが、実用的にはまだ遅い。
提案: @maplat/tin のコア計算ロジックを WASM 化、あるいは高性能な Delaunay 実装(d3-delaunay + WASM ラッパー等)へ差し替えることで、大幅な高速化が見込まれる。
Note: This document should be updated continuously as more areas for improvement are discovered during the porting process.