Browse Source

Map Provider / Type choice is back

QGC4.4
Pierre TILAK 6 years ago
parent
commit
aa5584db57
  1. 3
      src/FlightMap/FlightMap.qml
  2. 4
      src/QtLocationPlugin/QGCMapUrlEngine.cpp
  3. 21
      src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc
  4. 4
      src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h
  5. 21
      src/ui/preferences/GeneralSettings.qml

3
src/FlightMap/FlightMap.qml

@ -95,8 +95,7 @@ Map {
function updateActiveMapType() { function updateActiveMapType() {
var settings = QGroundControl.settingsManager.flightMapSettings var settings = QGroundControl.settingsManager.flightMapSettings
//var fullMapName = settings.mapProvider.value + " " + settings.mapType.value var fullMapName = settings.mapProvider.value + " " + settings.mapType.value
var fullMapName = settings.mapProvider.value
console.log("updateActiveMapType",fullMapName) console.log("updateActiveMapType",fullMapName)
for (var i = 0; i < _map.supportedMapTypes.length; i++) { for (var i = 0; i < _map.supportedMapTypes.length; i++) {

4
src/QtLocationPlugin/QGCMapUrlEngine.cpp

@ -36,6 +36,8 @@ UrlFactory::UrlFactory() : _timeout(5 * 1000) {
// BingMaps // BingMaps
//_versionBingMaps = "563"; //_versionBingMaps = "563";
// Warning : in _providersTable, keys needs to follow this format : "Provider Type"
#ifndef QGC_NO_GOOGLE_MAPS #ifndef QGC_NO_GOOGLE_MAPS
_providersTable["Google Street Map"] = new GoogleStreetMapProvider(this); _providersTable["Google Street Map"] = new GoogleStreetMapProvider(this);
_providersTable["Google Satellite"] = new GoogleSatelliteMapProvider(this); _providersTable["Google Satellite"] = new GoogleSatelliteMapProvider(this);
@ -532,7 +534,7 @@ QString UrlFactory::getTypeFromId(int id) {
return i.key(); return i.key();
} }
} }
qCDebug(QGCMapUrlEngineLog) << "getTypeFromId : id not found" << id qCDebug(QGCMapUrlEngineLog) << "getTypeFromId : id not found" << id;
return ""; return "";
} }

21
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc

@ -216,6 +216,27 @@ QGCMapEngineManager::mapList()
{ {
return getQGCMapEngine()->getMapNameList(); return getQGCMapEngine()->getMapNameList();
} }
//-----------------------------------------------------------------------------
QStringList
QGCMapEngineManager::mapProviderList()
{
// Extract Provider name from MapName ( format : "Provider Type")
QStringList mapList = getQGCMapEngine()->getMapNameList();
mapList.replaceInStrings(QRegExp("^([^\\ ]*) (.*)$"),"\\1");
mapList.removeDuplicates();
return mapList;
}
//-----------------------------------------------------------------------------
QStringList
QGCMapEngineManager::mapTypeList()
{
// Extract type name from MapName ( format : "Provider Type")
QStringList mapList = getQGCMapEngine()->getMapNameList();
mapList.replaceInStrings(QRegExp("^([^\\ ]*) (.*)"),"\\2");
mapList.removeDuplicates();
return mapList;
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
quint32 quint32

4
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h

@ -43,6 +43,8 @@ public:
Q_PROPERTY(QString tileSizeStr READ tileSizeStr NOTIFY tileSizeChanged) Q_PROPERTY(QString tileSizeStr READ tileSizeStr NOTIFY tileSizeChanged)
Q_PROPERTY(QmlObjectListModel* tileSets READ tileSets NOTIFY tileSetsChanged) Q_PROPERTY(QmlObjectListModel* tileSets READ tileSets NOTIFY tileSetsChanged)
Q_PROPERTY(QStringList mapList READ mapList CONSTANT) Q_PROPERTY(QStringList mapList READ mapList CONSTANT)
Q_PROPERTY(QStringList mapProviderList READ mapProviderList CONSTANT)
Q_PROPERTY(QStringList mapTypeList READ mapTypeList CONSTANT)
Q_PROPERTY(quint32 maxMemCache READ maxMemCache WRITE setMaxMemCache NOTIFY maxMemCacheChanged) Q_PROPERTY(quint32 maxMemCache READ maxMemCache WRITE setMaxMemCache NOTIFY maxMemCacheChanged)
Q_PROPERTY(quint32 maxDiskCache READ maxDiskCache WRITE setMaxDiskCache NOTIFY maxDiskCacheChanged) Q_PROPERTY(quint32 maxDiskCache READ maxDiskCache WRITE setMaxDiskCache NOTIFY maxDiskCacheChanged)
Q_PROPERTY(QString errorMessage READ errorMessage NOTIFY errorMessageChanged) Q_PROPERTY(QString errorMessage READ errorMessage NOTIFY errorMessageChanged)
@ -77,6 +79,8 @@ public:
quint64 tileSize () { return _imageSet.tileSize + _elevationSet.tileSize; } quint64 tileSize () { return _imageSet.tileSize + _elevationSet.tileSize; }
QString tileSizeStr (); QString tileSizeStr ();
QStringList mapList (); QStringList mapList ();
QStringList mapProviderList ();
QStringList mapTypeList ();
QmlObjectListModel* tileSets () { return &_tileSets; } QmlObjectListModel* tileSets () { return &_tileSets; }
quint32 maxMemCache (); quint32 maxMemCache ();
quint32 maxDiskCache (); quint32 maxDiskCache ();

21
src/ui/preferences/GeneralSettings.qml

@ -160,11 +160,11 @@ Rectangle {
QGCLabel { QGCLabel {
text: qsTr("Map Provider") text: qsTr("Map Provider")
width: _labelWidth width: _labelWidth
//visible: _mapProvider.visible
} }
QGCComboBox { QGCComboBox {
id: mapCombo id: mapCombo
model: QGroundControl.mapEngineManager.mapList model: QGroundControl.mapEngineManager.mapProviderList
Layout.preferredWidth: _comboFieldWidth Layout.preferredWidth: _comboFieldWidth
onActivated: { onActivated: {
_mapProvider = textAt(index) _mapProvider = textAt(index)
@ -175,6 +175,23 @@ Rectangle {
mapCombo.currentIndex = index mapCombo.currentIndex = index
} }
} }
QGCLabel {
text: qsTr("Map Type")
width: _labelWidth
}
QGCComboBox {
id: mapTypeCombo
model: QGroundControl.mapEngineManager.mapTypeList
Layout.preferredWidth: _comboFieldWidth
onActivated: {
_mapType = textAt(index)
QGroundControl.settingsManager.flightMapSettings.mapType.value=textAt(index)
}
Component.onCompleted: {
var index = mapTypeCombo.find(_mapType)
mapTypeCombo.currentIndex = index
}
}
QGCLabel { QGCLabel {
text: qsTr("Stream GCS Position") text: qsTr("Stream GCS Position")

Loading…
Cancel
Save