转换WGS84矢量以导入到openlayers中的EPSG 3857瓷砖上

时间:2017-03-29 11:41:36

标签: openlayers-3 projection

我正在导入已经转换为geojson WGS84多边形的边界框但是我得到一个奇怪的投影错误(见下文):

misaligned bounding boxes

我认为这是我将它作为WGS 84导入3857投影(我可能是错的!)。我尝试将视图设置为WGS 84,但地图是空白的,没有错误消息。我应该“实时”转换为3857还是应该事先将其转换为3857?

2 个答案:

答案 0 :(得分:1)

看起来你在重新投影之前计算了边界框。由于边界框是最小和最大x和y坐标,因此它仅在一个SRS中有意义,因为它取决于轴的方向,这可能是不同的(想一想)。您的选择是

  • 重新投影基础数据,然后计算最终SRS中的边界框
  • 计算边界框,将它们转换为多边形,然后重新投影。 (然而,它们现在不会是限制盒子)

答案 1 :(得分:0)

问题是我将我的边界框的最大和最小坐标重新投影到WGS84,而不是单独的所有坐标

之前我只做了两次重投并结合了结果:

minlat, minlon = transform(localsrs, wgs84, minx, miny)
maxlat, maxlon = transform(localsrs, wgs84, maxx, maxy)
polygon = [[minlon, minlat], [maxlon, minlat], [maxlon, maxlat],
          [minlon, maxlat], [minlon, maxlat]]

我没有意识到纬度的变化(甚至只有超过100米)会对预计的经度产生影响。我现在为我的边界框计算做了4次重新投影。

a, b = transform(localsrs, wgs84, minx, miny)
c, d = transform(localsrs, wgs84, minx, maxy)
e, f = transform(localsrs, wgs84, maxx, maxy)
g, h = transform(localsrs, wgs84, maxx, miny)

polygon = [[a, b], [c, d], [e, f], [g, h], [a, b]]

感谢Dan指出我正确的方向!