Конфигурация "Геостатистика": объединяем статистические данные и географию







Очень часто для представления различных статистических данных используют географические карты, разрисованные разными цветами в зависимости от значений определенных величин. Теперь рисовать такие карты можно и с помощью 1С:Предприятие!
Конфигурация "Геостатистика" позволяет визуально представлять произвольные данные на географических картах — все что для этого нужно — это шаблон карты и набор данных.

Очень часто для представления различных статистических данных используют географические карты, разрисованные разными цветами в зависимости от значений определенных величин. Мне всегда нравился такой способ представления информации — все очень наглядно и красиво. И мне всегда в глубине души хотелось научиться рисовать такие карты. Но, во-первых, нужно было где-то найти «шаблоны» карт. Во-вторых, как-то автоматизировать процесс, т.к. рисовать вручную в графическом редакторе — не вариант для настоящего программиста. К счастью, недавно мне удалось решить обе проблемы. Предлагаю вашему вниманию конфигурацию «Геостатистика» для платформы «1С:Предприятие 8.3».

Главное меню

Конфигурация состоит всего лишь из трех справочников: «Шаблоны карт», «Наборы данных» и «Карты».

Шаблон карты

В справочник «Шаблоны карт» можно загружать шаблоны географических карт в формате Географической схемы 1С:Предприятие (.geo) и т.н. Shape-файлов (Карт ArcInfo, .shp). Файлы карт можно перетаскивать прямо в форму списка справочника. Но вопрос: где же взять эти самые карты? Вот вам несколько полезных ссылок на эту тему:

У пользователя adun есть отличный набор уже готовых географических схем Украины, Киева, Харькова, Москвы, Санкт-Петербурга и других районов нашей прекрасной планеты.

Также советую ознакомиться с его замечательной статьей о том, как конвертировать карты из различных форматов в формат географической схемы 1С. Если вдруг у вас что-то не получится, насколько я знаю, он может оказать услуги по изготовлению карт на заказ — обращайтесь к нему в личку.

Лично я для себя нашел еще один превосходный источник шаблонов карт — проект OpenStreetMap, в частности, несколько сервисов по генерации и экспорта Shape-файлов с различными слоями разных стран и регионов на основе данных проекта:

http://download.geofabrik.de/

http://beryllium.gis-lab.info/project/osmshp/

http://wiki.openstreetmap.org/wiki/WeoGeo

При импорте Shape-файлов, правда, иногда возникают проблемы — не все они корректно загружаются в географические схемы. Для того, чтобы импорт прошел успешно, в Shape-файле должна использоваться кодировка windows-1251, система координат WGS 1984, начальным меридианом должен быть Гринвич, единицами измерения — десятичные градусы. При необходимости, переконвертировать Shape-файлы можно, например, с помощью QGIS.

Набор данных

В справочник «Наборы данных» можно загружать данные из файлов Excel (.xls), текстовых документов (.txt, .csv), табличных документов (.mxl). Файлы с наборами данных можно перетаскивать прямо в форму списка справочника. Также данные можно скопировать прямо в поле табличного документа на форме элемента справочника или ввести вручную.

Настройки формирования карт

В справочнике «Карты» хранятся настройки формирования заполненной и «раскрашенной» согласно выбранным шаблону карты и набору данных карты. Спасибо пользователю kao_andi за предложенный им метод интерактивного выбора цвета, т.к. для выбранного алгоритма заполнения было важно, чтобы цвет был абсолютным (работает только на платформе 8.3).

Сформированную карту можно сохранить в виде географической схемы или изображения.

Сформированная карта

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

Обновление 10.06.2014: Исправлена ошибка неправильного расчета максимального и минимального значений.

Обновление 11.06.2014: Кроме «раскраски» цветом и заполнения текста объектов схемы добавлены новые способы отображения значений (гистограмма, круговая и т.д.) — добавлен реквизит «Тип отображения серии» в справочник «Карты».

Сформированная карта

Сформированная карта

9 Comments

  1. Franco

    А по каким интервалам идёт ‘расцветовка’ в схеме ‘Явка на выборы президента 2014’?

    Например, согласно нарисованным данным h t t p: // news.bigmir.net/ukraine/818757-Javka-na-vyborah-prezidenta-Ukrainy-2014—onlajn- явка по областям:

    -Луганская — 38,94%

    -Одесская — 46,01%

    -Закарпатская — 51,8%

    Они светло-зелёные В то же время у Харьковской (47,9%), Херсонской (51,42%), Николаевской (51,61%) — цвет темнее. Интервалы вроде бы пересекаются, не?

    Одна только Донецкая отмечена правильно, не собирается переходить на тёмную сторону…

    Reply
  2. kharts

    (1) Franco, «Расцветовка» происходит по следующей формуле(например, для «красной» компоненты):

    Красный = КрасныйМинимума + (КрасныйМаксимума — КрасныйМинимума) * (Значение — Минимум) / (Максимум — Минимум).

    Для указанных Вами областей получились следующие результаты:



    Область Явка, % Цвет(R,G,B)

    Луганская 38,94 (160,208,223)

    Одесская 46,01 (142,194,213)

    Харьковская 47,9 (137,191,211)

    Закарпатская 51,08 (129,184,206)

    Херсонская 51,42 (128,184,206)

    Николаевская 51,61 (127,183,206)



    Т.е, чем выше явка, тем «темнее» область.

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

    Reply
  3. AnryMc

    (2)

    При попытке смены цвета (минимум, максимум) в готовых «Картах»

    {Обработка.ДиалогВыбораЦвета.Форма.ВыборЦвета.Форма(347,23)}: Тип не определен (ФорматированнаяСтрока)

    ПримерТекста = Новый <<?>>ФорматированнаяСтрока(СтрокиПримераТекста, , ТекущийЦвет, ?(СуммаСостовляющих > 384, ЧерныйЦвет, БелыйЦвет));

    {Обработка.ДиалогВыбораЦвета.Форма.ВыборЦвета.Форма(348,21)}: Тип не определен (ФорматированнаяСтрока)

    ПримерФона = Новый <<?>>ФорматированнаяСтрока(СтрокиПримераФона, , ?(СуммаСостовляющих > 384, ЧерныйЦвет, БелыйЦвет), ТекущийЦвет);
    Reply
  4. kharts

    (5) AnryMc, да, выбор цветов работает только на 8.3.

    Чуть позже добавлю в статью акцент на этом.

    Reply
  5. DAnry

    Очень интересная работа. Никогда бы не задумался использовать 1С для таких задач, но результат говорит сам за себя. P.S. Да, очень удачный пример. Спасибо.

    Reply
  6. AnryMc

    (6)

    выбор цветов работает только на 8.3

    но цвет пустого значения — выбирактся 😉

    П.С. Если бы ещё добавить вывод значения не цветом, а например «Столбиками»…

    П.П.С. выбор слоя для вывода значений не везде работает… голосование — можно вывести значение вместо названия области, а в «преступности» — у меня не получилось…

    П.П.П.С. Посмотрите http://infostart.ru/public/67689/ — может пригодиться

    Можно отобразить страну на географической схеме «Карта мира» от 1С.

    Перечень территорий

    Географический регион

    Код классификатора, код АЛЬФА 2 и 3, географический код

    Справочник «Города» — содержит крупные города (с привязкой к странам)
    Reply
  7. kharts

    (8) AnryMc, да, немножко неточно выразился — выбор цветов на 8.2 не работает только для минимумов и максимумов, т.к. там нужен абсолютный цвет — от них потом рассчитываются цвета конкретных объектов. Цвет незаполненного значения используется как есть — поэтому там я оставил стандартный диалог выбора цвета.

    По поводу столбиков — были такие идеи; может, добавлю в одной из следующих версий.

    По поводу заполнения названий объектов вместо раскраски — странно, у меня работает (если снять галочку «Раскрашивать цветами», а Заполняемую серию выбрать NAME)

    За ссылку — спасибо! Интересная работа!

    Reply
  8. AnryMc

    (10) burlakov, Заявление про Крым, не в эту ветку…

    Reply
  9. alegator

    конфигурация работает на управляемых формах? В режиме такси будет работать?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *