Funny question :)
The string contains 40 hexadecimal characters, so it represents 20 bytes.
, 8 , 8 4 . , pack unpack, :
hex = "6e6de179a94a4b406efab31f29d216c0e2ff0000"
lat_hex, lon_hex, alt_hex = hex[0,16], hex[16, 16], hex[32, 8]
lat_int, lon_int, alt_int = lat_hex.to_i(16), lon_hex.to_i(16), alt_hex.to_i(16)
p [lat_int].pack('q>').unpack('D').first
p [lon_int].pack('q>').unpack('D').first
:
hex.scan(/../).map{ |x| x.hex }.pack('C*').unpack('DDL')
. , , , , GPS .