11 сентября 2014-го

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

Весь покрытый зеленью

Что это за точка в Атлантическом океане? Определённо, остров. Одно из значений слова null — «несуществующий», и оно верно: на самом деле, там пусто, несмотря на то, что в OpenStreetMap там каждый день разные вещи. Точка (0; 0) знакома каждому картографу: она часто притягивает данные, которые должны быть в другом месте. «Null Island» — это также самоназвание группы весёлых ГИС-разработчиков в Штатах (преимущественно из Stamen), которые вчера собрались на вечеринке в рамках FOSS4G. Конечно, у них есть футболки, подробная карта и сайт острова. Многие догадались, что поскольку в разных системах координат центр различен, остров на самом деле архипелаг, и Стивен Мэзер построил его схему.

Кстати, компания Stamen снова получила грант фонда Knight Foundation (того, что спонсировал редактор iD) на новые серверы, расширение слоя Terrain на весь мир и улучшение повсеместно используемого слоя Toner. Последний они в честь события опубликовали на GitHub — теперь его, наконец, можно самостоятельно починить для использования в обходных листах.

Он снова здесь

Помните, когда-то в древности была такая библиотека — OpenLayers? В своё время технологический прорыв, она выросла в большого некрасивого монстра, которым пользовались, скорее, от отсутствия альтернатив и от действительно хорошо оттестированного движка, работавшего даже на безнадёжно устаревших браузерах, вроде Opera. Последнее немного затормозило распространение Leaflet (и я был в числе недовольных, когда он захватил osm.org), но ненадолго: теперь библиотекой OpenLayers пользуются либо бородатые ГИС-программисты, либо новички, по несчастью наткнувшиеся на слишком старый учебник.

Две недели назад многолетняя работа по осовремениванию движка завершилась выпуском версии 3.0.0. На сайте, к сожалению, нет учебника, кроме несуразного quick start (прошлая версия тоже страдала отсутствием вменяемой документации), потому создаётся впечатление, что получилось стильно, кратко, молодёжно: даже скрипт библиотеки теперь называется ol.js. В анонсах упор делают на WebGL и трёхмерные карты, хотя в примерах их непросто найти. Если погрузиться в справочник, всплывают страшные конструкции, вроде ol.control.defaults().extend({...}) для банального добавления элементов управления, и понимаешь, что проще не стало.

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

  • чтобы написать шесть строчек кода, нужно прочитать пару десятков страниц документации по API: примеры и учебник только запутают;
  • А-А-А-А! нажмите Alt+Shift и подвигайте карту! Включено по умолчанию!
  • надеялся, что за это время в команде появился дизайнер, но нет: все элементы интерфейса так же неприглядны;
  • по умолчанию прячут копирайты под значок — что в своё время не сошло с рук MapBox-у;
  • снова чехарда с проекциями, но полегче: не нужно создавать кучу вспомогательных классов;
  • потому что многие константы и объекты можно заменить простыми строками;
  • не lat-lon, а lon-lat, как у взрослых;
  • снова тысяча мелочей из коробки, вроде библиотеки слоёв, экспорта в PNG, разбора OSM XML, кластеринга и heatmap-ов;
  • несмотря на обещанный «high-quality documentation», хорошо выглядит только справочник по API, да и то — до первого вопроса про типы параметров функций;
  • дробный масштаб — не для солидных людей, судя по отсутствию простого способа его включить;
  • надеялся на функциональный аналог Leaflet.draw, но его нет;
  • боюсь представить, как к библиотеке пишутся плагины;
  • интерактивная карта на главной openlayers.org — самая узкая, что я когда-либо видел.

В целом, здорово, что OpenLayers жив. Он — необходимый противовес Leaflet, почти полная противоположность: подтормаживает, сложный и насыщенный API (хотя файл js больше всего в три раза), разработчиков команда, версия больше нуля. Поначалу эта заметка должна была быть негативной, но когда разбираешься, как и зачем сделаны некоторые непривычные вещи в библиотеке, понимаешь объём проделанной работы, её суть и адресатов. Пока не стоит бежать переписывать на неё все свои проекты, но после пары минорных релизов и выпуска документации OpenLayers, без сомнения, пошатнёт позиции Leaflet как «монополиста» в пользовательской картографии.

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

8 сентября 2014   · · ·
← Ctrl →
· · ·   17 сентября 2014