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(meanx2 + meany2)))
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