打开图层中的图像层

时间:2012-11-26 14:13:37

标签: openlayers

我必须使用OpenLayers.Layer.Image openlayers创建一个图像层。图像是暂时的静态图像。图像代表我想要捕捉的整个区域。我有纬度&图像所代表区域的角点的经度。当我把这些lat lon作为边界时,图像会被拉伸。

我想知道如何显示定义了边界的静态图像,一旦我开始缩放,图像就会变焦。

2 个答案:

答案 0 :(得分:1)

你想做的事情有点复杂(对不起)。

为了使图像层具有可以放大和缩小的地图,您需要将图像转换为地图。

您可以使用 georeference-plugin 为QGIS地理引用您的图像和类似Maptiler的内容,以便从您引用的图像中创建图块。如果拥有正确创建的地图图块,则可以使用Opanlayers TMS图层显示数据。 (或者只是将其作为带有Geoserver的WMS服务)

希望这会有所帮助,或者至少为Goole提供一些东西!

答案 1 :(得分:1)

OpenLayers.Layer.Image应该可以用于此目的: http://jsfiddle.net/cv3uC/4/ (您必须使用不同的地图属性来获得所需的初始范围,缩放级别数等)。

如果你的图像被拉伸,边界可能是不正确的。计算图像和边界的宽高比。它们应该是一样的。

var bounds = new OpenLayers.Bounds(10, 10, 260, 297);
var size = new OpenLayers.Size(250, 287);

alert(
    'Image ratio: ' + 
    (size.w / size.h).toString() +
    ' Bounds ratio: ' +
    (bounds.getWidth() / bounds.getHeight()).toString()
);