OpenLayers 3将像素坐标转换为Lat Long

时间:2016-05-24 03:32:21

标签: openlayers-3

我是OpenLayers的新手,非常感谢我能得到的任何帮助。你如何从基于像素的坐标转换为纬度/经度?我使用OL3使用投影在静态图像(6494 x 7687 jpg)上查看和绘制要素:

  var projection = new ol.proj.Projection({
    code: 'xkcd-image',
    units: 'pixels',
    extent: [0, 0, 6494, 7687]
  });

在polygan draw结束时,我有这个,这很好用:

draw.on('drawend', function (event) {
  var coord = event.feature.getGeometry().getCoordinates();
  console.log("YOU DREW A Polygon with coord="+coord);
});

有没有一种简单的方法可以将多边形的上述基于像素的坐标转换为Lat / Lon坐标?我确实有图像四个角的纬度/经度。

1 个答案:

答案 0 :(得分:3)

不是指定自定义像素投影,而是将imageExtent设置为角坐标配置静态图像源,并将其投影设置为'EPSG:4326'

new ol.source.ImageStatic({
  // ...
  imageExtent: [minLon, minLat, maxLon, maxLat],
  projection: 'EPSG:4326'
})

如果您希望在不失真的情况下展示图片,则必须使用projection: 'EPSG:4326'配置视图。然后,您将使用地理坐标。

其中一个官方示例中也显示了类似的内容:http://openlayers.org/en/latest/examples/reprojection-image.html。区别在于那里使用了光栅重投影,因为图像和视图在不同的投影中。