gpt4 book ai didi

javascript - 使用proj4js转换坐标时的精度误差

转载 作者:行者123 更新时间:2023-11-30 23:43:03 26 4
gpt4 key购买 nike

我正在使用 Proj4js 库来转换坐标。我正在将坐标从 EPSG: 23029 转换为 EPSG: 4326。问题是,通过转换坐标,处理负载中使用的精度存在一些偏差。我通过将坐标系从原点转换为目的地(反之亦然)来注意到这一点。我用来进行转换的代码是:

<script type="text/javascript" src="/proj4js/lib/proj4js-compressed.js"> </ script>
<script type="text/javascript" src="/proj4js/lib/projCode/merc.js"> </ script>
<script type="text/javascript" src="/projCode/tmerc.js"> </ script>
<script type="text/javascript" src="/proj4js/defs/EPSG23029.js"> </ script>
<script type="text/javascript" src="/proj4js/defs/EPSG4326.js"> </ script>

source = new Proj4js.Proj ('EPSG: 23029');
dest = new Proj4js.Proj (map.projection.toString ());

x = feature_selected.geometry.x;
y = feature_selected.geometry.y;

p = new Proj4js.Point (x, y);

p = Proj4js.transform (source, dest, feature_selected.geometry);

当我在两个方向上进行变换时,原点并不相同。

 x1= -6.34378379330039
y1= 39.48007480688388

x2= -6.343783791584894
y2= 39.4800748068322604

有人知道如何解决这个问题吗?

谢谢。

最佳答案

在投影系统之间转换时,您总是会损失一些精度。错误来源有很多,包括 JavaScript 引擎中浮点运算的限制以及投影之间转换的可逆性。

另一方面,您的源数据来自哪里?考虑到您仅损失小数点后第九位左右的精度,很可能您的源数据一开始实际上并不那么准确(当然不是您常用的 GPS,甚至是差分校正的),因此没有太多意义担心重投影算法中引入的错误。

编辑:因此,经过一些计算 - 两次重新投影后的误差约为 1/10 毫米。我非常怀疑对于任何现实世界的应用程序是否值得尝试改进这一点。

关于javascript - 使用proj4js转换坐标时的精度误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com