Как использовать листовку для просмотра изображений и перезагрузки изображений при увеличении

def is_subseq(x, y):
    it = iter(y)
    return all(any(c == ch for c in it) for ch in x)

assert is_subseq('india', 'indonesia')
assert is_subseq('oman', 'romania')
assert is_subseq('mali', 'malawi')
assert not is_subseq('mali', 'banana')
assert not is_subseq('ais', 'indonesia')
assert not is_subseq('ca', 'abc')

Также работает для любых итераций:

assert is_subseq(['i', 'n', 'd', 'i', 'a'],
                 ['i', 'n', 'd', 'o', 'n', 'e', 's', 'i', 'a'])

UPDATE

Стефан Почманн предложил это.

def is_subseq(x, y):
    it = iter(y)
    return all(c in it for c in x)

Обе версии использует итераторы; Итератор дает элементы, которые не были получены на предыдущей итерации.

Например:

>>> it = iter([1,2,3,4])
>>> for x in it:
...     print(x)
...     break
...
1
>>> for x in it:  # `1` is yielded in previous iteration. It's not yielded here.
...     print(x)
...
2
3
4
0
задан Huub S 16 January 2019 в 13:33
поделиться

1 ответ

Я не знаю почему, но кажется, что это работает (я вижу запрос плитки в сетевом журнале), когда масштабирование равно 1 или окружает.

Я нашел другую статью из листовки здесь: https://leafletjs.com/examples/crs-simple/crs-simple.html

И, для информации, вы можно убрать управление масштабированием с помощью zoomControl

var map = L.map('image-map', {
    minZoom: 1,
    maxZoom: 1,
    crs: L.CRS.Simple,
    zoomControl: false
}).setView([0, 0], 1);

Кажется, что работает (может видеть запросы в консоли)

var map = L.map('image-map', {
  minZoom: 1,
  maxZoom: 1,
  crs: L.CRS.Simple
}).setView([0, 0], 1);

var southWest = map.unproject([0, 1024], map.getMaxZoom());
var northEast = map.unproject([1024, 0], map.getMaxZoom());
map.setMaxBounds(new L.LatLngBounds(southWest, northEast));

L.tileLayer('/map-tiles/map_{x}_{y}.jpg', {

}).addTo(map);
#image-map {
  border: 1px solid black;
  height: 250px;
}
<link href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" rel="stylesheet" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA=="
  crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js" integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg=="
  crossorigin=""></script>

<div id="image-map"></div>
[1119 ]

Кажется, не работает (не видит запросы в консоли)

var map = L.map('image-map', {
  minZoom: 20,
  maxZoom: 20,
  crs: L.CRS.Simple
}).setView([0, 0], 20);

var southWest = map.unproject([0, 1024], map.getMaxZoom());
var northEast = map.unproject([1024, 0], map.getMaxZoom());
map.setMaxBounds(new L.LatLngBounds(southWest, northEast));

L.tileLayer('/map-tiles/map_{x}_{y}.jpg', {

}).addTo(map);
#image-map {
  border: 1px solid black;
  height: 250px;
}
<link href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" rel="stylesheet" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA=="
  crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js" integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg=="
  crossorigin=""></script>

<div id="image-map"></div>

0
ответ дан Lortet 16 January 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: