Клуб API Карт

Как подгружать чуть больше тайлов, чем видно пользователю?

Пост в архиве.
nodkz
24 августа 2010, 16:12

В ходе работы потребовалось, чтобы с нижней стороны карты подгружался автоматом еще одна строка тайлов.

Т.е. карта у меня размером 400x300 пикселей, а тайлов надо загрузить для размера 400x556 [4 тайла видны + еще два снизу которые не видны] при этом не меняя размер карты.

 

UPD. Фактически мне нужно заставить свой слой догружать еще один ряд тайлов снизу (т.к. мои тайлы сдвигаются по оси Y вверх через стили DOM элементов).

 

Возможно ли такое?  (Для уважаемого Азата вопрос по другому: Возможно ли такое, если ДА, то как?)

6 комментариев
Расскажите, пожалуйста, о вашей задаче подробнее.
Я размещаю свой слой, используя YMaps.TileDataSource с переопределенным методом getTile(), где возвращаю свой объект тайла.

Задача тайла, разместиться на карте с необходимым сдвигом по оси Y (чтобы совпасть с гугловскими тайлами). Т.к. на стороне сервера храняться закешированные данные именно в этих координатах.

Проблема возникает в том, что сдвиг может достигать 256 - 1 пикселей. Что равносильно появлению дырок с моими данными в нижней части карты.

Так вот, ищу возможность, чтобы можно было настроить дозагрузку еще одного ряда тайлов.
Фактически мне нужно заставить свой слой догружать еще один ряд тайлов снизу.
Посмотрите схожее обсуждение: http://clubs.ya.ru/mapsapi/replies.xml?item_no=7125

Думаю, что предложенное там решение вам поможет.
Вот это код помог:


        //в случае больших сдвигов - компенсируем
        var off=128;
        while(this.yoffset>off)
        {
            tile.y++;   // ТУТ ПОПРАВИЛ -- на ++, Т.К. Я ОФФСЕТ ОТНИМАЮ, Автор видимо офсет в коде прибавляет 
            this.yoffset-=256;
        }
        
        while(this.yoffset        {
            tile.y--; // ТУТ ПОПРАВИЛ ++ на --
            this.yoffset+=256;
        }



Вот это код помог, я его реализовал немного по другому, делал сдвиг всего один раз, а тут Кащей молодца закинул все это в while. За счет этого у него дырки в тайлах на картах не образуются. Т.к. тайлы могут скакать на две и более строки.


Саш, спасибо, за наводку ;)
не радуйся прежде времени.
при некоторых размерах карты и некоторых условиях возникают дырки по 30-80 пикселей.
Обычно снизу.
Через интерфейсы яндекса не решается, через стили тоже.
Единственный вариант это использовать образо говоря это
на яндекс картах есно дело не запуститься, но содержит все мозги и логику по рисованию тайлов на карте ручками