Skip to content

Conversation

@erikbohnsack
Copy link

@erikbohnsack erikbohnsack commented Jan 14, 2026

User description

Add functionality to mission-control tab so that users can either load or drag&drop Geo files (KML, GeoJSON, GPX) to the visualization of the map. Use open layers native layers functionality for the visualization.

This is based on the changes nicely contributed with in #2164, with some small changes for usability and clarity. This being a separate PR is mainly for simplicity due to the staleness of the previous one.


PR Type

New Feature


Description

  • Add drag-and-drop support for GEO files (KML, GeoJSON, GPX, IGC, TopoJSON)

  • Implement layer management UI with visibility toggle and delete functionality

  • Persist custom layers to electron store for session recovery

  • Display feature hover information on map with smooth opacity transitions

  • Add PlannerLayerControl button to map controls for layer management access


Diagram Walkthrough

flowchart LR
  A["GEO Files<br/>KML, GeoJSON, GPX"] -->|"Drag & Drop<br/>or Load"| B["DragAndDrop<br/>Interaction"]
  B -->|"Parse Features"| C["addGeoLayerToMap"]
  C -->|"Create VectorLayer"| D["Map Layers"]
  C -->|"Save to Store"| E["Electron Store"]
  E -->|"Load on Startup"| D
  D -->|"Display"| F["Layer Management UI"]
  F -->|"Toggle/Delete"| D
  D -->|"Hover Info"| G["Feature Display"]
Loading

File Walkthrough

Relevant files
New feature
mission_control.js
Layer management and GEO file support implementation         

tabs/mission_control.js

  • Import DragAndDrop interaction and GEO format parsers (GPX, GeoJSON,
    KML, IGC, TopoJSON)
  • Add layer management functions: updateLayerListUI(),
    saveLayerToDisk(), removeLayerFromDisk(), addGeoLayerToMap()
  • Create PlannerLayerControl class for map control button with layer
    management panel
  • Implement drag-and-drop interaction with feature parsing and layer
    creation
  • Add feature hover info display with pixel-based feature detection
  • Load previously saved layers from electron store on map initialization
  • Add file dialog handler for manual GEO file loading with format
    detection
  • Prevent interaction with custom overlay layers in marker edit handlers
+314/-0 
mission_control.html
Layer management UI and feature info display elements       

tabs/mission_control.html

  • Add layer management panel UI with load button and layer list
    container
  • Include drag-and-drop hint text in layer management section
  • Add geo_info display element for hover feature information
  • Position geo_info absolutely at bottom center of map with
    semi-transparent background
+22/-0   
Enhancement
mission_planer.css
CSS styling for layer controls and feature info display   

src/css/tabs/mission_planer.css

  • Add .mission-control-layers positioning styles for new layer control
    button
  • Adjust .geozone-settings positioning to accommodate new layer control
  • Add .layer-item hover effect with background color transition
  • Add #geo_info opacity transition styling for smooth feature info
    display
+22/-2   
Documentation
messages.json
Internationalization strings for layer management feature

locale/en/messages.json

  • Add i18n messages for layer management: layerManagementTitle,
    layerLoadGeoFile, layerDragDropHint
  • Add error messages: layerConfirmDelete, layerLoadError,
    layerParseError
+18/-0   

@github-actions
Copy link

Branch Targeting Suggestion

You've targeted the master branch with this PR. Please consider if a version branch might be more appropriate:

  • maintenance-9.x - If your change is backward-compatible and won't create compatibility issues between INAV firmware and Configurator 9.x versions. This will allow your PR to be included in the next 9.x release.

  • maintenance-10.x - If your change introduces compatibility requirements between firmware and configurator that would break 9.x compatibility. This is for PRs which will be included in INAV 10.x

If master is the correct target for this change, no action is needed.


This is an automated suggestion to help route contributions to the appropriate branch.

@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Jan 14, 2026

PR Compliance Guide 🔍

All compliance sections have been disabled in the configurations.

@erikbohnsack erikbohnsack changed the base branch from master to maintenance-9.x January 14, 2026 13:42
@erikbohnsack
Copy link
Author

@sensei-hacker

Please take a look on this one as I saw that you had marked #2164 for 9.1 .

A related question: Will this also go into master if it goes into maintenance-9.x branch or does that require a separate PR?

@erikbohnsack
Copy link
Author

Image with GeoJSON example:
image

Add functionality to mission-control tab so that users can
either load or drag&drop Geo files (KML, GeoJSON, GPX) to the
visualization of the map. Use open layers native layers
functionality for the visualization.
@erikbohnsack
Copy link
Author

@sensei-hacker kind reminder to take a look on this one :)

@sensei-hacker
Copy link
Member

sensei-hacker commented Jan 28, 2026

A related question: Will this also go into master if it goes into maintenance-9.x branch or does that require a separate PR?

No other PR needed.
master is a lagging copy of maintenance-9.x

maintenance-9.x and maintenance-10.x are the two branches that get PRs, depending on which version the change should go in.

master isn't really used, because when it was used people would get confused about what it was used for. 🙂
Periodically I merge maintenance-9.x to master, just so that people who branch from master don't have problems - so it will be the same as branching from maintenance-9.x

Then maintenance-9.x will be merged up to maintenance-10.x

Right now, I'm looking at merging only fixes for a possible 9.0.1, with no new enhancements, only fixes.
The I'll start merging enhancements and new features for 9.1

Speaking of branches, I see you did this work on your master branch.
Typically, people do a feature branch. So for example for PR #2526 I created a branch feature-gps-preset-ui , a new feature providing a "presets" UI for GPS settings.
Then I PR that new feature to maintenance-9.x. That allows you to work on another, different change in another branch, or pull someone else's change to test it, by having each in it's own branch.

@sensei-hacker sensei-hacker added New Feature Entirely new feature or major feature change Release Notes Add this when a PR needs to be mentioned in the release notes Testing required and removed Possible security concern labels Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

New Feature Entirely new feature or major feature change Release Notes Add this when a PR needs to be mentioned in the release notes Review effort 3/5 Testing required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants