Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试重新编码OpenLayers函数时出现重新投影问题_Javascript_Openlayers_Proj4js - Fatal编程技术网

Javascript 尝试重新编码OpenLayers函数时出现重新投影问题

Javascript 尝试重新编码OpenLayers函数时出现重新投影问题,javascript,openlayers,proj4js,Javascript,Openlayers,Proj4js,由于prototype.js和pro4js之间的冲突,我需要重写OpenLayers的函数。但是,即使我尝试使用与github完全相同的代码,结果也不同于我在不重写函数的情况下得到的结果 在我的例子中,想要重新编码的函数是来自ol/proj/proj4的寄存器 下面是使用此函数的重投影示例: 项目4.defs'EPSG:27572',+title=NTF巴黎/兰伯特II区+proj=lcc+lat_1=46.8+lat_0=46.8+lon_0=0+k_0=0.99987742+x_0=600

由于prototype.js和pro4js之间的冲突,我需要重写OpenLayers的函数。但是,即使我尝试使用与github完全相同的代码,结果也不同于我在不重写函数的情况下得到的结果

在我的例子中,想要重新编码的函数是来自ol/proj/proj4的寄存器

下面是使用此函数的重投影示例:

项目4.defs'EPSG:27572',+title=NTF巴黎/兰伯特II区+proj=lcc+lat_1=46.8+lat_0=46.8+lon_0=0+k_0=0.99987742+x_0=600000+y_0=220000+a=6378249.2+b=6356515+towgs84=-168,-60320,0,0,0,0,0+pm=巴黎+单位=m+no_defs; ol.proj.proj4.registerproj4; 项目=ol.proj.get'EPSG:27572'; var map=新ol.map{ 图层:[ 新ol.layer.Tile{ 来源:new ol.source.OSM }, ], 目标:“地图”, 视图:新ol.view{ 预测:项目, 中间:[0,0], 缩放:1 } }; 重投影 .地图{ 宽度:600px; 高度:400px; } ol.proj.getTransform与“/transforms.js”中的{get as getTransform}不同,如果它是API的一部分,那么它将是ol.proj.transforms.get。由于它未在公共API中列出,因此无法通过完整构建获得,因此您需要为定义的转换使用替代测试,或者干脆不必费心测试并始终重新定义

ol.proj.proj4.register=functionproj4{ 常量projCodes=Object.keysproj4.defs; const len=projCodes.length; 让我,j; 对于i=0;i答案被接受,效果很好:你能解释一个你评论的测试可能是必要的案例吗?我用orthers投影做了一些测试,没有发现任何问题。该测试通过避免重做已经完成的工作来提高效率,因此它是有用的,但不是必需的。但是OpenLayers有一个内置的EPSG:4326/EPSG:3857转换,它与proj4转换略有不同,因此您可能需要检查这些投影以避免覆盖它,