MapBox and HERE ok on OSX but not working on IOS
-
wrote on 14 Sept 2016, 09:28 last edited by
Hello, I have an application that displays a map with a Polyline overlay and the application builds and works as expected on OSX. When I build and deploy on IOS the application works and I get no new error messages but the map is simply blank. This happens whether I use MapBox or HERE. I was originally using MapQuest before the license change and MapQuest worked on IOS and OSX. I am using Qt 5.7.0 and QtLocation 5.6. I have included below some code extracts. I generate the Map in C++ then use the createMap() function to inject the code into the QML. The code is for MapBox but I have a HERE version which does the same thing. Any Help would be greatly appreciated. With no error message I'm not sure where to start!
import QtLocation 5.6; Map { anchors.fill: parent; plugin: mapBoxPlugin; MapPolyline { line.width: 3; line.color: 'green'; path: [ { longitude: -4.93616, latitude: 54.4058, altitude: 6123.53 }, { longitude: -4.93287, latitude: 54.4049, altitude: 6127.04 }, { longitude: -4.92937, latitude: 54.4039, altitude: 6129.64 }, { longitude: -4.92621, latitude: 54.4029, altitude: 6130.84 }, { longitude: -4.92267, latitude: 54.4019, altitude: 6132.23 }, { longitude: -4.91917, latitude: 54.4009, altitude: 6134.3 }, { lon gitude: -4.91596, latitude: 54.4, altitude: 6136.69 }, { longitude: -4.91248, latitude: 54.399, altitude: 6139.55 }, { longitude: -4.90894, latitude: 54.398, altitude: 6142.6 }, { longitude: -4.90577, latitude: 54.397, altitude: 6145.43 }, { longitude: -4. 9023, latitude: 54.396, altitude: 6148.65 }, { longitude: -4.89884, latitude: 54.395, altitude: 6151.95 }, { longitude: -4.89591, latitude: 54.3942, altitude: 6154.82 }, { longitude: -4.89323, latitude: 54.3934, altitude: 6157.52 }, { longitude: -4.88997, latitude: 54.3925, altitude: 6160.79 }]; } MapPolyline { line.width: 7; line.color: 'orange'; path: [ ]; } } function createMap(map) { var newObject = Qt.createQmlObject( map, eventMap, "dynamicMap"); newObject. fitViewportToMapItems(); return "eventMap - Done It!"; } Plugin { id: mapBoxPlugin name: "mapbox" PluginParameter { name: "mapbox.access_token"; value: "pk.RemovedActualToken!" } PluginParameter { name: "mapbox.map_id"; value: "mapbox.run-bike-hike" } }
-
wrote on 14 Sept 2016, 09:36 last edited by
You should register to mapbox and then take a real token for your app.
-
wrote on 14 Sept 2016, 09:40 last edited by
Thank you Nick. I do have a real Token and as I mentioned in my post the code works correctly in OSX. I just removed the real Token from the code.
-
wrote on 14 Sept 2016, 09:45 last edited by
Then you should see the permissions of the ios.
-
wrote on 14 Sept 2016, 09:47 last edited by AddTheBadd
How do I see the permissions of the ios? Do you know what permissions I need to check?
-
wrote on 14 Sept 2016, 10:31 last edited by NickV
You can see it using xcode. I don't know the exact permission of the ios. You could try using this:
Plugin{
id:myPlugin
name: "mapbox"
PluginParameter{
name: "mapbox.map_id";
value: "mapbox.streets"
}
PluginParameter{
name: "mapbox.access_token";
value: " your token"
}
}
As You can see the only difference is map id. Try it. -
wrote on 14 Sept 2016, 12:03 last edited by
I have just tried using mapbox.streets as the map_id. As before it works on OSX but gives me nothing on IOS. I get no error messages, no map tiles and no path.
-
wrote on 20 Sept 2016, 17:54 last edited by patrikd
Hi AddTheBadd,
did you find a solution for your problem? Same here, using the google plugin from vladest works perfect on android but under ios nothing is displayed and no error message :(
best,
patrik -
wrote on 18 Dec 2016, 01:07 last edited by
I had the same problem, but adding the following to the project's .pro file fixed the issue:
QT += qml quick positioning sensors location networkI had no errors before so no idea what was happening, but seems like just for iOS these are explicitly needed for the map plugin to work properly.