I am looking for a function to calculate the barycentre of a point list

(GPS coordinates lat/lng) …

anybody aware of such lib or utility I could rewrite in Ruby ? bet it

doesn’t exist yet

thanks for any hint

joss

I am looking for a function to calculate the barycentre of a point list

(GPS coordinates lat/lng) …

anybody aware of such lib or utility I could rewrite in Ruby ? bet it

doesn’t exist yet

thanks for any hint

joss

Hi!

Whenever I need to use a math lib in C, I use the GNU Scientific Library

(GSL): GSL - GNU Scientific Library - GNU Project - Free Software Foundation

However, no idea if it contains what you need…

cheers, Severin

Josselin schrieb:

On 2007-05-18 15:38:27 +0200, Severin Schoepke

[email protected] said:

Josselin schrieb:

I am looking for a function to calculate the barycentre of a point list

(GPS coordinates lat/lng) …anybody aware of such lib or utility I could rewrite in Ruby ? bet it

doesn’t exist yetthanks for any hint

joss

got it from a PHP script… translated into Ruby…

def deg2rad(d)

(d/180.0)*Math::PI

end

def rad2deg(r)

(r/Math::PI)*180

end

def self.gravity_center(placemarks)

sumx = 0.0

sumy = 0.0

sumz = 0.0

for placemark in placemarks do

# convert to radians

lat = deg2rad(placemark[0])

lon = deg2rad(placemark[1])

# convert spherical coordinate into cartesian

x = Math::cos(lat) * Math::sin(lon)

y = Math::cos(lat) * Math::cos(lon)

z = Math::sin(lat)

# sum the vectors

sumx += x

sumy += y

sumz += z

end

meanz = sumz / placemarks.nitems

lon = rad2deg(Math::atan2(sumx, sumy))

meanx = sumx / placemarks.nitems

meany = sumy / placemarks.nitems

lat = rad2deg(Math::atan(meanz / Math::sqrt(meanx**2 + meany**2)))

return [lat, lon]

end

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs