Клуб API Карт

restrictMapArea и zoom <= 2

Masis Abul
12 октября 2015, 21:25

Коллеги, прошу помощи!

 

function init () {
var myMap = new ymaps.Map('map',
{
center: [6.9970974589843702, 55.69765387145125],
zoom: 2,
controls: ['typeSelector', 'zoomControl', 'fullscreenControl'],
type: 'yandex#hybrid'
},
//убираем возможность прокрутки карты, привязано к текущему масштабу
restrictMapArea: true
}

)

 

В индексе 

<div id="map" style="width:100%; height:450px"></div>

 

ПОЛУЧАЕМ:

серый фон

 

1. При zoom блольше 2 все работает.

2. Если убрать restrictMapArea (при zoom 2) - то все работает.

Но тогда не работает restrictMapArea (двигать карту можно)


ИТОГИ:

Хотедось бы при zoom 2 и restrictMapArea: true

при условии

center: [6.9970974589843702, 55.69765387145125],
zoom: 2,
controls: ['typeSelector', 'zoomControl', 'fullscreenControl'],
type: 'yandex#hybrid' 

получить карту. И она статична!


Чувствую, собака где-то рядом порылась.

Я рукава закусил, но что-то не выходит

Спасибо!

 

11 комментариев
Подписаться на комментарии к посту

Если нужна полностью статичная карта, проще отключить все поведения

Проблема, очевидно, в том, что вы задаёте несовместимые требования, т.е. ваша mapArea меньше, чем область, которую можно увидеть при zoom=2

restrictMapArea: true

Ну, видимо в этот момент на карте уже видно больше, чем весь мир. Соответственно, и restrictMapArea становится как-то бессмыслен.

Здравствуйте!

Я поясню свой вопрос, я уже интересовался этим

http://clubs.ya.ru/mapsapi/replies.xml?item_no=59906

 

Действительно при 

center: [6.9970974589843702, 55.69765387145125],
zoom: 2

это весь мир, хотелось бы чтобы карта не перемешалась


Если установить zoom: 3 и restrictMapArea: true то все работает, но тогда это не весь мир

Спасибо.

 

restrictMapArea ограничивает область показа указанной областью. Если эта область — весь мир, очевидно, можно свободно перемещаться по всему миру.

да, так и есть!

так ради бога, пусть перемешается, но мир долджен быть один.

хотелось бы карту не перемещать по горизонтале, да и вертикаль тоже :)

options.restrictMapArea

Устанавливает область просмотра карты так, чтобы пользователь не мог выйти за пределы этой области. True — установить область в соответствии с текущей областью отображения

1. текушая облать есть

2. маштаб есть


при зум 2 и без MapArea - крта двигается (метки есть)

при зум 2 и с MapArea -  серый фон

при зум 3 и с MapArea - все работает, метки есть карта не двигаетсяно это не весь мир

куда копать?




Какую проблему вы пытаетесь решить таким странным образом? Такой картой не смогут пользоваться, например, жители Чукотки, потому что 180 меридиан разделит её на две части.

Если нужно показывать только один мир, это можно сделать перекрыв метод проекции isCycled 

Сюда смотреть, я правильно понимаю?

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/IProjection-docpage/

Правильно, текущую проекцию карты можно получить из опций карты.

myMap.options.get('projection').isCycled= function () { return [false, false] }