Версия:
Популярные примеры
Карта
Геообъекты
Балун и хинт
Элементы управления
Активные области
Кластеризация
GeoQuery
Поведения и события
Поиск по карте
Пробки
Местоположение пользователя
Маршрутизация
YMapsML
GeoXML
ObjectManager
Модульная система
Панорамы
Внешние модули

Создание своей панорамы

Сохранить как файлыЭкспорт на JSFiddle

Плеер панорам API Яндекс.Карт позволяет создавать и отображать свои панорамы.

Для создания своей панорамы нужно разрезать панорамное изображение на тайлы и описать его, реализовав интерфейс IPanorama. В этом может помочь класс panorama.Base.

\n\n","panorama_custom.js":"ymaps.ready(function () {\n // Для начала проверим, поддерживает ли плеер браузер пользователя.\n if (!ymaps.panorama.isSupported()) {\n // Если нет, то ничего не будем делать.\n return;\n }\n\n // Сначала описываем уровни масштабирования панорамного изображения.\n // Для этого заводим класс, реализующий интерфейс IPanoramaTileLevel.\n // Параметрами конструктора будут шаблон URL тайлов и размер уровня.\n function TileLevel (urlTemplate, imageSize) {\n this._urlTemplate = urlTemplate;\n this._imageSize = imageSize;\n }\n\n ymaps.util.defineClass(TileLevel, {\n getTileUrl: function (x, y) {\n // Определяем URL тайла для переданных индексов.\n return this._urlTemplate.replace('%c', y + '-' + x);\n },\n\n getImageSize: function () {\n return this._imageSize;\n }\n });\n\n // Теперь описываем панораму.\n function Panorama () {\n ymaps.panorama.Base.call(this);\n // Наша панорама будет содержать два уровня масштабирования\n // панорамного изображения: низкого и высокого качества.\n this._tileLevels = [\n new TileLevel('tiles/lq/%c.jpg', [512, 256]),\n new TileLevel('tiles/hq/%c.jpg', [7168, 3584])\n ];\n }\n\n // Наследуем класс панорамы от ymaps.panorama.Base, который частично\n // реализует IPanoramaTileLevel за нас.\n ymaps.util.defineClass(Panorama, ymaps.panorama.Base, {\n getPosition: function () {\n // Панорама будет располагаться в начале координат...\n return [0, 0, 0];\n },\n\n getCoordSystem: function () {\n // ...декартовой системы.\n return ymaps.coordSystem.cartesian;\n },\n\n getAngularBBox: function () {\n // Область, которую занимает панорама на панорамной сфере.\n // В нашем случае это будет вся сфера.\n return [\n 0.5 * Math.PI,\n 2 * Math.PI,\n -0.5 * Math.PI,\n 0\n ];\n },\n\n getTileSize: function () {\n // Размер тайлов, на которые нарезано изображение.\n return [512, 512];\n },\n\n getTileLevels: function () {\n return this._tileLevels;\n }\n });\n\n // Теперь создаем плеер с экземпляром нашей панорамы.\n var player = new ymaps.panorama.Player('player', new Panorama());\n});\n"},"resources":["tiles/hq/0-0.jpg","tiles/hq/0-1.jpg","tiles/hq/0-10.jpg","tiles/hq/0-11.jpg","tiles/hq/0-12.jpg","tiles/hq/0-13.jpg","tiles/hq/0-2.jpg","tiles/hq/0-3.jpg","tiles/hq/0-4.jpg","tiles/hq/0-5.jpg","tiles/hq/0-6.jpg","tiles/hq/0-7.jpg","tiles/hq/0-8.jpg","tiles/hq/0-9.jpg","tiles/hq/1-0.jpg","tiles/hq/1-1.jpg","tiles/hq/1-10.jpg","tiles/hq/1-11.jpg","tiles/hq/1-12.jpg","tiles/hq/1-13.jpg","tiles/hq/1-2.jpg","tiles/hq/1-3.jpg","tiles/hq/1-4.jpg","tiles/hq/1-5.jpg","tiles/hq/1-6.jpg","tiles/hq/1-7.jpg","tiles/hq/1-8.jpg","tiles/hq/1-9.jpg","tiles/hq/2-0.jpg","tiles/hq/2-1.jpg","tiles/hq/2-10.jpg","tiles/hq/2-11.jpg","tiles/hq/2-12.jpg","tiles/hq/2-13.jpg","tiles/hq/2-2.jpg","tiles/hq/2-3.jpg","tiles/hq/2-4.jpg","tiles/hq/2-5.jpg","tiles/hq/2-6.jpg","tiles/hq/2-7.jpg","tiles/hq/2-8.jpg","tiles/hq/2-9.jpg","tiles/hq/3-0.jpg","tiles/hq/3-1.jpg","tiles/hq/3-10.jpg","tiles/hq/3-11.jpg","tiles/hq/3-12.jpg","tiles/hq/3-13.jpg","tiles/hq/3-2.jpg","tiles/hq/3-3.jpg","tiles/hq/3-4.jpg","tiles/hq/3-5.jpg","tiles/hq/3-6.jpg","tiles/hq/3-7.jpg","tiles/hq/3-8.jpg","tiles/hq/3-9.jpg","tiles/hq/4-0.jpg","tiles/hq/4-1.jpg","tiles/hq/4-10.jpg","tiles/hq/4-11.jpg","tiles/hq/4-12.jpg","tiles/hq/4-13.jpg","tiles/hq/4-2.jpg","tiles/hq/4-3.jpg","tiles/hq/4-4.jpg","tiles/hq/4-5.jpg","tiles/hq/4-6.jpg","tiles/hq/4-7.jpg","tiles/hq/4-8.jpg","tiles/hq/4-9.jpg","tiles/hq/5-0.jpg","tiles/hq/5-1.jpg","tiles/hq/5-10.jpg","tiles/hq/5-11.jpg","tiles/hq/5-12.jpg","tiles/hq/5-13.jpg","tiles/hq/5-2.jpg","tiles/hq/5-3.jpg","tiles/hq/5-4.jpg","tiles/hq/5-5.jpg","tiles/hq/5-6.jpg","tiles/hq/5-7.jpg","tiles/hq/5-8.jpg","tiles/hq/5-9.jpg","tiles/hq/6-0.jpg","tiles/hq/6-1.jpg","tiles/hq/6-10.jpg","tiles/hq/6-11.jpg","tiles/hq/6-12.jpg","tiles/hq/6-13.jpg","tiles/hq/6-2.jpg","tiles/hq/6-3.jpg","tiles/hq/6-4.jpg","tiles/hq/6-5.jpg","tiles/hq/6-6.jpg","tiles/hq/6-7.jpg","tiles/hq/6-8.jpg","tiles/hq/6-9.jpg","tiles/lq/0-0.jpg"],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/panorama_custom/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)