Яндекс карты: расстояние до ближайшего полигона

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

Основная «фишка» в алгоритме. После клика по некой точке вне полигона происходит следующее:

  1. Определяется индекс полигона, расстояние до которого минимально. (просто берём все вершины полигона и ищем расстояние от них до той точки, на которую кликнули. Ищем минимальное расстояние. Сравниваем с минимальными расстояниями других полигонов.)
  2. Определяем геометрический центр ближайшего полигона (к примеру, по оси X — это центр линии с вершинами самой левой и самой правой вершины полигона; аналогично — с осью Y)
  3. Строим маршрут от точки, куда кликнули до этого геометрического центра.
  4. Делим маршрут на отрезки и для каждого отрезка определяем — лежит ли он внутри полигона или нет
  5. Все отрезки, лежащие вне полигона — добавляем в некий массив отрезков, который и будет искомым маршрутом
  6. Находим тот отрезок, который пересекает наш полигон (перебираем каждую грань полигона и проверяем функцией пересечения отрезков с заранее известными координатами)
  7. Находим точку пересечения этого отрезка и полигона и её добавляем в искомый массив отрезков.
  8. Строим маршрут.

Читать далее

JS плагин для сохранения данных на локальный диск.

Нашел отличный JS плагин для сохранения данных на жесткий диск.

К сожалению, document.execCommand(‘SaveAs’) уже не спасает, посему встречайте:

https://github.com/eligrey/FileSaver.js

пример использования:

var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");

Демка здесь.

Стилизуем NetBeans в тёмные тона

Всем привет! Решил на этих выходных поиграться с настройками оформления NetBeans, благо свободное время появилось. Так как для меня NetBeans — основной инструмент разработки, я решил так сказать приукрасить своё «рабочее место». Что из этого вышло читаем ниже.

Читать далее

Полезные ссылки для дизайнеров и верстальщиков

Для дизайнеров:
Freebbble: Бесплатные элементы дизайна из Dribbble.
Couleurs: Простое приложения для определения цветов, которые вы видите на экране.
Pexels: Лучшие бесплатные фото в одном месте.
Для верстальщиков:
Ultimate CSS Gradient Generator: Кроссбраузерный генератор градиента.
Font Squirrel: 100% бесплатные коммерческие шрифты.

Для всех:
Joxi: удобная программа для скриншотов и обмена файлами по сети.