Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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
看不出我对OpenLayers的预测和假设有何错误_Openlayers_Gis - Fatal编程技术网

看不出我对OpenLayers的预测和假设有何错误

看不出我对OpenLayers的预测和假设有何错误,openlayers,gis,Openlayers,Gis,我在matlab中制作了一个原型,将一些航空照片投影到地面,并在matlab中用绘图将其可视化,一切都如预期的那样 然后迁移到web上,我的投影出了问题 例如: 每幅图像都标注有lat、lng以及wsg 84 utm 32 easting和nothing 当我在matlab中比较两幅图像的距离时,我得到了159米的距离 >> norm([696975.558, 6191855.032]-[696952.619, 6191697.477],2) ans = 159.2161 但在

我在matlab中制作了一个原型,将一些航空照片投影到地面,并在matlab中用绘图将其可视化,一切都如预期的那样

然后迁移到web上,我的投影出了问题

例如: 每幅图像都标注有lat、lng以及wsg 84 utm 32 easting和nothing

当我在matlab中比较两幅图像的距离时,我得到了159米的距离

>> norm([696975.558, 6191855.032]-[696952.619, 6191697.477],2)
ans =   159.2161
但在预计的纬度上进行时,距离几乎是原来的两倍

var coord = openLayers.proj.transform([i.longitude(), i.latitude()], 'EPSG:4326', 'EPSG:3857');
以上是我如何从图像lng和lat到EPSG:3857

>> norm([1352002.183944147, 7525040.504347302]-[1351948.7706260746 7524762.187661538],2)
ans =  283.3958
我们有一个函数,给定一个图像位置,计算以米为单位的相对偏移量投影到地面的4个角,并尝试可视化图像的重叠。但是当足迹以米为单位,投影坐标几乎是两倍大时,这就不能正确地说明重叠


问题是,有没有办法从utm 32位置到EPSG:3857,或者我必须先获取utm中的相对示意图,将点转换为lat lng,然后再次使用openlayers变换?

您对图像显示或测量是否有疑问。一般来说,EPSG:3857的设计目的是为了在为覆盖全球的滑动贴图界面生成分幅时简化数学计算。这样做的一个缺点是,它受到慢性尺度失真的影响,不利于精确测量距离——这种失真随着你从极点移动而增加。这是墨卡托投影的一个普遍特性——它们是保形的,但要以比例为代价。我找到了如何使用proj4js将我的UTM 32点转换为EPSG:3857的方法,看起来和预期的一样。