Маркеры

Задача
Динамически, на основе фотографий из блога, формировать красивые маркеры для google map.

Анализ
В начале своей карьеры программиста, я интересовался компьютерной графикой, работой с битовыми картами, каналами и т.п.. Поэтому вариант простой реализации данной задачи сформировался еще во время постановки задачи. И заключался этот вариант в следующем – использовать готовый дизайн маркера, честно скачанный из интернета, в качестве трафарета.

Реализация
Поскольку блог работает на движке wordpress, само собой решения задачи будет выполнено на php.

Создаем класс трафарета (Stencil), в который мы будем передавать любое кропнутое в квадрат изображение, и трафарет маркера. Трафарет маркера предварительно, в графическом редакторе, приведем к одному тону, но это не будет играть существенной роли.


class Stencil {
    private $source;
    private $width;
    private $height;
    public function __construct($filename) {
        // get source image
        $this->source = imagecreatefromjpeg($filename);
        $this->width = imagesx($this->source);
        $this->height = imagesy($this->source);
    }
}

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

Интеграция
Для работы в контексте wordpress блога, я создал страницу с кастомными шаблоном и добавил код формирования маркера. Эта страничка вызывается 1! раз, только при условии отсутствия файла маркера, все остальные запросы на маркеры отдаются веб сервером напрямую, в моем случае через nginx.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *