我是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坐标?我确实有图像四个角的纬度/经度。
答案 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。区别在于那里使用了光栅重投影,因为图像和视图在不同的投影中。