JSFiddle - React, Tailwind, and code Playground
HTML
<div id="map" class="map"></div>
CSS
</style>
<script type="text/javascript" src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<style>
html, body, .map {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
JavaScript
ymaps.ready(function () {
var LAYER_NAME = 'user#layer',
MAP_TYPE_NAME = 'user#customMap',
TILES_PATH = 'https://sandbox.api.maps.yandex.net/examples/ru/2.1/custom_map/images/tiles'; // Директория с тайлами.
/**
* Конструктор, создающий собственный слой.
*/
var Layer = function () {
var layer = new ymaps.Layer(function (tileNumber, zoom) {
// TILES_PATH + '/%z/%x-%y.jpeg',
var correctedZoom = zoom - 1;
return TILES_PATH + '/' + correctedZoom + '/' + tileNumber[0] +
'-' + tileNumber[1] + '.jpeg';
}, {
// Если тайл не загрузился, показываем это изображение.
notFoundTile: TILES_PATH + '/2/0-0.jpeg',
tileSize: [600, 600]
});
// Указываем доступный диапазон масштабов для данного слоя.
layer.getZoomRange = function () {
return ymaps.vow.resolve([1, 3]);
};
// Добавляем свои копирайты.
layer.getCopyrights = function () {
return ymaps.vow.resolve('©');
};
return layer;
};
// Добавляем в хранилище слоев свой конструктор.
ymaps.layer.storage.add(LAYER_NAME, Layer);
/**
* Создадим новый тип карты.
* MAP_TYPE_NAME - имя нового типа.
* LAYER_NAME - ключ в хранилище слоев или функция конструктор.
*/
var mapType = new ymaps.MapType(MAP_TYPE_NAME, [LAYER_NAME]);
// Сохраняем тип в хранилище типов.
ymaps.mapType.storage.add(MAP_TYPE_NAME, mapType);
/**
* Создаем карту, указав свой новый тип карты.
*/
var map = new ymaps.Map('map', {
center: [0, 0],
zoom: 1,
controls: ['zoomControl'],
type: MAP_TYPE_NAME
}, {
// Задаем в качестве проекции Декартову.
projection: new ymaps.projection.Cartesian([[-10, -10], [10, 10]], [false, false])
});
map.geoObjects.add(new ymaps.Placemark([0, 0]));
});