# iOS heading bug

**URL:** <https://forum.mapillary.com/t/ios-heading-bug/10362>\
**Category:** iOS\
**Created:** [May 4, 2026, 8:43am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362 "2026-05-04T08:43:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 4, 2026, 8:43am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/1 "2026-05-04T08:43:48Z")

</div>

I’ve been wondering about the heading bug that’s been causing iOS app captures when travelling above walking speed to have a 90 degree heading offset for months now. The Mapillary algorithm figures out the correct direction, and a separate corrected FOV cone is shown while viewing an affected image after processing.

So is there any reason that the green cones on the map can’t all show the true heading instead of whatever the capture-device’s sensors erroneously showed? A couple of years ago, another bug had every direction flipped 180 degrees. Working with imagery on OpenStreetMap would be easier if the true heading was shown automatically.

---

<div class="post-metadata">

**Author:** ![bob3bob3](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/bob3bob3/32/68393_2.png) [@bob3bob3](https://forum.mapillary.com/u/bob3bob3)\
**Post date:** [May 5, 2026, 3:28am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/2 "2026-05-05T03:28:39Z")

</div>

I am not a Mapillary iOS code user, but given the CLI tools interpolates image direction from the motion of one frame to the next by default, the iOS code may have the facility to force it. Is there a interpolate direction option?

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 5, 2026, 3:44am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/3 "2026-05-05T03:44:27Z")

</div>

Unfortunately not.

---

<div class="post-metadata">

**Author:** ![boris](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/boris/32/71767_2.png) [@boris](https://forum.mapillary.com/u/boris)\
**Post date:** [May 5, 2026, 4:12pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/4 "2026-05-05T16:12:58Z")

</div>

@wa_wheatbelt - yes, we are working on fixing this. When you say “Working with imagery on OpenStreetMap would be easier if the true heading was shown automatically.” - what environment are you looking at Mapillary imagery in, iD, or on [Mapillary.com](http://Mapillary.com) or something else?

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 5, 2026, 5:01pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/5 "2026-05-05T17:01:53Z")

</div>

Hi @boris and thanks for the comment. I’m mostly referring to using the iD editor for OSM. The trails of green cones all point in the direction of their image heading metadata instead of the direction that Mapillary’s algorithm has detected. So I don’t truly know which direction a Mapillary image in iD is facing without clicking on it, especially for those sequences that had a 180 degree offset. Hope that makes sense.

---

<div class="post-metadata">

**Author:** ![boris](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/boris/32/71767_2.png) [@boris](https://forum.mapillary.com/u/boris)\
**Post date:** [May 6, 2026, 12:32pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/6 "2026-05-06T12:32:56Z")

</div>

Got it - it looks like the iD editor is using the original exif orientation as opposed to the computed Mapillary orientation. We are working on a fix now to make the computed orientation significantly more reliable, and then we can submit a pull request for the iD editor to switch to show the computed orientation to fix the issue you’re describing. Please stay tuned 🙂

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 6, 2026, 12:53pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/7 "2026-05-06T12:53:44Z")

</div>

Awesome!! Thank you, @boris !

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 6, 2026, 2:19pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/8 "2026-05-06T14:19:52Z")

</div>

Me again. I forgot to mention this before, but Mapillary’s iOS app also shows the exif heading instead of the computed heading. Hopefully that could be changed as well. 🙏😁

---

<div class="post-metadata">

**Author:** ![boris](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/boris/32/71767_2.png) [@boris](https://forum.mapillary.com/u/boris)\
**Post date:** [May 6, 2026, 2:55pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/9 "2026-05-06T14:55:48Z")

</div>

Yes, good catch. We will switch both the iOS and Android apps to computed compass angle.

---

<div class="post-metadata">

**Author:** ![Anders](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/anders/32/55_2.png) [@Anders](https://forum.mapillary.com/u/Anders)\
**Post date:** [May 7, 2026, 1:40pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/10 "2026-05-07T13:40:56Z")

</div>

Hey @wa_wheatbelt,

I just released a new version of the iOS app which hopefully fixes any issues with image heading; both when capturing an image and also when viewing existing uploads (which now use the computed compass angle, CCA).

See [iOS: 6.11.0 is out (map rotation, blocked area updates, bug fixes)](https://forum.mapillary.com/t/ios-6-11-0-is-out-map-rotation-blocked-area-updates-bug-fixes/10367)

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 7, 2026, 1:48pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/11 "2026-05-07T13:48:26Z")

</div>

Thanks, @Anders !

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 7, 2026, 4:44pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/12 "2026-05-07T16:44:39Z")

</div>

Sorry to report that it hasn’t fixed it for me. I used 6.11 through TestFlight today for some captures, but it still had the wrong heading. I just downloaded the app from the AppStore, and old captures that were affected by the bug are still showing the incorrect heading.

> **[Mapillary](https://www.mapillary.com/app/?pKey=1741229913916692)**
>
> Street-level imagery, powered by collaboration and computer vision.

FYI, I’m using an iPhone 15 Pro, and I always keep iOS up to date.

---

<div class="post-metadata">

**Author:** ![GITNE](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/gitne/32/70659_2.png) [@GITNE](https://forum.mapillary.com/u/GITNE)\
**Post date:** [May 7, 2026, 5:52pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/13 "2026-05-07T17:52:13Z")

</div>

> [@boris](#):
>
> We will switch both the iOS and Android apps to computed compass angle.

Now, this is an unexpected move? 🫪 I have asked for a computed sequences layer on the web app last year but not much has happened. And now, out with “the old”, in with “the new” so quickly for Android and iOS? Since neither GPS metadata nor computed values are always perfect (though computed values usually tend to be closer to the truth, if reconstruction works properly), I would rather prefer a toggle for both layers (perhaps in the filter menu?) in the web app than one layer (or dataset) over the other. Both datasets provide distinct value.

---

<div class="post-metadata">

**Author:** ![boris](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/boris/32/71767_2.png) [@boris](https://forum.mapillary.com/u/boris)\
**Post date:** [May 8, 2026, 9:09am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/14 "2026-05-08T09:09:00Z")

</div>

@GITNE we’re making the change because we are landing a fix that will make computed compass angle significantly more accurate than it was previously. On the web you’ll still be able to see both, for simplicity on the mobile clients I think we’ll start with just the computed (to replace just exif), and would love your feedback once the fix goes out in a couple weeks.

---

<div class="post-metadata">

**Author:** ![Anders](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/anders/32/55_2.png) [@Anders](https://forum.mapillary.com/u/Anders)\
**Post date:** [May 8, 2026, 2:52pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/15 "2026-05-08T14:52:00Z")

</div>

There are two compass angles we need to pay attention to

1. The recorded angle that is stored in the image (raw angle, pre-upload)
2. What is displayed on the map (computed angle, post upload)

The bug fix in the latest app update addresses #1. If you do a new capture with the latest update, and before uploading, open the capture and look at the compass angle for a few photos, do they look correct or are they 90 degrees off?

#2 is also addressed, in the sense that it displays the computed compass angle, which might or might not be correct.

Regarding the existing capture that you linked, I think it looks correct to me (the computed compass angle, not the original angle, that is unchanged).

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 8, 2026, 3:45pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/17 "2026-05-08T15:45:09Z")

</div>

Thanks. My use of the word _heading_ actually comes from spending my teenage years obsessed with Microsoft Flight Simulator. 😂

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 8, 2026, 3:50pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/18 "2026-05-08T15:50:22Z")

</div>

Hi @Anders. The “recorded angle” is still offset 90 degrees for me, unfortunately. See screenshot of a sequence I captured today and am yet to upload.

 ![IMG_2676](https://us1.discourse-cdn.com/flex015/uploads/mapillary/original/3X/5/e/5ea7a982ac7d8cbf5de3df20df73d71228b26338.jpeg)

---

<div class="post-metadata">

**Author:** ![Anders](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/anders/32/55_2.png) [@Anders](https://forum.mapillary.com/u/Anders)\
**Post date:** [May 9, 2026, 7:23am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/19 "2026-05-09T07:23:31Z")

</div>

Yeah that looks incorrect, I’ll look into it again next week.

In which orientation did you have your phone? Was the top of the phone rotated to the left or to the right? Also, was orientation lock on or off?

---

<div class="post-metadata">

**Author:** ![wa\_wheatbelt](https://avatars.discourse-cdn.com/v4/letter/w/90db22/32.png) [@wa\_wheatbelt](https://forum.mapillary.com/u/wa_wheatbelt)\
**Post date:** [May 12, 2026, 9:27am UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/20 "2026-05-12T09:27:57Z")

</div>

Thanks.

Orientation lock was **off**. And I had the top of my phone rotated to the left.

---

<div class="post-metadata">

**Author:** ![Anders](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.mapillary.com/anders/32/55_2.png) [@Anders](https://forum.mapillary.com/u/Anders)\
**Post date:** [May 13, 2026, 12:59pm UTC](https://forum.mapillary.com/t/ios-heading-bug/10362/21 "2026-05-13T12:59:12Z")

</div>

I managed to reproduce the 90 degree error you have been experiencing on my iOS 26 device. It seems Apple changed how compass angle works on iOS 26.

On previous iOS versions, we had to add 90 degrees to compensate for landscape mode, but on iOS 26 it seems that this compensation is done on an OS level automatically, which IMO is much better, but in this case the compass angle was double-compensated. I normally do most of my testing on an iOS 18 device.

I will upload a build for Beta testing today hopefully. It would be great if you could test it before I roll it out to everyone. You don’t need to do a real capture though, just take 1-2 images manually and see how the compass angle looks.

[Next page](https://forum.mapillary.com/t/ios-heading-bug/10362.md?page=2)
