函数与字符串投影定义之间的投影异常

时间:2015-10-12 16:00:13

标签: proj4js

我们最近将定义从第一种格式转换为第二种格式,因为OpenLayers在第一种格式中抛出了异常。

使用的定义: 老:

proj4.defs["EPSG:28992"] = "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs";

新:

proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000  +ellps=bessel  +towgs84=565.040,49.910,465.840,-0.40939,0.35971,-1.86849,4.0772 +units=m +no_defs")

奇怪的是,后者确实正确地转换了点。我们的观点似乎是错位的,而不是特定的偏移,它们似乎根本就是错误的定位。我们认为这是由towgs84属性引起的。现在的问题是,第一种格式的解析/处理方式与第二种格式的解析方式有何不同?有什么区别? (我在两种场合都使用相同的代码和最新版本的proj4js。)

1 个答案:

答案 0 :(得分:0)

我偶然加载了pro4j两次,一次是通过potree,一次是手动(对于openlayers)。原来其中一个仍在版本var data = { '4': [ 1, 2, 3 ], '5': [ 1, 2, 3 ], '6': [ 1, 2, 3 ], '7': [ 1, 2, 3 ], '8': [ 1, 2, 3 ], '9': [ 1, 2, 3 ], '10': [ 1, 2, 3 ], '11': [ 1, 2, 3 ], '12': [ 1, 2, 3 ], '15': [ 1, 9, 3 ], '18': [ 1, 2, 3 ], '21': [ 1, 8, 3 ], '24': [ 1, 2, 3 ], '30': [ 1, 2, 3 ], '36': [ 1, 2, 3 ], '42': [ 1, 20, 3 ] } var keys = $.map( data, function ( element, index ) { return index } ); function closest( number ) { var closest = null; $.each( keys, function () { if ( closest == null || Math.abs( this - number ) < Math.abs( closest - number ) ) { closest = this; } } ); return closest; } console.log( data[closest( 16 )][1] ); ...