openlayers-3 - OpenLayers 3 将像素坐标转换为经纬度

标签 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.on('drawend', function (event) {
  var coord = event.feature.getGeometry().getCoordinates();
  console.log("YOU DREW A Polygon with coord="+coord);
});

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

最佳答案

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

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

如果您想显示您的图像而不被扭曲,您还必须使用 projection: 'EPSG:4326' 配置您的 View 。然后,您将始终使用地理坐标。

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

关于openlayers-3 - OpenLayers 3 将像素坐标转换为经纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37403931/

相关文章:

javascript - OpenLayers 3 Vector 缩放错误位置

javascript - 开放层 3 : how to display only a KML layer

openlayers-3 - 如何在 OpenLayers 3 中注册 map 移动/ map 平移事件

javascript - 如何在 OpenLayers 3 中动态移动矢量特征

gis - OpenLayers 3 OSM-tile 和 Natural Earth 之间的差异

javascript - 创建时设置功能 ID

javascript - 如何使我的 OpenLayer 3 map 与我的动画一起自动平移?

javascript - ol.interaction.Draw : write unique text to every single feature drawn

javascript - 为什么这个 for 循环不能正确读取传递的参数中的 this ?

javascript - openlayers 3 中的鼠标位置限制?