2017-12-10 15 views
0

MDEG (Millions of Degree)로 저장된 일부 GPS 정보가 있으며이를 ST_Point를 사용하여 Postgres에 저장하려고합니다.루비 : MDEG에서 ST_Point로 변환

플로트로 나누면 안정성 문제가 발생할 수 있습니다. 그렇다면 가장 신뢰할 수있는 방법은 무엇입니까?

답변

0

BigDecimal 덕분에 분명히 매우 짧은 방법이었습니다. 당신이 레일 프로젝트에서 작업하는 경우는 이미로드하지 않을 경우 당신이해야하는 #to_d 방법은 당신이 정밀도를 잃지 않고 소수와 함께 작동시키는, 볼 수 있습니다 후 require 'bigdecimal/util'

.

# @param mdeg [Array<int,int>] latitude and longitude in mdeg format 
# @return [String] String to build up the ST_Point 
def mdeg_to_stpoint(mdeg) 
    mdeg_d = mdeg.collect { |x| x.to_d/1_000_000 } 
    "Point(#{mdeg_d[0]} #{mdeg_d[1]})" 
end