Underground location (in subway) doesn't update properly

We (at the NYC MTA) are building a new subway/bus app and diving deep into location tracking on iOS. We’re encountering an issue with how Core Location functions in the subway, specifically regarding how long it takes to update a passenger’s location as they travel from station to station.

As an example, please see this video: https://drive.google.com/file/d/1yaddkjyPEETvTEmClPAJ2wks8b-_whqB/view?usp=sharing

The red dot is set manually (via a tap gesture) and represents the ground truth of where the phone actually is at that moment. The most critical moment to observe is when the train physically arrives at a station (i.e., when I can see the platform outside my window). At this moment, I update the red dot to the center of the station on the map. Similarly, I adjust the red dot when the train departs a station, placing it just outside the station in the direction of travel.

The trip shown is from Rector St to 14 St. All times are in EST.

I’d like to investigate this issue further since providing a seamless underground location experience is crucial for customers. As a point of comparison, Android phones exhibit near-perfect behavior, proving that this is technically feasible. We want to ensure the iOS experience is just as smooth.

Presumably this is sufficiently deep that there is zero GPS signal.

How do you believe that the Android system is determining the location?

It's either using cell phone triangulation (there are microcells in all our subway stations) or SSIDs (there is wifi in all our stations).

I agree, it's definitely not GPS.

If you would like to discuss your specific use case in detail, and for us to share some additional information, please open a support request at https://developer.apple.com/contact/request/code-level-support/ and reference this forum thread in the "Did someone from Apple ask you to submit ..." section

Underground location (in subway) doesn't update properly
 
 
Q