LNM - OpenLayers Integration Roadmap #677
Replies: 7 comments 23 replies
-
Milestone 1 : LNM Web APIThe idea is to expose dynamic elements information (e.g. position and appearance of Airports, VOR's, the users aircraft etc.) which is currently being composed onto the LNM Marble image output, via a Web API. Requirements
ThoughtsCreating a strict API contract allows full separation of concerns between LNM and possible web UI implementations. Both sides could develop independently as long as they satisfy the contract. Related
Possible Solution
PR |
Beta Was this translation helpful? Give feedback.
-
Milestone 2 : LNM WMTS API (optional)The idea is to modify the LNM Marble image output web routes to satisfy a strict WMTS API definition in order to increase compatibility with mapping clients like OL. This could come in handy if OL should become abandoned/obsolete and would require replacement by another WMTS-capable mapping solution. However this should be considered optional as its map image retrieval would become obsolete with milestone 5. Possible Solution
|
Beta Was this translation helpful? Give feedback.
-
Milestone 3 : LNM Web UI OL Display IntegrationThe idea is to replace the existing web ui map display of the rendered Marble image from LNM by an OL implementation to remove the need for custom mapping and map navigation logic and to provide a popular map UX. LNM remains serving the Marble images as the map source but requested in multiple tiles like a WMTS server instead of a single image. Proof of Concept: KOKAProduktion/littlenavmap-openlayers first presented at #622 Requirements
RelatedPossible Solution
PR |
Beta Was this translation helpful? Give feedback.
-
Milestone 4 : Control LNM via Web APIThe idea is to extend the API established during milestone 1 by methods controlling LNM itself. This could for example provide simple functionality like changing the map theme or more complex processes like creating/modifying the flight plan. Or even add all functionaility the in-app Marble widget view offers for milestone 5. Requirements
Possible Solution
|
Beta Was this translation helpful? Give feedback.
-
Milestone 5 : Replacing LNM in-app Marble with an OpenLayers web viewThe idea is to replace the Marble dependency from the project to decrease build setup complexity and issues. If the solution from previous milestones proves itself reliable and satisfying it may serve as the replacement. ThoughtsAs i understand Marble and OL are solutions serving the same purpose (Mapping) in different languages/environments. They even have similar source adapters. Also i don't see any performance-critical obstacle which would disqualify an in-app web view based solution. The only crucial thing to find out would be how good/reliable the communication between the Qt WebView JS and the QT Application works in my opinion. RelatedPossible Solution
|
Beta Was this translation helpful? Give feedback.
-
Commitment@albar965 if you find that roadmap sketch sensible I could commit myself to milestones 1-3 on both Qt/C++ and JS parts but sadly without a specific time frame, not only for obvious reasons but also because some points still require a bit more specification. I've managed to build LNM, thankfully to your building instructions, but coming from the web and mobile apps world my Qt/C++ commits would certainly require reviews from a Qt/C++ pro. Also I'd probably have a lot of questions during the process :) For now I'd like to say, that the sources are pleasant to read! As for the milestones 4 and 5 i'd say, let's check again when we get there :) Also I'm totally open to split up the work @u-an-i. If you keen on particular parts, let's elaborate a more specific plan together! I'm looking forward to your comments. Have a nice evening! Cheers! |
Beta Was this translation helpful? Give feedback.
-
Oi! I cannot say that I do not like this approach. 🙂 What I like:
This will not be done in a year for sure. Just saying. 🙃 BSD license: Not sure if this is compatible with GPL. No idea. Any plans to use an UI framework like Vaadin? BTW: Very professional presentation! Like a lot. 👍 Alex |
Beta Was this translation helpful? Give feedback.
-
Hiho @albar965, hiho @u-an-i,
i finally got some thoughts together after diving deeper into LNM's structure, its repos, your discussions and the littlenavmap-openlayers implementations current state.
Wow, @u-an-i you're really tackling a lot! I admire your drive and ambition to modify/refactor and to introduce a lot of new ideas. I hope it's ok for you, if i present my current view mostly focused on the OpenLayers-related topics only and link to your proposals wherever they overlap. I'm sure we can manage to join forces to contribute something cool to @albar965's LNM project.
LNM - OpenLayers Integration Roadmap
At the time of writing LNM is serving the Marble rendered map image via the built in http-server for requesting web clients. The UI/UX logic for map interaction besides other features is a custom implementation.
OpenLayers (OL) is a web-based mapping framework written in JS under the BSD-2-Clause License providing the following features i.a.:
The following comments show a possible roadmap based on my review and assumptions. Please feel free to correct me and to add your thoughts on the topics!
Beta Was this translation helpful? Give feedback.
All reactions