我必须使用OpenLayers.Layer.Image
openlayers创建一个图像层。图像是暂时的静态图像。图像代表我想要捕捉的整个区域。我有纬度&图像所代表区域的角点的经度。当我把这些lat lon作为边界时,图像会被拉伸。
我想知道如何显示定义了边界的静态图像,一旦我开始缩放,图像就会变焦。
答案 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()
);