У меня есть карта openlayers в моем проекте, и я хотел добавить плитки WMS к ней. Это мой код:
const map = new ol.Map({
layers: [
new ol.layer.Tile({
name: 'wmstiles',
source: new ol.source.TileWMS({
url: 'https://ssl-geowms.lillemetropole.fr/dynmapr/dynmapr.php',
serverType: 'geoserver',
version:"1.1.1",
params: {
LAYERS: 'PLU%2Fplu',
VERSION: '1.1.1',
TRANSPARENT: false,
HEIGHT: 256,
WIDTH: 256
},
pixelRatio: 1,
projection: 'EPSG:2154'
}),
visible: false
})
],
view: new ol.View({
center: ol.proj.fromLonLat([3.1666, 50.6167]),
zoom: 13,
maxZoom: 20,
})
});
Как видите, я пытаюсь проецировать координаты в EPSG:2154
(Франция), чтобы отправить их на сервер WMS. Но моя карта пуста, потому что openlayers не генерировали вызов с хорошей проекцией.
Это сгенерировало мне это: https://ssl -geowms.lillemetropole.fr / dynmapr / dynmapr.php? SERVICE = WMS & VERSION = 1.1.1 & REQUEST = GetMap & FORMAT = image% 2Fpng & TRANSPARENT = false & IN = PLU% 2Fplu & LAYERS = 252Fplu & ВЫСОТА = 919 & ШИРИНА = 2881 & SRS = EPSG% 3A3857 & ТИПОВ = & BBOX = 324977,41473478096% 2C6544989.716173889% 2C380031.18435717915% 2C6562551.1234224085
Вместо чего-то подобного (сгенерированного с другого сайта, который не использует openlayers): https://ssl -geowms.lillemetropole.fr / dynmapr / dynmapr.php? In = PLU / plu & service = WMS & request = GetMap & version = 1.1 0,1 & слои = PLU% 2Fplu & стили = & формат изображения =% 2Fjpeg & прозрачно = ложно & высота = 256 & ширина = 256 & = EPSG SRS% 3A2154 & BBOX = 704615.2885901299,7064111.541254971,705393.894388002,7064886.656737898
Как видите, он не перепроектируется в EPSG:2154
, а в EPSG:3857
. Есть и другие проблемы, такие как высота и ширина, но это другая история. Если я скопирую / вставлю ограничивающий прямоугольник из рабочей ссылки в первую, это сработает.