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

Openlayers 3 OpenLayers 3将像素坐标转换为Lat-Long,openlayers-3,Openlayers 3,我是OpenLayers的新手,希望能得到任何帮助。如何将基于像素的坐标转换为lat/lon?我使用OL3通过投影在静态图像(6494 x 7687 jpg)上查看和绘制特征: var projection = new ol.proj.Projection({ code: 'xkcd-image', units: 'pixels', extent: [0, 0, 6494, 7687] }); 在polygan绘图的末尾,我有一个很好的例子: draw.on('

我是OpenLayers的新手,希望能得到任何帮助。如何将基于像素的坐标转换为lat/lon?我使用OL3通过投影在静态图像(6494 x 7687 jpg)上查看和绘制特征:

  var projection = new ol.proj.Projection({
    code: 'xkcd-image',
    units: 'pixels',
    extent: [0, 0, 6494, 7687]
  });
在polygan绘图的末尾,我有一个很好的例子:

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

是否有一种简单的方法将上述基于像素的多边形坐标转换为Lat/Lon坐标?我确实有图像四个角的横向/纵向。与其指定自定义像素投影,不如将
imageExtent
设置为角坐标来配置静态图像源,并将其投影设置为
'EPSG:4326'

new ol.source.ImageStatic({
  // ...
  imageExtent: [minLon, minLat, maxLon, maxLat],
  projection: 'EPSG:4326'
})
如果您想在不失真的情况下显示图像,则必须使用投影配置视图:“EPSG:4326”。然后,您将在整个过程中使用地理坐标


其中一个官方示例中也显示了类似的内容:。区别在于这里使用了光栅重投影,因为图像和视图处于不同的投影中。

感谢您的快速响应。这很有道理。我需要存储lat/lon坐标和像素坐标。现在将lat/lon坐标转换为像素坐标有多困难?再次感谢。