Alistair,

I found this page really useful 
http://www.movable-type.co.uk/scripts/latlong.html

HTH,

Sven

> On 5 Dec 2018, at 11:48, Sven Van Caekenberghe <[email protected]> wrote:
> 
> 
> 
>> On 5 Dec 2018, at 08:23, Alistair Grant <[email protected]> wrote:
>> 
>> Hi Sven,
>> 
>> On Tue, 4 Dec 2018 at 11:04, Sven Van Caekenberghe <[email protected]> wrote:
>>> 
>>> Hi Alistair,
>>> 
>>>> On 4 Dec 2018, at 10:21, Alistair Grant <[email protected]> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> Does anyone know of a library for processing GPS coordinates?
>>>> 
>>>> What I'm looking for are things like:
>>>> 
>>>> - Parsing from and printing to various string formats (HMS, NESW, decimal)
>>>> - Distance between two points
>>>> - etc.
>>>> 
>>>> Thanks,
>>>> Alistair
>>> 
>>> We've got some elementary stuff based on WGS84 coordinates as points. For 
>>> example,
>>> 
>>> T3GeoTools distanceBetween: [email protected] and: [email protected].
>>> T3GeoTools bearingFrom: [email protected] to: [email protected].
>>> T3GeoTools destinationFrom: [email protected] bearing: 45 distance: 2500.
>>> T3GeoTools centroidOf: { [email protected]. [email protected]. 
>>> [email protected]. [email protected]. [email protected]. [email protected] }.
>>> T3GeoTools is: [email protected] inside: { [email protected]. 
>>> [email protected]. [email protected]. [email protected]. [email protected]. 
>>> [email protected] }.
>>> 
>>> This is not open source, but it is not rocket science either (just 
>>> implementations of public algorithms).
>> 
>> Right, I'll probably have a go at this a put it up on github.
>> 
>> It looks like you've chosen to model the coordinates using the Point
>> class rather than creating a Coordinate class.  Can you explain why (I
>> don't have a strong preference either way, so am wondering what your
>> thinking is).
>> 
>> It also looks like it is longitude @ latitude.  Is that correct?  (I
>> guess it lines up with the point y value being vertical, which is
>> latitude.  But most written forms put latitude first).
> 
> I used the simplest thing that could work, using the mathematically oriented 
> x@y (long@lat) form. From what I am doing, it works just fine. Converting 
> to/from HMS notation is not hard I.
> 
> Here is an example:
> 
> distanceBetween: firstPosition and: secondPosition
>       "T3GeoTools distanceBetween: [email protected] and: [email protected]"
> 
>       | c |
>       c := (firstPosition y degreeSin * secondPosition y degreeSin)
>               + (firstPosition y degreeCos * secondPosition y degreeCos
>                       * (secondPosition x degreesToRadians - firstPosition x 
> degreesToRadians) cos).
>       c := c >= 0 ifTrue: [ 1 min: c ] ifFalse: [ -1 max: c ].
>       ^ c arcCos * 6371000
> 
> I would not have anything against a real object, as long as it is 
> mathematically sound and used properly. I think that only WGS84 makes sense 
> as internal representation though - it seems the most common thing anyway.
> 
>> Thanks!
>> Alistair


Reply via email to