1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-24 16:55:24 +03:00

When use magnetometer, add North symbol to GPS position icon (#3484)

* Add North when use magnetometer

* Update src/js/tabs/map.js

Co-authored-by: Mark Haslinghuis <mark@numloq.nl>

---------

Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
This commit is contained in:
HThuren 2023-06-20 15:00:40 +02:00 committed by GitHub
parent 89b1bb9f80
commit 50554c1a80
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 42 additions and 18 deletions

View file

@ -2707,6 +2707,10 @@
"gpsFixFalse": {
"message": "False"
},
"gpsPositionUnit": {
"message": "deg",
"description": "Unit for GPS position."
},
"gpsAltitude": {
"message": "Altitude:"
},

View file

@ -40,6 +40,7 @@
"/js/libraries/openlayers/ol.css",
"/js/libraries/openlayers/ol.js",
"/images/icons/cf_icon_position.png",
"/images/icons/cf_icon_position_mag.png",
"/images/icons/cf_icon_position_nofix.png"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View file

@ -193,10 +193,11 @@ gps.initialize = async function (callback) {
$('.GPS_info span.colorToggle').text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse'));
$('.GPS_info span.colorToggle').toggleClass('ready', FC.GPS_DATA.fix != 0);
const gspUnitText = i18n.getMessage('gpsPositionUnit');
$('.GPS_info td.alt').text(`${alt} m`);
$('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} deg`);
$('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} deg`);
$('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} deg`);
$('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} ${gspUnitText}`);
$('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} ${gspUnitText}`);
$('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} ${gspUnitText}`);
$('.GPS_info td.speed').text(`${FC.GPS_DATA.speed} cm/s`);
$('.GPS_info td.sats').text(FC.GPS_DATA.numSat);
$('.GPS_info td.distToHome').text(`${FC.GPS_DATA.distanceToHome} m`);
@ -279,15 +280,16 @@ gps.initialize = async function (callback) {
$('#connect').hide();
if (FC.GPS_DATA.fix) {
gpsWasFixed = true;
gpsWasFixed = true;
message.action = hasMag ? 'centerMag' : 'center';
if (!!frame.contentWindow) {
frame.contentWindow.postMessage(message, '*');
frame.contentWindow.postMessage(message, '*');
}
$('#loadmap').show();
$('#waiting').hide();
$('#loadmap').show();
$('#waiting').hide();
} else if (!gpsWasFixed) {
$('#loadmap').hide();
$('#waiting').show();
$('#loadmap').hide();
$('#waiting').show();
} else {
message.action = 'nofix';
if (!!frame.contentWindow) {

View file

@ -1,13 +1,16 @@
const DEFAULT_ZOOM = 16,
DEFAULT_LON = 0,
DEFAULT_LAT = 0,
ICON_IMAGE = '/images/icons/cf_icon_position.png',
ICON_IMAGE_GPS = '/images/icons/cf_icon_position.png',
ICON_IMAGE_MAG = '/images/icons/cf_icon_position_mag.png',
ICON_IMAGE_NOFIX = '/images/icons/cf_icon_position_nofix.png';
let iconGeometry,
map,
mapView,
iconStyle,
iconStyleGPS,
iconStyleMag,
iconStyleNoFix,
iconFeature;
@ -33,11 +36,18 @@ function initializeMap() {
controls: [],
});
const icon = new ol.style.Icon(({
const iconGPS = new ol.style.Icon(({
anchor: [0.5, 1],
opacity: 1,
scale: 0.5,
src: ICON_IMAGE,
src: ICON_IMAGE_GPS,
}));
const iconMag = new ol.style.Icon(({
anchor: [0.5, 1],
opacity: 1,
scale: 0.5,
src: ICON_IMAGE_MAG,
}));
const iconNoFix = new ol.style.Icon(({
@ -47,8 +57,12 @@ function initializeMap() {
src: ICON_IMAGE_NOFIX,
}));
iconStyle = new ol.style.Style({
image: icon,
iconStyleGPS = new ol.style.Style({
image: iconGPS,
});
iconStyleMag = new ol.style.Style({
image: iconMag,
});
iconStyleNoFix = new ol.style.Style({
@ -60,7 +74,7 @@ function initializeMap() {
geometry: iconGeometry,
});
iconFeature.setStyle(iconStyle);
iconFeature.setStyle(iconStyleGPS);
const vectorSource = new ol.source.Vector({
features: [iconFeature],
@ -87,6 +101,8 @@ function processMapEvents(e) {
break;
case 'center':
case 'centerMag':
const iconStyle = e.data.action == 'centerMag' ? iconStyleMag : iconStyleGPS;
iconFeature.setStyle(iconStyle);
const center = ol.proj.fromLonLat([e.data.lon, e.data.lat]);
mapView.setCenter(center);

View file

@ -432,9 +432,10 @@ setup.initialize = function (callback) {
gpsFix_e.text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse'));
gpsFix_e.toggleClass('ready', FC.GPS_DATA.fix != 0);
const gspUnitText = i18n.getMessage('gpsPositionUnit');
gpsSats_e.text(FC.GPS_DATA.numSat);
gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} deg`);
gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`);
gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} ${gspUnitText}`);
gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} ${gspUnitText}`);
}
function get_fast_data() {