Thanks for your comments.
For more advanced rotation information required by world-scale AR use cases, you might want to use the low-level motion sensors Accelerometer, Gyroscope, and Magnetometer based on the Generic Sensor API instead. These APIs are already available in Chrome as experimental features, see the related article for more information.
The heading attribute inherits its semantics from the Geolocation API and represents the direction of travel in degrees counting clockwise relative to the true north. It caters for simpler use cases such as navigation that need to orientate the map with the direction of travel. It might also work for some very basic world-scale AR use cases.
The proposed Geolocation Sensor specification is agnostic with respect to location information sources, as noted in the specification:
Note: An implementation can use multiple location information sources to acquire geolocation information, and this specification is agnostic with respect to those sources.
That is to say, an implementation can choose the most appropriate means to acquire location, e.g. use GPS outdoors and switch to some other indoor positioning mechanism when indoors, or use any combination of the available mechanisms. These are implementation details, and as such out of scope for this specification.
What needs to be investigated further (contributions welcome!) is whether to provide means for the web developer to provide a hint on the preferred geolocation accuracy that the implementation could then use to choose the most appropriate location information source. This is noted in a related spec issue.