我正在使用库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有人知道怎么解决这个问题吗?
谢谢。
发布于 2010-11-18 21:16:17
当在投影系统之间进行转换时,总是会丢失一些精度。有许多错误来源,包括JavaScript引擎中浮点算法的局限性以及投影之间转换的可逆性。
另一方面,您的源数据来自何处?考虑到你仅仅在小数点第九位就失去了精度,很可能你的源数据一开始并不那么精确(当然不是你通常的GPS,甚至是差别化的),所以不用担心在重新投影算法中引入的错误。
编辑:所以,经过一些计算,你在两次重新投影后的误差大约是1/10毫米。我非常怀疑这是否值得在任何现实世界的应用程序上加以改进。
https://stackoverflow.com/questions/4025860
复制相似问题