我是 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/