我们最近将定义从第一种格式转换为第二种格式,因为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。)
答案 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] );
...