Информацию нужно уметь подавать красиво..
В SSRS есть возможность красиво отобразить данные в отчете, если там есть атрибут география будь то страна, регион, город и под рукой есть соответствующая карта.
Попробуем сделать это за 30 мин.
В итоге получится, отчет по регионам России, размер и цвет точки будут указывать количество населения в каждом регионе.
При наведении мышкой на регион должна появляться подсказка с наименованием региона и количеством людей проживающих в этом регионе.
При клике на любой регион должна открыться детальная карта этого региона по районам, в Reporting Services есть возможность сделать подложку карт Bing maps.
1. Загрузить карты .shp в SQL SERVER. Shape-файл — векторный формат для хранения объектов, описываемых геометрией и соответствующими атрибутами. Карта состоит из набора файлов :
.shp - Главный файл .shp содержит информацию о геометрических объектах. Файл состоит из заголовка фиксированной длины и одной или более записью переменной длины. Каждая запись переменной длины включает в себя заголовок записи и содержимое.
.dbf - Файл, в котором записывается атрибутивная информация, геометрических объектов описанных в .SHP — файле. Представляет из себя базу данных в формате dBase II.
Отдельно взятую область можно всегда взять на сайте OpenStreetMap и сконвертировать из формата Osm в shp с помощью этого сервиса или с помощью QGIS
Подробно о конвертации можно найти здесь
Для загрузки данных нам понадобится библиотека GDAL
1.1 Устанавливаем OSGEO4W или QGIS (это свободная кроссплатформенная геоинформационная система, которая содержит в себе библиотеку GDAL)
1.2 Для загрузки shp файлов SQL Server понадобится утилита ogr2ogr из этого пакета. Скачиваем общую карту административно территориального деления с сайта ГИС ЛАБ за что им огромное спасибо. Для загрузки карты используем команду
ogr2ogr -f "MSSQLSpatial" "MSSQL:server=localhost;database=ProSpatial;trusted_connection=yes" "regions2010.shp"
Чтобы ogr2ogr корректно работал с файлами в названии которых есть кириллица, необходимо, перед выполнением команд установить переменную среды:
SET GDAL_FILENAME_IS_UTF8=OFF
Если исходные данные в кодировке UTF-8, то необходимо явным образом указывать, что выходные данные также будут в UTF-8, с помощью опции -lco ENCODING=UTF-8, например:
ogr2ogr -lco ENCODING=UTF-8 output.shp input.vrt
Если возникает ошибка ogr2ogr ERROR 1: INSERT command for new feature failed. Нужно добавить к команде -nlt MULTIPOLYGON
1.3 Карты по регионам России в формате shp можно взять отсюда . Для загрузки нужного региона используем аналогичную команду , помимо границ в карте есть и другие слои.
Для наших целей загрузим только границы.
ogr2ogr -f "MSSQLSpatial" "MSSQL:server=localhost;database=ProSpatial;trusted_connection=yes" " boundary-polygon.shp"
P.S. Если все это слишком сложно также можно воспользоваться утилитой Shape2SQL. У нее есть графический интерфейс.
2. Создать и настроить отчет «Россия по регионам». Для этого отчета мы будем использовать тип карты Основной, без дополнительных раскрашиваний по аналитическим атрибутам. Добавим лишь центральные точки для областей и подписи.
2.2 Добавляем компонент Map в отчет
2.3 Настраиваем компонент для использования карты загруженной в SQL сервер, также в качестве карты можно использовать .shp файл.
2.4 Указываем запрос который должен содержать поле типа geometry или geography
2.5 Указываем пространственное поле, задаем масштаб и качество.
2.6 Выбираем тип карты обычная карта и тему для карты Generic
2.7 Настраиваем подписи к данным, на карте выбираем опцию «polygon properties»
2.8 Включаем центральные точки «Show Center Points», настраиваем их размер , форму и цвет
3. Создать и настроить отчет «Регионы по районам». Для этой карты мы будем использовать тип карты - цветная аналитическая карта (Color Analytical Map) и подложку карт Bing.
3.1 Добавляем компонент Map в отчет. Указываем наш запрос к таблице где находятся данные по регионам, id код региона из главного отчета
3.2 Включаем подложку карт Bing (есть три варианта карт дорожная, спутниковая и смешанная), будем использовать тип карты road .
3.3Выбираем тип карты цветная аналитическая карта
3.4 Настраиваем тему и отображение данных, выбираем поле population для отображения цвета региона в зависимости от значения в поле population
3.5 Настраиваем подписи к данным для отображения в подсказке названия региона и численности населения
3.6 Добавляем параметр @detail через него мы будем передавать из главного отчета код региона, делаем его внутренним параметром
4. Установить связь между отчетами можно настроив секцию Action в главном отчете
="javascript:void(window.open('"& Globals!ReportServerUrl &"/Pages/ReportViewer.aspx?"&Globals!ReportFolder & "%2fDetailMapReport&rs:Parameters=False&detail=" &Fields!ID.Value & "','_blank'))"
В качестве небольшого бонуса рассмотрим задачу геокодирования адресов.
Для преобразования адреса ,например «Москва, Планетная 3» в геокординаты (широта и долгота) можно воспользоваться сервисом геокодирования
Для этого достаточно отправить прямой HTTPS-запрос к геокодеру , который возвращает результат в формате json или xml, параметр sensor указывает исходит ли запрос от устройства с датчиком GPS.
Формируем запрос
Обрабатываем полученный результат, нужные данные содержатся в теге <location>
Немного юмора напоследок…
Зима. Ночь. Чистое поле, мороз 25 градусов, сумасшедшая вьюга... По полю бежит мужик с пустыми санками и приговаривает: - Ничего, ничего, Серёжа, скоро дома будем..
- Почему ваша дочь пишет сочинение с ошибками, да ещё и с матом? - А что вы хотите? Девочка пишет, старается, волнуется , ошибается, матерится ....
Посмотрев цены на органы я понял, что у меня довольно богатый внутренний мир.