Mapbox NavigationController not showing route
I'm using mapbox for navigation, My issue is when I present NavigationController
sometimes the route is not showing in the map and when i close my app and reopen it, it's working fine.
Here is My code to showing the NavigationController
:
let options = NavigationRouteOptions(waypoints: [origin, destination], profileIdentifier: MBDirectionsProfileIdentifier.automobile)
Directions.shared.calculate(options) { (waypoints, routes, error) in
if error != nil {
}
guard let route = routes?.first else {
print("Empty")
return
}
self.navViewController = NavigationViewController(for: route, directions: Directions.shared, styles: [CustomNightStyle()], locationManager: NavigationLocationManager()) //NavigationLocationManager() SimulatedLocationManager(route: route)
self.navViewController?.mapView?.delegate = self
self.navViewController?.delegate = self
self.wayPointLocation.append(origin)
self.addChildViewController(self.navViewController!)
self.navigationView.addSubview((self.navViewController?.view)!)
self.navViewController?.view.translatesAutoresizingMaskIntoConstraints = false
Route not showing : But route directions and arrows are showing in map
My Question is : how i can identify that route is displayed or not?
ios swift mapbox
add a comment |
I'm using mapbox for navigation, My issue is when I present NavigationController
sometimes the route is not showing in the map and when i close my app and reopen it, it's working fine.
Here is My code to showing the NavigationController
:
let options = NavigationRouteOptions(waypoints: [origin, destination], profileIdentifier: MBDirectionsProfileIdentifier.automobile)
Directions.shared.calculate(options) { (waypoints, routes, error) in
if error != nil {
}
guard let route = routes?.first else {
print("Empty")
return
}
self.navViewController = NavigationViewController(for: route, directions: Directions.shared, styles: [CustomNightStyle()], locationManager: NavigationLocationManager()) //NavigationLocationManager() SimulatedLocationManager(route: route)
self.navViewController?.mapView?.delegate = self
self.navViewController?.delegate = self
self.wayPointLocation.append(origin)
self.addChildViewController(self.navViewController!)
self.navigationView.addSubview((self.navViewController?.view)!)
self.navViewController?.view.translatesAutoresizingMaskIntoConstraints = false
Route not showing : But route directions and arrows are showing in map
My Question is : how i can identify that route is displayed or not?
ios swift mapbox
1
Why aren't you checking the error parameter?
– Magnas
Nov 23 '18 at 11:26
@Magnas error param is nil, i get route data as well, but route not showing in map
– Pratik Prajapati
Nov 23 '18 at 11:41
add a comment |
I'm using mapbox for navigation, My issue is when I present NavigationController
sometimes the route is not showing in the map and when i close my app and reopen it, it's working fine.
Here is My code to showing the NavigationController
:
let options = NavigationRouteOptions(waypoints: [origin, destination], profileIdentifier: MBDirectionsProfileIdentifier.automobile)
Directions.shared.calculate(options) { (waypoints, routes, error) in
if error != nil {
}
guard let route = routes?.first else {
print("Empty")
return
}
self.navViewController = NavigationViewController(for: route, directions: Directions.shared, styles: [CustomNightStyle()], locationManager: NavigationLocationManager()) //NavigationLocationManager() SimulatedLocationManager(route: route)
self.navViewController?.mapView?.delegate = self
self.navViewController?.delegate = self
self.wayPointLocation.append(origin)
self.addChildViewController(self.navViewController!)
self.navigationView.addSubview((self.navViewController?.view)!)
self.navViewController?.view.translatesAutoresizingMaskIntoConstraints = false
Route not showing : But route directions and arrows are showing in map
My Question is : how i can identify that route is displayed or not?
ios swift mapbox
I'm using mapbox for navigation, My issue is when I present NavigationController
sometimes the route is not showing in the map and when i close my app and reopen it, it's working fine.
Here is My code to showing the NavigationController
:
let options = NavigationRouteOptions(waypoints: [origin, destination], profileIdentifier: MBDirectionsProfileIdentifier.automobile)
Directions.shared.calculate(options) { (waypoints, routes, error) in
if error != nil {
}
guard let route = routes?.first else {
print("Empty")
return
}
self.navViewController = NavigationViewController(for: route, directions: Directions.shared, styles: [CustomNightStyle()], locationManager: NavigationLocationManager()) //NavigationLocationManager() SimulatedLocationManager(route: route)
self.navViewController?.mapView?.delegate = self
self.navViewController?.delegate = self
self.wayPointLocation.append(origin)
self.addChildViewController(self.navViewController!)
self.navigationView.addSubview((self.navViewController?.view)!)
self.navViewController?.view.translatesAutoresizingMaskIntoConstraints = false
Route not showing : But route directions and arrows are showing in map
My Question is : how i can identify that route is displayed or not?
ios swift mapbox
ios swift mapbox
edited Nov 23 '18 at 12:37
asked Nov 23 '18 at 11:19
Pratik Prajapati
677519
677519
1
Why aren't you checking the error parameter?
– Magnas
Nov 23 '18 at 11:26
@Magnas error param is nil, i get route data as well, but route not showing in map
– Pratik Prajapati
Nov 23 '18 at 11:41
add a comment |
1
Why aren't you checking the error parameter?
– Magnas
Nov 23 '18 at 11:26
@Magnas error param is nil, i get route data as well, but route not showing in map
– Pratik Prajapati
Nov 23 '18 at 11:41
1
1
Why aren't you checking the error parameter?
– Magnas
Nov 23 '18 at 11:26
Why aren't you checking the error parameter?
– Magnas
Nov 23 '18 at 11:26
@Magnas error param is nil, i get route data as well, but route not showing in map
– Pratik Prajapati
Nov 23 '18 at 11:41
@Magnas error param is nil, i get route data as well, but route not showing in map
– Pratik Prajapati
Nov 23 '18 at 11:41
add a comment |
1 Answer
1
active
oldest
votes
I found it :).
After navigation map is loaded, I get event from MGLMapViewDelegate
delegate method mapViewDidFinishLoadingMap
.
And inside mapViewDidFinishLoadingMap
i checked mapview style layer property.
if let _ = vcNav.mapView?.style?.layer(withIdentifier: "routeLayer") {
print("Found ::")
} else {
print("Not Found ::")
vcNav.mapView?.removeRoutes()
vcNav.mapView?.removeWaypoints()
vcNav.mapView?.showRoutes([vcNav.route])
vcNav.mapView?.showWaypoints(vcNav.route)
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53445724%2fmapbox-navigationcontroller-not-showing-route%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I found it :).
After navigation map is loaded, I get event from MGLMapViewDelegate
delegate method mapViewDidFinishLoadingMap
.
And inside mapViewDidFinishLoadingMap
i checked mapview style layer property.
if let _ = vcNav.mapView?.style?.layer(withIdentifier: "routeLayer") {
print("Found ::")
} else {
print("Not Found ::")
vcNav.mapView?.removeRoutes()
vcNav.mapView?.removeWaypoints()
vcNav.mapView?.showRoutes([vcNav.route])
vcNav.mapView?.showWaypoints(vcNav.route)
}
add a comment |
I found it :).
After navigation map is loaded, I get event from MGLMapViewDelegate
delegate method mapViewDidFinishLoadingMap
.
And inside mapViewDidFinishLoadingMap
i checked mapview style layer property.
if let _ = vcNav.mapView?.style?.layer(withIdentifier: "routeLayer") {
print("Found ::")
} else {
print("Not Found ::")
vcNav.mapView?.removeRoutes()
vcNav.mapView?.removeWaypoints()
vcNav.mapView?.showRoutes([vcNav.route])
vcNav.mapView?.showWaypoints(vcNav.route)
}
add a comment |
I found it :).
After navigation map is loaded, I get event from MGLMapViewDelegate
delegate method mapViewDidFinishLoadingMap
.
And inside mapViewDidFinishLoadingMap
i checked mapview style layer property.
if let _ = vcNav.mapView?.style?.layer(withIdentifier: "routeLayer") {
print("Found ::")
} else {
print("Not Found ::")
vcNav.mapView?.removeRoutes()
vcNav.mapView?.removeWaypoints()
vcNav.mapView?.showRoutes([vcNav.route])
vcNav.mapView?.showWaypoints(vcNav.route)
}
I found it :).
After navigation map is loaded, I get event from MGLMapViewDelegate
delegate method mapViewDidFinishLoadingMap
.
And inside mapViewDidFinishLoadingMap
i checked mapview style layer property.
if let _ = vcNav.mapView?.style?.layer(withIdentifier: "routeLayer") {
print("Found ::")
} else {
print("Not Found ::")
vcNav.mapView?.removeRoutes()
vcNav.mapView?.removeWaypoints()
vcNav.mapView?.showRoutes([vcNav.route])
vcNav.mapView?.showWaypoints(vcNav.route)
}
answered Nov 24 '18 at 8:07
Pratik Prajapati
677519
677519
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53445724%2fmapbox-navigationcontroller-not-showing-route%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Why aren't you checking the error parameter?
– Magnas
Nov 23 '18 at 11:26
@Magnas error param is nil, i get route data as well, but route not showing in map
– Pratik Prajapati
Nov 23 '18 at 11:41