Добрый день, уважаемое хабрасообщество.
По моему мнению тематика работы с пространственными данными и в частности с ГИС-системами слабо освещена на Хабре. Вследствие чего свою первую статью хотел бы посвятить замечательному инструменту под названием SharpMap. Тем более что объект рассмотрения достаточно интересен с точки зрения разработки ГИС-приложений, а информации на русском языке об его использовании мало. Поиск выдает лишь единичные результаты на форумах, посвященных тематике программирования.
На официальном сайте проекта дается следующее определение:
SharpMap – простая в применении картографическая библиотека для использования в настольных и веб-приложениях. Движок написан на языке C# и основывается на фреймворке .NET 2.0. Распространяется под лицензией GNU Lesser General Public License.
В настоящее время ведется разработка двух версий движка, различающиеся по своим возможностям.
По-умолчанию SharpMap работает только с векторным форматом Shape-файлов, однако за счет расширений, количество поддерживаемых форматов может быть увеличено.
Библиотека GDAL/OGR, которая также еще не освещалась на Хабре, заслуживает отдельного рассмотрения и отдельной статьи.
Реализация приложения с использованием SharpMap и в частности подключение библиотеки GDAL/OGR на первый взгляд показалось мне не совсем очевидным. Пришлось просмотреть множество англоязычных форумов, чтобы разобраться, что к чему.
Пример будет приведен для SharpMap v.1.0 в среде разработки Visual Studio 2008.
Итак, для начала скачиваем ChangeSet проекта. На момент написания статьи актуальна версия №74794.
Распаковываем.
Для демонстрации возможностей движка предлагается в папке Trunk запустить файл проекта SharpMap.VS2008.sln. В SolutionExplorer установить проект WinFormSamples как StartUp Project.
На правой панели формы показан набор RadioButton c соответвующими типами файлов. Все тестовые файлы гео-данных хранятся в директории: Trunk\WinFormSamples\bin\Debug\GeoData.
По-умолчанию в правой панели с картой открывается Shapefile.
Аналогичным образом просматриваем пункт Gradiet Theme.
При попытке вывести файлы в формате «MapInfo» (векторный) и «GeoTiff» (растровый) возникает ошибка вследствие того, что не подключены соответствующие библиотеки GDAL/OGR. Для их подключения потребуется скачать набор библиотек FWTools и установить.
Затем в директории Trunk\WinFormSamples открываем файл «app.config» и в блоке appSettings меняем все пути на пути к папке FWTools и её поддиректориям (если требуется).
Перекомпилируем проект Build -> Rebuild Solution. Запускаем.
После проделанных манипуляций, появляется возможность открывать множество векторных и растровых форматов и работать с ними.
На этом хочу закончить. Более подробная информация о SharpMap, а также документация и форум на сайте проекта:
SharpMap v1.0
SharpMap v2.0
Благодарю за внимание!
По моему мнению тематика работы с пространственными данными и в частности с ГИС-системами слабо освещена на Хабре. Вследствие чего свою первую статью хотел бы посвятить замечательному инструменту под названием SharpMap. Тем более что объект рассмотрения достаточно интересен с точки зрения разработки ГИС-приложений, а информации на русском языке об его использовании мало. Поиск выдает лишь единичные результаты на форумах, посвященных тематике программирования.
Введение
На официальном сайте проекта дается следующее определение:
SharpMap – простая в применении картографическая библиотека для использования в настольных и веб-приложениях. Движок написан на языке C# и основывается на фреймворке .NET 2.0. Распространяется под лицензией GNU Lesser General Public License.
Возможности
В настоящее время ведется разработка двух версий движка, различающиеся по своим возможностям.
Возможности | SharpMap v1.0 | SharpMap v2.0 |
---|---|---|
Использование .NET языков программирования (C#, VB.NET др.) | + | + |
Представление атрибутов как лейблов | + | Beta 2 |
Поддержка точек, линий, полигонов, мультиполигонов, мультиточек и т.д. в соответствии со спецификацией OpenGIS | + | + |
Масштабирование и перемещение по карте | + | + |
Расширенные тематические карты | + | + |
Изменение проекции «на лету» | + | + |
Послойное пространственное индексирование | - | + |
Возможность выбора и подсветки геометрий | - | + |
Пространственный анализ и обработка геометрий | - | + |
Возможность замены геометрий, пространственных индексов и библиотек проекций | - | + |
Для WEB | SharpMap v1.0 | SharpMap v2.0 |
Http Handler для создания изображений | + | не закончено |
AJAX — контрол | + | не закончено |
Использование в качестве сервера WMS 1.3.0 | + | не закончено |
Расширения
По-умолчанию SharpMap работает только с векторным форматом Shape-файлов, однако за счет расширений, количество поддерживаемых форматов может быть увеличено.
Расширение | Описание |
---|---|
OGR Povider | Библиотека, добавляющая поддержку множества векторных форматов данных |
GDAL Raster Layer | Добавление поддержки множества растровых форматов |
PostGIS | Провайдер PostgreSQL/PostGIS |
Oracle | Провайдер пространственной информации Oracle |
NetTopologySuite Data Provider | Добавляет функциональность NTS |
Simple Chart | Добавляет к карте диаграммы, основанные на атрибутивных данных |
SpatialLine | Провайдер SQLite/SpatialLite |
Библиотека GDAL/OGR, которая также еще не освещалась на Хабре, заслуживает отдельного рассмотрения и отдельной статьи.
В действии
Реализация приложения с использованием SharpMap и в частности подключение библиотеки GDAL/OGR на первый взгляд показалось мне не совсем очевидным. Пришлось просмотреть множество англоязычных форумов, чтобы разобраться, что к чему.
Пример будет приведен для SharpMap v.1.0 в среде разработки Visual Studio 2008.
Итак, для начала скачиваем ChangeSet проекта. На момент написания статьи актуальна версия №74794.
Распаковываем.
Для демонстрации возможностей движка предлагается в папке Trunk запустить файл проекта SharpMap.VS2008.sln. В SolutionExplorer установить проект WinFormSamples как StartUp Project.
На правой панели формы показан набор RadioButton c соответвующими типами файлов. Все тестовые файлы гео-данных хранятся в директории: Trunk\WinFormSamples\bin\Debug\GeoData.
По-умолчанию в правой панели с картой открывается Shapefile.
Аналогичным образом просматриваем пункт Gradiet Theme.
При попытке вывести файлы в формате «MapInfo» (векторный) и «GeoTiff» (растровый) возникает ошибка вследствие того, что не подключены соответствующие библиотеки GDAL/OGR. Для их подключения потребуется скачать набор библиотек FWTools и установить.
Затем в директории Trunk\WinFormSamples открываем файл «app.config» и в блоке appSettings меняем все пути на пути к папке FWTools и её поддиректориям (если требуется).
Перекомпилируем проект Build -> Rebuild Solution. Запускаем.
После проделанных манипуляций, появляется возможность открывать множество векторных и растровых форматов и работать с ними.
На этом хочу закончить. Более подробная информация о SharpMap, а также документация и форум на сайте проекта:
SharpMap v1.0
SharpMap v2.0
Благодарю за внимание!