Re: Position Heading Questions?

Hi Greg,

On Sat, Nov 15, 2008 at 9:46 PM, Greg Bolsinga <bolsinga@apple.com> wrote:
>
> Hello --
>
> The Position object has a heading field. It is described as: "The heading
> attribute denotes the direction of the hosting device". Is this the heading
> of the vector of travel while moving, or the direction the user is currently
> facing, no matter the direction of travel? The context of the following
> field, speed, seems to indicate that this is the heading of the direction of
> travel.
>

You are right, the definition is ambiguous and it needs clarifying.
Right now, heading denotes the direction of travel so it is a property
of the movement of the device.

> However, I can see the use for a 'which way is the device oriented'
> compass-style heading, as well as the direction you're traveling in. One can
> be facing backwards to the direction of travel! :)
>
> What do you think?

I completely agree that orientation would be useful but I have the
following problem with exposing it in this API: orientation is
completely orthogonal to position. So far, the spec is only concerned
with the where on Earth a device is. How that device is oriented
doesn't fit the current abstraction and, if we were to add it, it
would break the API in subtle ways. For instance, it would no longer
be clear when the watchPosition() callbacks would be invoked, so we'd
probably need new methods (watchOrientation() ?), etc. This is the
reason why most other APIs I've seen cleanly separate the two
concepts:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/orientation
http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html


> I think having both fields is fun, but I'm not sure what
> heading has to do with a location specification if I was going to be really
> picky about it. :)

Well, you can think of it as an optimization. It is a property of
movement (i.e. change in position), so in that sense, it is relevant
:)

>No matter what, I think the Position object's heading
> description needs to be clarified. I'd also like both types of headings to
> be available, both with the "If the implementation cannot provide speed
> information, the value of this attribute must be null." wording.
>

As said above, I'd vote for keeping the device orientation separate as
it really is a concept that's completely foreign to geolocation.

Andrei

Received on Monday, 17 November 2008 13:33:22 UTC