Клуб API Карт

интерактивная прозрачность слоя

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

может есть вариант задавать прозрачность не в программе подготовки тайлов, а прям с веб странички?

2 комментария
Sergey Konstantinov
28 января 2016, 06:13

В нормальных браузерах можно задавать opacity слою через css. В IE сложнее.

задать прозрачность слою ?

но тогда все типы слоев будут прозрачны, а мне надо менять прозрачность только пользовательского слоя, остальноые типы карт как обычно

вероятно нужно внести поправку в дж.скрипт...

вот, например, код скрипта

<script type="text/javascript">
        window.onload = function () {
            var options = {
                    tileUrlTemplate: "./%z/tile-%x-%y.png",
                    controls: {
                        typeControl: true,
                        miniMap: true,
                        toolBar: false,
                        scaleLine: false
                    },
                    scrollZoomEnabled: true,
                    mapCenter: new YMaps.GeoPoint(29.1252201094987, 59.7501061890339),
                    backgroundMapType: YMaps.MapType.HYBRID,
                    mapZoom: 13,
                    isTransparent: true,
                    smoothZooming: false,
                    layerKey: "my#layer",
                    mapType: {
                        name: "МОЙ СЛОЙ",
                        textColor: "#000000"
                    },
                    copyright: ""
                },
                map = new YMaps.Map(document.getElementById("YMapsID")),
                myData = new YMaps.TileDataSource(options.tileUrlTemplate, options.isTransparent, options.smoothZooming);

            myData.getTileUrl = function (tile, zoom) {
                return this.getTileUrlTemplate().replace(/%x/i, tile.x).replace(/%y/i, tile.y).replace(/%z/i, zoom);
            }

            var MyLayer = function () {
                return new YMaps.Layer(myData);
            }
            YMaps.Layers.add(options.layerKey, MyLayer);

            var mapLayers = options.backgroundMapType ? options.backgroundMapType.getLayers() : [],
                myMapType = new YMaps.MapType(YMaps.jQuery.merge(mapLayers, [ options.layerKey ]), options.mapType.name, { textColor: options.mapType.textColor });

            map.setCenter(options.mapCenter, options.mapZoom, myMapType);
            if (options.copyright) {
                map.addCopyright(options.copyright);
            }

            if (options.controls.typeControl) {
                map.addControl(new YMaps.TypeControl([ myMapType, YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID ], [1, 2, 3]));
            }
         
            if (options.controls.miniMap) {
                map.addControl(new YMaps.MiniMap());
            }
            if (options.controls.toolBar) {
                map.addControl(new YMaps.ToolBar());
            }
            if (options.controls.scaleLine) {
                map.addControl(new YMaps.ScaleLine());
            }
            if (options.scrollZoomEnabled) {
                map.enableScrollZoom();
            }
            map.addControl(new YMaps.Zoom());
        }
    script>


и собственно вывод

<div id="YMapsID" style="position:absolute;z-index:0; width:1000px;height:800px">div>
и как тут быть :)