GTS 格式/Warpscript:提供 LAT 和 LON 值的最佳做法?
GTS format / Warpscript : Best practices to provide LAT and LON values?
关于此处描述的 GTS 格式的一些问题:
TS/LAT:LON/ELEV NAME{LABELS} VALUE
提供像 48.441583584062755
这样的 LAT
和 LON
值是否有意义?还是像 48.441583
这样只提供 6 位精度更方便? pros/cons 是什么?
如果存储的值为48.441583584062755
,是否有任何现有的 warpscript 函数允许转换 LAT 值以获得 6 位精度的值?
感谢您的帮助
在内部,Warp 10 中的位置存储为 Long(64 位)中的 HHCode。所以纬度和经度都存储在 32 位上。这意味着 Warp 10 中的 HHcode 的最大误差为:
- 180 / 2^32 = 4.190951585769653E-8 纬度
- 360 / 2^32 = 8.381903171539307E-8 经度
要回答您的问题,8 位小数应该是最大值。据我所知,进一步减少小数位数并没有真正的好处:它会稍微减少所需的带宽和解析数据的时间,但会以精度为代价。
我不知道有任何函数可以限制 Double 的精度,所以你必须自己做:
48.441583584062755 10 6 ** * ROUND 10.0 6 ** /
如果您经常使用它,请考虑创建一个宏:
<%
'precision' STORE
10 $precision ** * ROUND 10.0 $precision ** /
%>
'reduce_precision' STORE
48.441583584062755 6 @reduce_precision
关于此处描述的 GTS 格式的一些问题:
TS/LAT:LON/ELEV NAME{LABELS} VALUE
提供像
48.441583584062755
这样的LAT
和LON
值是否有意义?还是像48.441583
这样只提供 6 位精度更方便? pros/cons 是什么?如果存储的值为
48.441583584062755
,是否有任何现有的 warpscript 函数允许转换 LAT 值以获得 6 位精度的值?
感谢您的帮助
在内部,Warp 10 中的位置存储为 Long(64 位)中的 HHCode。所以纬度和经度都存储在 32 位上。这意味着 Warp 10 中的 HHcode 的最大误差为:
- 180 / 2^32 = 4.190951585769653E-8 纬度
- 360 / 2^32 = 8.381903171539307E-8 经度
要回答您的问题,8 位小数应该是最大值。据我所知,进一步减少小数位数并没有真正的好处:它会稍微减少所需的带宽和解析数据的时间,但会以精度为代价。
我不知道有任何函数可以限制 Double 的精度,所以你必须自己做:
48.441583584062755 10 6 ** * ROUND 10.0 6 ** /
如果您经常使用它,请考虑创建一个宏:
<%
'precision' STORE
10 $precision ** * ROUND 10.0 $precision ** /
%>
'reduce_precision' STORE
48.441583584062755 6 @reduce_precision