Тайловый сервер на PHP и MBTiles

Ума не приложу, откуда у меня на сервере этот код, но он, зараза, изумительно хорош. Помогает передавать файлы mbtiles в лефлет или OL. Загружаете файл exampleFile.mbtiles на сервер, прописываете необходимые пути и у вас отображаются нужные тайлы.

Файл MBTiles можно получить из QGIS или скачать для примера образец.

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
	<head>
		<title>PHP Map Server</title>
		<meta charset="utf-8" />
		<link rel="stylesheet" href=".../leaflet.css"/>
		<script src=".../leaflet.js"></script>
		<script src=".../script.js"></script>
	</head>
	<body>
		<div id="map"></div>
	</body>
</html>

JavaScript (файл script.js)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let map = new L.Map("map",{
			zoomControl:false, 
			zoom: 10, 
			center: [55.741126, 37.489289]
			})
let mapquestOSM = 
	new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
		attribution: '...'}).addTo(map)
let mbTiles = 
   new L.tileLayer('tileserver/mbtiles.php?db=exampleFile.mbtiles&z={z}&x={x}&y={y}',{
		tms: true,
		attribution: '...',
		opacity: 1.0
		}).addTo(map)
 
let baseLayers = {"OpenStreetMap": mapquestOSM,}
let overlays = {"Local MBTiles File": mbTiles,}
layersControl = new L.Control.Layers(baseLayers, overlays).addTo(map)

PHP (файл tileserver/mbtiles.php)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$zoom = $_GET['z'];
$column = $_GET['x'];
$row = $_GET['y'];
$db = $_GET['db'];
  try
  {
    // Open the database
    $conn = new PDO("sqlite:$db");
 
    // Query the tiles view and echo out the returned image
	$sql = "SELECT * FROM tiles WHERE 
			zoom_level = $zoom AND 
			tile_column = $column AND 
			tile_row = $row";
	$q = $conn->prepare($sql);
	$q->execute();
 
	$q->bindColumn(1, $zoom_level);
	$q->bindColumn(2, $tile_column);
	$q->bindColumn(3, $tile_row);
	$q->bindColumn(4, $tile_data, PDO::PARAM_LOB);
 
	while($q->fetch())
	{
	header("Content-Type: image/png");
	echo $tile_data;
	}
  }
  catch(PDOException $e)
  {
    print 'Exception : '.$e->getMessage();
  }
?>
Самоподобный грех

Самоподобный грех

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

Грех дискретен или континуален? Если его моделировать, какой метод будет предпочтительнее: диффуры или теория катастроф? В процессе созерцания огня мне разъяснили матчасть. Понял я не все, но выводы сделал любопытные.

Оказывается, каждый грех обладает некоторой степенью. Именно степень определяет величину греха, а следовательно греховно абсолютно все, вопрос лишь в масштабах. Я не знаю как быть с благодеяниями: умножать на минус единицу или благодеяние это тоже грех, но под корнем, однако ясно, что существуют нейтральные поступки, которые не являются ни грехом, ни благодеянием. Предположив, что имеет место сложение и умножение грехов, а также справедливость коммутативного, ассоциативного и дистрибутивного законов (последнее утверждаю на основе эмпирических наблюдений), рискну предположить, что религиозное понятие греха с математической точки зрения представляет собой алгебраическое кольцо. Еще бы вспомнить примеры идеала греха и греховного гомоморфизма.

С топологическими свойствами сложнее. Я пытался спросить о самоподобии греха, но встретил непонимание. Будучи полным невеждой в религиозных вопросах, полагаю, что проблема непрерывности греха вызвана не его особой сущностью, а ошибочным применением геометрии. Если выражать пространство греховности через размерность Минковского или Хаусдорфа-Безиковича, а величину греха через эвклидову размерность мы получим наблюдаемую картину таинственности.

Конечно, подобные размышления — полный бред. Я с этим согласен. Для описания греха следует не впадать в ересь, а использовать теорию Лотфри Заде. Но проблема нечетких вычислений в том, что они не устраняют вопросы, а лишь отодвигают их на другой уровень. Хорошо, мы выразим грех через характеристическую переменную, но сама переменная относится к какому множеству?

Многие возмущаются урокам веры в школах, а зря. Может посещай в свое время такие уроки, я бы глупых вопросов не задавал. В прошлом году в Ессентуках посетил церковь и спросил, квантуется ли грех? Ничего не сказали, но посмотрели как на полного идиота. Видимо, очевидный ответ на этот вопрос понятен всем, кроме меня.

Ец

Какой смысл в русском языке несет окончание «ец»? Почему лесовод и полководец, но никогда лесоводец и полковод? И вообще, что это: окончание, суффикс или какой-то древний корень?

Пищевая потребность

Уже не вспомню, когда последний раз испытывал удовольствие от еды. Все одинаково безвкусно. От этой кулинарии лишь повсюду грязь, зря потраченное время и куча посуды. Но больше всего бесит необходимость регулярного приема пищи. Только поел, как на следующий день опять хочется.

Столько раз слышал о решении проблемы голода. Но если вдуматься, человечество не решает проблему голода, а пытается получить возможность обжорства. Даже не знаю, завидовать мне гурманам или сочувствовать им.

Фильм о заботе и любви

Мелодрамы меня утомляют, но тут такую нашел, что не оторваться. По сюжету главный герой пытается заработать денег для семьи, а его жена из соображений куриной заботы и любви портит все планы. А когда испортить не может, просто пилит мозг из самых лучших побуждений.

Крайне рекомендую к просмотру всем молодоженам или просто задающимся вопросом взаимоотношений мужчины и женщины.

Календари

Календари

Каждый год покупаю отрывной календарь охотника и рыболова для ежедневного напоминания о важности культуры производства. Ну как так можно? Уже к середине года календарь разваливается на части, из него торчит бумажная бахрома, а каждый новый листок отрывать все сложнее и противнее.

Про содержание говорить смешно. Конец мая на дворе, а составители дают совет о выборе мормышек.

В чем причина столь низкого качества? Умеет ли кто-нибудь делать нормальные отрывные календари? А может, кроме меня и полоумных бабок календари уже никто не использует?

Лиссабон

Лиссабон

Лиссабон слишком переоценен. Да, там смешные трамвайчики и любопытный, хоть и запущенный ботанический сад. В остальном ничего выдающегося: такие же коричневые крыши и синие азулежу. А еще гопниковатые негры, грязища, страшные проститутки, куча русских и негде искупаться. Для сравнения, в Порту можно сесть на троллейбус, выйти на круге, купить в местной «Пятерочке» портвейна за пятьдесят центов и уже через пару минут сидеть на берегу Атлантического океана. В Лиссабоне для купания вам придется сесть на поезд и час ехать до Кашкая. А в итоге вы получите отвесные скалы и маленький пляж, размером с ХХ лет РККА.

Красивого много. Но я не готов приехать в город и довольствоваться лишь визуальными впечатлениями, а более делать там почти нечего. Обыкновенная морковная столица с городскими заботами и показным туристическим фасадом. Пол-часа в Авейро расскажут вам о Португалии больше, чем неделя в Лиссабоне. Более бессмысленный во всей Иберии только Мадрид, но Испанию я терпеть не могу, а потому отношусь предвзято.

Из всего Лиссабона, помимо профессиональных интересов, меня привлекли совершенно потрясающие уличные музыканты. Исполняют смесь попсы и регги, но как же душевно поют, черти. Так бы лежал на лавке всю ночь и слушал их дивные шипящие голоса.

А еще в Лиссабоне стоит огромный памятник Христу. Вы наверняка его видели. Ведь не может человек в России дожить до вменяемого возраста, не подсмотрев хоть краем глаза бразильские сериалы. Вечером подойдешь к набережной, достанешь початую бутылку портвейна. Пробка глубоко сидит, не открыть. Ухватишься зубами и под аппетитный «чпок» распечатаешь тару. Тут бы и выпить, но задумчиво глядят на тебя сверху каменные глаза.

— Привет, Иисус! Будешь со мной?
— Рад бы, да я на посту — разведет в ответ руками гигантский Иисус
— Ну тогда я один, не обессудь. Может в следующий раз компанию составишь. Твое здоровье!

Плывет по пищеводу прохладный портвейн под регги лиссабонских музыкантов. И теплый ветер кудрявит волосы. И пропадают в темноте гоповатые негры.

Прогудит паром, звякнет пузатый трамвайчик, засмеется окрестная молодежь. Определенно прекрасен город Лиссабон, хоть и понимаешь это не сразу.

В очередной раз

В очередной раз

Каждый день прохожу мимо разрушенного дачного дома. Таких тут много, целыми улицами. Бывают кирпичные в два этажа с башенками, много из бруса, а этот совсем скромен. Даже не дом, а скорее саманная сараюшка. Непогоду переждать. Сейчас от нее остался контур стен и одно окно. Крыша почти обвалилась, строение держится лишь за счет малых своих размеров. Да еще потому, что такая насмешка и целая никому не нужна.

Я человек циничный. Традиции общественного гудения не противоречу, но честно говоря, мне плевать на всех жертв холокоста, репрессий и татаро-монгольского ига. Все это было в книжках и фильмах. Последняя страница, титры и возвращается настоящая жизнь. Чайник надо поставить, а днем магазин посетить. Полтергейсты меня веселят, а инопланетян встречал только раз, да и те оказались брошенной на помойке гирляндой. Контакт замкнуло, засветились огни. А я уж спьяну решил, будто в моей жизни рассказ Саймака воплотился.

Не пронимает меня ни кровавая история, ни психоделический кошмар. Так и жил бы спокойно, дурак дураком, но каждый раз прохожу мимо останков дома. Там вбит гвоздь, насквозь проржавевший. На гвозде висит советский плащ. Хозяин вернулся с дождя, повесил одежду, чайник поставил. Потом солнце выглянуло и плащ ни к чему оказался. А вот теперь и хозяин умер и дом почти развалился. Только плащ все висит. И снять его нельзя и забыть про него невозможно. Снимешь — все равно как человека убьешь. Что еще от него в этом мире осталось? Но даже когда уезжаю в другие города и страны плащ продолжает висеть. Днем и ночью, в любой сезон, при любой погоде.

Самый жуткий ужас не выпрыгивает ночью из кустов. Он лениво живет в тебе и ждет. Ничего не делает, не мешает, не беспокоит. Но от этого еще страшнее, потому что ты знаешь — вот он. Твой стакан на столе, успеешь ли ты к нему прикоснуться? Обувь, книжки, люди, техника, вид из окна. Сегодня все опять повторится. Хозяин плаща тоже так думал, но очередной «в очередной раз» стал последним.

Так страшно и так жить хочется.

Ободряющее

Если однажды вы почувствуете себя глупо, просто вспомните: недавно я при разговоре по телефону умудрился экраном порезать себе ухо. Теперь я ненавижу телефонные разговоры, поскольку боюсь, что в ушном проходе застрянет осколок противоударного стекла.

Обэриутство

Обожаю авторов без границ мышления. Таких, что могут утомлять бытовухой, а после в секунду достанут твой мозг из черепа, разорвут и положат обратно. Часами готов читать Хармса, слушать группу «Палево» и смотреть мультики Евы Морозовой.

Критерий качества очень простой. Если неожиданно вскидываешь руки с криком «Да что за хрень тут происходит!», значит действительно нашел нечто ценное. Моя максима проста: искусство отупляет человека, но еще Лао Цзы говорил: «Всякая вещь, дойдя до предела, превращается в свою противоположность».