У меня есть приложение, в котором я использую mapbox.js для загрузки листов базовой карты для местоположения. Затем пользователь может загрузить плитки WMS с сервера WMS размером 256X256, который загружается поверх базовой карты.
Я использую mapbox и буклет для отображения карты следующим образом:
window.map = L.map('map', { 'minZoom': minZoomLevel(), 'maxZoom': maxZoomLevel(), reuseTiles: true, unloadInvisibleTiles: true }).setView(["35.7804", "-78.6391"], 17)
Затем я использую Leaflet для отправки запросов на мой сервер и оттуда отправляю запрос на WMS-сервер для загрузки плиток, используя это:
wms = L.tileLayer.wms('/viewers/wms', {
minZoom: 12,
maxZoom: 25,
layers: 'some layer name',
format: 'image/png',
updateWhenIdle: false,
transparent: true,
reuseTiles: true,
showTheRasterReturned: true,
COVERAGE_CQL_FILTER: 'featureId=\'' + featureId + '\''
});
Когда запрос достигает моего сервера, атрибут BBOX
автоматически добавляется листовкой, которая имеет разные координаты (я думаю, что она принимает полный видовой экран), т.е.
Started GET
"/viewers/wms?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&LAYERS=some
layer
name&STYLES=&FORMAT=image%2Fpng&TRANSPARENT=true&HEIGHT=256&WIDTH=256&REUSETILES=true&SHOWTHERASTERRETURNED=true&COVERAGE_CQL_FILTER=featureId%3D%279d3a23cba90680cecda337a926f563a6%27&SRS=EPSG%3A3857&**BBOX=-8755402.967897227,4285977.050006404,-8755097.219784087,4286282.798119542**" for 127.0.0.1 at 2018-06-27 16:51:01 -0400
Атрибут BBOX добавляется в виде листовки на лету, которая выглядит следующим образом
BBOX=-8755402.967897227,4285977.050006404,-8755097.219784087,4286282.798119542"
хотя, я хочу получать плитки только для этих координат:
southWest ={lat: 35.77712238348847, lng: -78.64827990531921}
northEast {lat: 35.783693840245284, lng: -78.62991213798523}
установка опции BBOX
внутри L.tileLayer.wms
также не помогает, так как BBOX
координаты добавляются буклетом.