1

我必须使用OpenLayers.Layer.Imageopenlayers 创建一个图像层。图像暂时是静态图像。该图像代表我要捕获的整个区域。我有图像所代表的区域角点的纬度和经度。当我将这些纬度作为界限时,图像会被拉伸。

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

4

2 回答 2

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()
);
于 2012-11-27T08:21:58.600 回答
1

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

为了使图像层表现得像地图,可以放大和缩小,您需要将图像转换为地图。

您可以使用QGIS的地理参考插件对您的图像进行地理参考,并使用Maptiler 之类的工具从您的参考图像创建图块。当您拥有正确创建的地图切片时,您可以使用 Opanlayers TMS 图层来显示数据。(或者只是将其用作带有 Geoserver 的 WMS)

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

于 2012-11-26T23:04:03.267 回答