我正在尝试使用Leaflet使用存储在WMS服务中的非地理图像。这些是旧地图的图像,尚未进行地理配准..
我找不到配置Leaflet以生成对WMS服务器的正确请求的方法。问题是Leaflet产生的BBOX值是不对的。它们太小,服务器响应内部服务器错误。
但是,服务器功能正常,并且能够正常处理。
这是一张地图的代码:(http://jsfiddle.net/fmL4x4fw/)
var base_url = 'http://warper.wmflabs.org';
var unwarped_image_width = 6708;
var unwarped_image_height = 6936;
var wms_url = '/maps/wms/177';
var map = L.map('map', {
crs: L.CRS.Simple
}).setView([300, 300], 10);
var southWest = map.unproject([0, 6936], map.getMaxZoom());
var northEast = map.unproject([6708, 0], map.getMaxZoom());
map.setMaxBounds(new L.LatLngBounds(southWest, northEast));
var mywms = L.tileLayer.wms(base_url + wms_url, {
format: 'image/png',
version: '1.1.1',
attribution: "warper",
status: 'unwarped'
});
mywms.addTo(map);
我应该编写某种自定义投影还是有其他方式?我对预测不太熟悉。
更新: 这是配置Openlayers的当前实现的方式:
un_bounds = new OpenLayers.Bounds(0, 0, unwarped_image_width, unwarped_image_height);
umap = new OpenLayers.Map('unmap',
{controls: [mds, new OpenLayers.Control.PanZoomBar()], maxExtent: un_bounds, maxResolution: 10.496, numZoomLevels: 8});
var unwarped_image = new OpenLayers.Layer.WMS(title,
wms_url, {format: 'image/png', status: 'unwarped'});
umap.addLayer(unwarped_image);