1 марта 2013-го

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

Снимкопад

Вчера бинг снова выложил порцию спутниковых снимков, и судя по репликам на форуме, это самое эпичное обновление с прошлого февраля: Великие Луки (!), Сергиев Посад, Адлер, Чебоксары, Сызрань, Пенза и деревня Большие Коты: ни одна область не обижена раздачей. Как ни смешно, ряд городов, которые Совет готовился почистить из-за отрисовки по гуглоснимкам, получил покрытие бинга и «спасён». Крупная карта обновления — под картинкой:

http://shtosm.ru/pictures/bing-coverage-1302-small.png

Если новые снимки с облаками закрывают более хорошие старые, не жалуйтесь на форуме, а найдите на Bing Maps проблемное место, нажмите слева внизу «Обратная связь», выберите в окне «Problem with map imagery» и опишите проблему на английском языке. Говорят, помогает.

А внутре у него...

Разработка iD перевалила за экватор, и подходит время документации. John Firebaugh описал в трёх статьях устройство редактора, чтобы будущие разработчики не сломали мозг, продираясь через парадигмы d3.



Первая — про хранение данных: все элементы OSM хранятся в неизменяемых объектах, которые объединены в граф, тоже статичный. Действия, вроде удаления узла, создают новый объект и новый граф, в котором часть объектов заменена новыми версиями (или удалена), а незатронутые сделаны ссылками, чтобы не выесть всю память. Такая структура называется «Persistent data structure», и восстановление её прошлых состояний тривиально.



Во второй части Джон рассказал про режимы рисования, которые влияют на поведение некоторых элементов управления (хотя с точки зрения пользователя режимов всего два: создание и изменение). Также он описал контекстные операции над объектами, и почему их список на экране должен быть неизменен, хотя не все операции могут быть применимы.



Завершается трилогия описанием системы рендеринга карты, полностью основанной на библиотеке d3. Из него я узнал, что нынче модно эмулировать классы в javascript через функции, возвращающие функции (потому что функции — это объекты). Для рендеринга данные OSM отображаются на геометрию более высокого уровня: точки, вершины, ломаные и контуры, которые затем скармливаются d3. Элементы интерфейса редактора тоже следуют конвенциям библиотеки.

В последнем абзаце автор дал ссылку на пересказ статей в гитхабе и пообещал, что он ещё не раз поменяется.
2013   id