Клуб API Карт

Создание собственной карты на основе фотографии высокого разрешения

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

Всем доброго дня!

Не так давно у меня появилась задача сделать фон сайта используя API Яндекс.Карт. Все первые этапы по корректному нарезанию тайлов и миграции сгенерированного кода с 1-й на 2-ю версию прошли быстро и очень легко, но теперь появились вопросы с изменениями общего кода(который ,так сказать, получается  неким синтезом из API 1 и 2) . Вопросы таковы: 

1)Можно ли не показывать подложку, т.е во время перемещении изображения, при достижении его границы действие перемещения останавливалось?

2)Как можно осуществить загрузку карты сразу во весь экран, т.е полный экран по умолчанию, и возможно ли подстраивание карты под различные типы дисплеев?

Сильно не бейте, если вопросы слишком простые, так как только начал изучение API карт :)

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

1. Через опцию карты restrictMapArea

2. Через state карты bounds

А эти опции прописывать в тайлер скрипте или в самой хтмлке? Если в хтмлке(которая API v1), то в опциях или после них?

P.S. Извиняюсь за задержку с ответом. 

Эти опции прописываются карте. В код ее создания

Следовательно в код тайлер скрипта, так как именно там происходит создание карты. Но вот какая проблема - после вписывания туда опции 'restrictMapArea: true' ничего не происходит и карта никак не ограничивается. 

Все, restrict заработал, оказалось я его не туда ставил (передавал restrictMapArea в state, а не в options)  

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

Вы можете использовать Декартову проекцию если ваша фотография никак не привязана к слоям карты.

А вы не могли бы объяснить вот этот момент поподробнее, я не очень понимаю как получить через проекцию все 4 географические координаты моей фотографии?

 

Наверное координаты будут зависить от параметров (bounds) переданных в проекцию при ее создании

Спасибо, разобрался с проекцией, поигрался с ней в песочнице на примере создания собственной карты, но на локальной машине опять все не так, как нужно. После инициализации в тайлер скрипте декартовой проекции (projection: new ymaps.projection.Cartesian([-1,-1],[1,1])) и установки центра карты [0,0], она перестает загружаться с ошибкой "Failed to load resource". Как вы думаете, с чем это может быть связано?  

Извиняюсь за настырность, но внезапно возникла потребность разместить на самой карте фотографию.

Как я понимаю, делается это через подключения доп.слоя(Layer), но вот в чем незадача - каким образом эту самую картинку можно привязать к определенным геокоординатам и ограничить по размерам? Просто, в описании к классу я не нашел методов позволяющих сделать вышеперечисленное.

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

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

В программе можно привязать картинку к координатам, но этим координатам(пиксельным) в соответствие нужно выставить геокоординаты и вот именно с ними и возникают проблемы, т.е каким образом определить геокоординату какой-либо пиксельной координаты?

Также интересно узнать узнать ваше мнение относительно вышеприведенного вопроса по поводу доп.слоев?

Обычно привязывают углы изображения,

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

По поводу углов все понятно, а вот по поводу инструмента не совсем, т.е я к своей картинке привязываю рандомные координаты? 

 

Вы прочитайте инструкцию как им пользоваться

А ну и относительно доп.слоев, вы не могли бы все-таки сказать пару слов? :)

Что за доп.слои?

 

Вот, я выше спрашивал

Извиняюсь за настырность, но внезапно возникла потребность разместить на самой карте фотографию.

Как я понимаю, делается это через подключения доп.слоя(Layer), но вот в чем незадача - каким образом эту самую картинку можно привязать к определенным геокоординатам и ограничить по размерам? Просто, в описании к классу я не нашел методов позволяющих сделать вышеперечисленное.