Здравствуйте снова! Очередная непонятка:
Я наложил свой слой через TileDataSource. Рассчитал нулевые номера тайлов и добавил соответствующие смещения в TileDataSource.getTileUrl() вот так:
urlTemplate - tile-%z-%x-%y.png
opt.xntile - номер нулевого тайла, откуда я пристыковую свой слой.
11 и 17 - масштабы на которых доступен мой слой.
opt.kt - коэффициенты смещения для каждого масштаба.
*/
myData.getTileUrl = function (tile, zoom) {
var exists = zoom >= 11 && zoom <= 17;
var offset = {
x: exists ? Math.floor(opt.xntile / Math.pow(2, 17-zoom)) + Number(opt.kt["kt"+zoom].x) : 0,
y: exists ? Math.floor(opt.yntile / Math.pow(2, 17-zoom)) + Number(opt.kt["kt"+zoom].y) : 0
};
return this.getTileUrlTemplate().replace(/%x/i, tile.x - offset.x).replace(/%y/i, tile.y - offset.y).replace(/%z/i, zoom);
}
Происходит то что происходит - с удалением от нулевого тайла (к которому я привязываюсь) глобальной карты, смещается мой слой относительно гугл-спутника. Причём (что меня афигенно удивляет по незнанию наверное) - если сохранить выборочно тайлы (из удаленных друг от друга мест карты) и в графическом редакторе совместить их с моим слоем, то они идеально лягут и никаких смещений не будет!! Что это? поможите люди добрые!
Картинками ниже я постарался описать проблему, для упрощения понимания. Они показывают что происходит на моей странице в двух удаленных друг от друга местах карты.
Поможет ли мне это??