我必须使用OpenLayers.Layer.Image
openlayers 创建一个图像层。图像暂时是静态图像。该图像代表我要捕获的整个区域。我有图像所代表的区域角点的纬度和经度。当我将这些纬度作为界限时,图像会被拉伸。
我想知道如何显示定义了边界的静态图像,一旦我开始缩放,图像就会缩放。
我必须使用OpenLayers.Layer.Image
openlayers 创建一个图像层。图像暂时是静态图像。该图像代表我要捕获的整个区域。我有图像所代表的区域角点的纬度和经度。当我将这些纬度作为界限时,图像会被拉伸。
我想知道如何显示定义了边界的静态图像,一旦我开始缩放,图像就会缩放。
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()
);
你想做的有点复杂(对不起)。
为了使图像层表现得像地图,可以放大和缩小,您需要将图像转换为地图。
您可以使用QGIS的地理参考插件对您的图像进行地理参考,并使用Maptiler 之类的工具从您的参考图像创建图块。当您拥有正确创建的地图切片时,您可以使用 Opanlayers TMS 图层来显示数据。(或者只是将其用作带有 Geoserver 的 WMS)
希望这会有所帮助,或者至少可以为 Goole 提供一些东西!