Problemi con Google Maps e Qml



  • Buongiorno a tutti,

    onestamente non so più dove sbattere la testa, mi sto portando dietro questo problema da mesi ormai e ora ho bisogno di trovare una soluzione o quanto meno un'alternativa.
    Ho bisogno di avere la mappa satellitare nel mio programma ma:

    • Il programma è stato compilato con MinGw quindi non posso usare QWebEngine, ed è impossibile in questo stadio avanzato passare a MSVC.
    • Ho provato ad utilizzare il QWebKit con Windows 10 e Qt 5.10 ma non funziona (Qui il topic di riferimento).

    Detto ciò l'unica alternativa fattibile sembra sia il QML con il quale sono riuscito, tramite una libreria inserita seguendo questo topic, ad avere una mappa satellitare di google maps funzionante, ma solo in debug mode. Come spiego anche in quest'altro topic infatti, in release mode la mappa non viene mostrata. il che mi porta a pensare che:

    1. è un problema di ApiKey che non riesco a settare evidentemente.
    2. è un problema della libreria esterna(non so se possa essere possibile).

    Questo è il codice in QML:

    import QtQuick 2.7
    import QtQuick.Controls 1.4
    import QtQuick.Window 2.0
    import QtLocation 5.6
    import QtPositioning 5.6
    
    Rectangle {
        id: mainWindow
        width: 512
        height: 512
        visible: true
    
        ListModel{
            id:dummyModel
            ListElement {
                Latitude: 47.212047
                Longitude: -1.551647
                Label: "something"
                Orientation: 0
                Color:"transparent"
            }
       }
    
        Plugin {
            id: googleMaps
            name: "googlemaps" // "mapboxgl", "esri", ...
            // specify plugin parameters if necessary
             PluginParameter {
                 name:"googlemaps.maps.apikey"
                 value:"*******My Api Key*********"
             }
    
        }
    
        Map {
            id: myMap
            anchors.fill: parent
            plugin: googleMaps
            activeMapType: supportedMapTypes[1]
    
            center: QtPositioning.coordinate(59.91, 10.75) // Oslo
            zoomLevel: 14
    
            MapItemView{
                id:dynamicMapObject
                model: dummyModel
                delegate: MapQuickItem {
                    coordinate: QtPositioning.coordinate(Latitude,Longitude)
                    sourceItem:  Text{
                        width: 100
                        height: 50
                        text: model.Label
                        rotation: model.Orientation
                        opacity: 0.6
                        color: model.Color
                    }
                }
            }
    
            MapPolyline {
                    line.width: 3
                    line.color: 'green'
                    path: [
                        { latitude: 59.92, longitude: 10.77 },
                        { latitude: 59.96, longitude: 10.78 },
                        { latitude: 59.99, longitude: 10.76 },
                        { latitude: 59.95, longitude: 10.74 }
                    ]
            }
    
            MapCircle {
              //a static item (fixed real dimension) always at 100m east of the map center
              id:prova
              center: myMap.center.atDistanceAndAzimuth(100,90)
              opacity:0.8
              color:"red"
              radius:30
    
            }
        }
    
        Button{
            id:buttonMap
            text:"Click to add name"
            onClicked: {
                if(buttonMap.text == "Click to add name")
                {
                    buttonMap.text = "Click to cancel name"
                    myMap.activeMapType = myMap.supportedMapTypes[3]
                }
                else
                {
                    buttonMap.text = "Click to add name"
                    myMap.activeMapType = myMap.supportedMapTypes[1]
                }
            }
        }
    
        GroupBox{
               title:"map types"
               ComboBox{
                   model:myMap.supportedMapTypes
                   textRole:"description"
                   onCurrentIndexChanged: myMap.activeMapType = myMap.supportedMapTypes[currentIndex]
               }
         }
    }
    

    Qualcuno ha una soluzione o qualche alternativa per ciò?

    Grazie a tutti in anticipo.



  • non è un problema di apikey, è un problema di release. La soluzione la trovate qui https://forum.qt.io/topic/90126/problem-with-qml-and-google-maps-plugin/3


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.