Клуб API Карт

Тип карты

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

 var googleLayer = new ymaps.Layer('http://mt0.google.com/vt/lyrs=m@176000000&hl=ru&%c', {

            projection: ymaps.projection.sphericalMercator,

            transparent: true

        });

       ymaps.layer.storage.add('test#layer', googleLayer);

       var myMapType = new ymaps.MapType('Detail', 'test#layer');

        ymaps.mapType.storage.add('my#type', myMapType);

        var typeSelector = new ymaps.control.TypeSelector();

        typeSelector.addMapType('my#type');

        myMap.controls.add(typeSelector, {top: 10, right: 10});

 

 

Не работает слой, когда выбираю его в селекторе =\ помогите плз

8 комментариев

При выборе слоя выскакивает:

  1. Uncaught TypeError: undefined is not a function combine.xml:1
    1. u._Hcombine.xml:1
    2. u.setTypecombine.xml:1
    3. n.util.augment._Be.mapTypecombine.xml:1
    4. u.firecombine.xml:1
    5. n.util.augment.firecombine.xml:1
    6. n.util.augment._Uccombine.xml:1
    7. n.util.extend._obcombine.xml:1
    8. n.util.extend._lbcombine.xml:1
    9. u.firecombine.xml:1
    10. i._ngcombine.xml:1
    11. i.firecombine.xml:1
    12. i.fireChangeEventcombine.xml:1
    13. i.setcombine.xml:1
    14. n.util.augment.selectcombine.xml:1
    15. n.util.augment._aecombine.xml:1
    16. ocombine.xml:1
    17. s._Xdcombine.xml:1
    18. u.callControllerscombine.xml:1
    19. n.util.augment.firecombine.xml:1
    20. i.onDomEventcombine.xml:1
    21. u.firecombine.xml:1
    22. y
Sergey Konstantinov
28 января 2016, 03:16

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

var GoogleLayer = function () {

return new ymaps.Layer('http://mt0.google.com/vt/lyrs=m@176000000&hl=ru&%c', {

            projection: ymaps.projection.sphericalMercator,

            transparent: true

        });

}

ymaps.layer.storage.add('test#layer', GoogleLayer);

это проделано для слоя карты, т.е. для типа я должен сделать эквивалентно?

Ваше предложение проблему не решило, всё та же ошибка(

Sergey Konstantinov
28 января 2016, 03:16

Дайте ссылку на страницу.

локалхост( Могу тимвьювером показать

Sergey Konstantinov
28 января 2016, 03:16

Подключите хотя бы API в режиме отладки.

  1. Uncaught TypeError: undefined is not a function combine.xml:32307
    1. Map._addTypecombine.xml:32307
    2. Map.setTypecombine.xml:32286
    3. imports.util.augment._createItem.mapTypecombine.xml:21458
    4. EventManager.firecombine.xml:10511
    5. imports.util.augment.firecombine.xml:24584
    6. imports.util.augment._setupStateMonitorcombine.xml:46649
    7. imports.util.extend._checkGroupcombine.xml:29766
    8. imports.util.extend._onChangecombine.xml:29736
    9. EventManager.firecombine.xml:10511
    10. DataManager._changeCallbackcombine.xml:24476
    11. EventFreezer.firecombine.xml:47890
    12. DataManager.fireChangeEventcombine.xml:24472
    13. DataManager.setcombine.xml:24408
    14. imports.util.augment.selectcombine.xml:46599
    15. imports.util.augment._onClickcombine.xml:19440
    16. callFunctionWithContextcombine.xml:29426
    17. EventProxy._onAfterLayoutEventFiringcombine.xml:29417
    18. EventManager.callControllerscombine.xml:10541
    19. imports.util.augment.firecombine.xml:24611
    20. BaseTemplateLayout.onDomEventcombine.xml:25256
    21. EventManager.firecombine.xml:10511
    22. globalDomHandlercombine.xml:138

Спасибо за отзывчивость! Решил свою проблему методом бубна и посоха, а так же нашёл опечатку в примере

последняя строчка должна быть:

map.setType('my#mapType');