Клуб API Карт

Слой с пронумерованной тайловой сеткой

Пост в архиве.

Есть непреодолимое желание иметь в своем распоряжении прозрачный слой с пронумерованной тайловой сеткой, на всех масштабах. Для того, чтобы удобно было монтировать свои слои карт. Может быть это уже сделано? Где взять? Если нет, то подскажите, как лучше сделать.

8 комментариев
проше всего сделать через пользовательские слои - ведь там можно не только картинки вставлять, но и див с циферками

    function Yandex_myTile (indataSource) {
        var myPos = new YMaps.Point(),
        dataSource=indataSource,
        dy=0,
        element = document.createElement("DIV"),
        originalSize = new YMaps.Point(256);
        element.style.position='absolute';
        element.style.display='none';
   
        this.onAddToMap = function (map, parentContainer) {
            this.onRemoveFromMap();
            parentContainer.appendChild(element);
        }
   
        this.onRemoveFromMap = function () {
            if(element.parentNode)
             element.parentNode.removeChild(element);
            element.src='';
        }
           
        this.setPosition = function (position) {
            myPos.moveTo(position);
            element.style.left = myPos.x + 'px';           
            py=myPos.y;
            element.style.top = py + 'px';
        }
   
        this.getPosition = function () {
            var p = myPos.copy();
            return p;
        }
       
      
   
        this.load = function (tile, zoom) {
             здесь рисуем циферки из tile в наш див и показываем его
        }
   
        this.error = function () {
        }
       
        this.abort = function () {
        }
       
        this.scale = function (coeff) {
            var newSize = originalSize.copy().scale(coeff);
            element.style.width = newSize.x + 'px';
            element.style.height = newSize.y + 'px';
        }
    }   
Кирилл Яковлев
28 января 2016, 07:51
куда цеплять этот объект (если не секрет)?
 
 var tileDataSource = new YMaps.TileDataSource(urlTemplate, true, false);
     
tileDataSource.map=this.map;
 tileDataSource.getTile=function(){return new Yandex_myTile(this);}


блаблабла
 api.addLayer(this.layer);
Кирилл Яковлев
28 января 2016, 07:51
ясно пасиб)
Кирилл Яковлев
28 января 2016, 07:51
А нельзя ли как-то сделать сопию объекта.. типа так (только так не работает)
my_ti le_iface = function(tile_data_source){
    YMaps.ITile.call( this )
}
честно говоря мне эта конструкция, оторваная от контекста, не понятна :(
а копий, сокопий и псевноподий тут вроде как не требуется
Кирилл Яковлев
28 января 2016, 07:51
Пардон за орфографию..
Я имею ввиду, что вместо полного описания объекта (как это сделано вами в комментарии к первому сообщению), копировать объект YMaps.ITile и затем переопределить только некоторые методы в нем.
Тогда - влет :)
Это все детали имплементации и правила тона, которые у каждого програмера, слава богу, свои