Клуб API Карт

Добавление объектов YMapsML на карту - не получается

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

Всем доброго времени суток. Сделал пользовательскую карту, тайлы готовил как описано здесь, попутно сгенерировал .html. Все хорошо. Решил добавить на карту метки. Хотел сделать как здесь (YMapsML), но у меня это благополучно не получается. Метки JavaScript API ставятся нормально, но мне их не хватает (в балуне нужно поставить ссылки). Буду очень рад если кто нибудь объяснит мне популярно что надо сделать чтобы добится необходимого результата!


 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
    <title>Карта города ***</title>
    <script src="http://api-maps.yandex.ru/1.1/index.xml?key=***" type="text/javascript"></script>
    <script type="text/javascript">
        window.onload = function () {
            var options = {
                    tileUrlTemplate: "./%z/tile-%x-%y.png",
                    controls: {
                        typeControl: true,
                        miniMap: true,
                        toolBar: true,
                        scaleLine: false
                    },
                    scrollZoomEnabled: true,
                    mapCenter: new YMaps.GeoPoint(***, ***),
                    backgroundMapType: YMaps.MapType.NONE,
                    mapZoom: 17,
                    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>
</head>
<body>
    <div id="YMapsID" style="width:990px;height:650px"></div>
</body>
</html>

 

3 комментария

а где у вас в этом коде подключение YMapsML? 

chameleon-art-studio
28 января 2016, 05:22

Да в том то и дело что я далеко не програмер и скорее всего неправильно пытался подключить его. Крутил, вертел последние дней десять и в итоге решил искать помощи здесь. Выложил код страницы которуб мне выдала утилита "API Яндекс.Карт. Подготовка слоя тайлов"

Если вы не программист можно создать все метки на маps.yandex.ru и получить код для вставки на сайт

http://ymapsapi.ya.ru/replies.xml?item_no=11