Здравствуйте. Появилась необходимость подкючить новый слой с тайлами, отдаваемыми сервером WMS.
Установка, настройка и добавление нового слоя не оказались сложными, но первая проблема появилась с расчетом тайлов. Яндекс использует: x, y, z. WMS использует: a, b, c, d - (BBOX).
Пример формулы пересчета я нашел на страничке zuluserver, там тайлы отдавал zuluserver, а использовал яндекс api 1. Переписать данную функцию на api2 я так и не смог.
ниже привожу данную функцию и прошу помочь переписать ее под 2 api:
CustomGetTileUrl=function (tile, zoom){
if (this.myMercZoomLevel == undefined) {
this.myMercZoomLevel = MERC_ZOOM_DEFAULT;
}
if (this.myFormat == undefined) {
this.myFormat = FORMAT_DEFAULT;
}
if (typeof(window['this.myStyles']) == "undefined") this.myStyles = "";
var tilePixel = new YMaps.Point(tile.x, tile.y);
var offsetLeftBottom = new YMaps.Point(0, 256);
var offsetRightTop = new YMaps.Point(256, 0);
var leftBottomPixel = map.tileCoordinates.toPixels(tilePixel, offsetLeftBottom, zoom);
var rightTopPixel = map.tileCoordinates.toPixels(tilePixel, offsetRightTop, zoom);
var minXminYWMSGeoPoint = map.coordSystem.toCoordPoint(leftBottomPixel);
var maxXmaxYWMSGeoPoint = map.coordSystem.toCoordPoint(rightTopPixel);
var lSRS = "EPSG:4326";
var lBbox = minXminYWMSGeoPoint.getLng() + "," + minXminYWMSGeoPoint.getLat() + "," +
maxXmaxYWMSGeoPoint.getLng() + "," + maxXmaxYWMSGeoPoint.getLat();
var lURL = currentBaseURL;
lURL += "REQUEST=GetMap";
lURL += "&SERVICE=WMS";
lURL += "&VERSION=1.1.1";
lURL += "&LAYERS=" + currentLayers;
lURL += "&STYLES=" + this.myStyles;
lURL += "&FORMAT=" + this.myFormat;
lURL += "&BGCOLOR=0xFFFFFF";
lURL += "&TRANSPARENT=TRUE";
lURL += "&SRS=" + lSRS;
lURL += "&BBOX=" + lBbox;
lURL += "&WIDTH=256";
lURL += "&HEIGHT=256";
lURL += "&reaspect=false";
return lURL;