Разработка пользовательского приложения для геоинформационной системы
Ознакомление с основным назначением и сферами применения геоинформационных систем. Исследование процесса отрисовки карты в MapInfo. Изучение особенностей оцифровки бумажной карты. Анализ карты для конечного пользователя. Разработка программного продукта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.12.2014 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Севастопольский национальный университет ядерной энергии и промышленности
«Допустить к защите» Омельчук ЮА.
Руководитель института ЭиИБ Зав. Кафедрой КЭЭМ Шумейко И.П.
Курсовая работа
по дисциплине «Методы и средства проектирования информационных систем»
на тему: «Разработка пользовательского приложения для геоинформационной системы»
Студент группы441
Гапоненко Филипп Константинович
Шифр документа09.03.02.КР.14.ПЗ
Специальность09.03.02 «Информационные системы и технологии»
Руководитель: Сырых О.А., ст. преподаватель каф. КЭЭМ
2014
Содержание
Введение
1. Геоинформационная система
1.1 Модели данных в геоинформационных системах
1.2 Пространственные и атрибутивные данные в геоинформационных системах
2. Отрисовка карты в MapInfo
2.1 Геоинформационная система MapInfo
2.2 Отрисовка карты в MapInfo
2.3 Создание тематической карты в MapInfo
2.4 Подготовка карты для конечного пользователя
2.5 Разработка программного продукта
Выводы
Приложение
Введение
Актуальность темы: Геоинформационные системы это системы ориентировки во времени и пространстве, они включают в себя современные методы обработки информации. Интерфейс геоинформационных систем зачастую построен таким образом, что ее использование сводится к интуитивно понятным действиям. Современные геоинформационные системы обладают широкими функциональными возможностями.
В настоящее цифровые карты и соответствующие методы их обработки занимают основную нишу в разработке картографических систем вытесняя уже ставшие устаревшими ручные, аналоговые способы создания картографических материалов.
Цель работы: разработка приложения для работы с геоинформацией.
Задачи работы:
- изучить теоретические основы;
- выполнить отрисовку карты;
- разработать программный модуль для работы с картами.
Структура работы: Данная работа состоит из введения, трех разделов, выводов, списка литературы и одного приложения.
1. Геоинформационная система
Геоинформационная система представляет собой систему обеспечивающую сбор, хранение, обработку, анализ и отображение пространственных данных и связанных с ними непространственных данных, а также получение на их основе информации и знаний о географическом пространстве.
Основным назначением геоинформационных систем является формирование знаний о территориях с размещенными на них объектами и их фактографическими характеристиками для своевременного получения достоверных пространственных данных запрошенных пользователем данной геоинформационной системы [1].
Сферы применения геоинформационных систем:
- экология и природопользование;
- земельный кадастр;
- навигация;
- управление городским хозяйством;
- региональное планирование;
- маркетинг;
- демография и исследование трудовых ресурсов;
- управление дорожным движением;
- оперативное управление и планирование в чрезвычайных ситуациях.
Кроме того геоинформационные системы используются для решения разного рода задач:
? обеспечение комплексного и отраслевого кадастра;
? поиск и эффективное использование природных ресурсов;
? территориальное и отраслевое планирование;
? контроль условий жизни населения;
? здравоохранение;
? обеспечение деятельности правоохранительных органов и силовых структур;
? наука и образование;
? картографирование.
Так же геоинформационные системы включают в себя функции по сбору, систематизации, накоплению, хранению, анализу, преобразованию и распространению картографической и тематической информации.
Геоинформационные системы классифицируются по:
? пространственному охвату;
? объектам исследования;
? предметной области;
? уровню управления;
? целям исследований;
? моделям данных;
? архитектурным принципам;
? функциональным возможностям.
Так же по пространственному охвату геоинформационные системы делятся на:
? глобальные;
? планетарные;
? субконтинентальные;
? национальные;
? межнациональные;
? региональные;
? субрегиональные;
? локальные.
Деление геоинформационных систем по проблемоориентированию включает в себя следующие позиции:
? инженерно-технические;
? имущественные;
? обобщенно-тематические и статистические системы картографирования для управления естественными ресурсами;
? библиографические, содержащие информацию о множестве гео-документов;
? геоинформатические базы данных и знаний, содержащие информацию о географических объектах;
? системы цифровой обработки данных дистанционного зондирования земли;
? интерактивные системы обучения в области наук о земле.
По уровню управления:
? федеральные;
? региональные;
? специальные - используются для удовлетворения информационных потребностей каких либо областей народного хозяйства.
По целям:
? многоцелевые;
? тематические;
? специализированные.
По типу данных:
? векторные;
? растровые;
? специализированные.
По архитектурному принципу:
? открытые;
? закрытые.
Базовые компоненты геоинформационной системы включают в себя:
? технические средства: комплекс аппаратных средств применяемых при функционировании геоинформационной системы;
? программное обеспечение: совокупность программных средств реализующих функциональные возможности геоинформационной системы, а так же программные документы необходимые при их эксплуатации.
Структурно-программное обеспечение геоинформационной системы включает в себя базовые и прикладные программные средства.
Базовые - операционная система, программная среда, сетевое программное обеспечение и система управления базами данных.
Прикладные - предназначены для решения специализированных задач и реализуются в виде отдельных модулей и утилит.
Любая геоинформационная система имеет внутреннюю структуру, котороая предполагает четыре обязательные подсистемы:
? подсистема ввода данных. Обуславливает ввод или обработку пространственных данных полученных с карт, материалов дистанционного зондирования и т.д.
? подсистема хранения и поиска позволяющая оперативно получить данные для соответствующего анализа;
? подсистема обработки и анализа, которая дает возможность оценивать параметры и решать расчетно-аналитические задачи;
? подсистема представления данных в различном виде.
Таким образом, геоинформационная система представляет собой систему обеспечивающую получение информации и знаний о географическом пространстве и его геофизизических характеристиках. Предусматривает хранение, обработку, анализ и отображение геофизических данных. Данные являются наиболее важным компонентом геоинформационной системы.
1.1 Модели данных в геоинформационных системах
В геоинформационных системах существуют растровые, векторные и смешанные модели данных.
Имеется существенное различие между векторными и растровыми изображениями.
Операции преобразования данных из растра в вектор - одни из наиболее важных при обработке пространственно-временных данных[2].
Преобразование от растра к вектору означает переход от полевого представления данных к объектному.
Векторные изображения вычерченных на бумаге чертежей, карт невозможно получить с помощью сканера. При сканировании получается только растровая копия оригинала.
Плюсы векторного представления :
- векторная технология эффективнее;
- векторные файлы занимают меньший объем памяти;
- масштабирование и трансформирование векторного изображения происходит без искажений.
Векторизация может быть ручной, полуавтоматической и автоматической. В графических редакторах геоинформационных систем обычно используется ручная векторизация, что обусловлено необходимостью решения экспертных задач.
Таким образом, в геоинформационных системах существуют векторные и растровые модели данных. Векторные изображения в геоинформационных системах, отображают геоинформационные объекты, то есть носят объектный характер.
1.2 Пространственные и атрибутивные данные в геоинформационных системах
Атрибутивные данные представляют собой совокупность непозиционных характеристик пространственного объекта. Атрибутивные данные определяют смысловое содержание объекта и могут содержать качественные или количественные значения [3].
Пространственные данные определяют позиционные характеристики пространственного объекта. Они описывают его местоположение в установленной системе координат.
Пространственные данные описывают только метрические и геометрические характеристики пространственных объектов безотносительно к их тематической принадлежности. Объекты с пространственной локализацией, кроме метрической, обладают тематическими и временными характеристиками. Эти группы характеристик в геоинформатике называют атрибутами, а их описание атрибутивным описанием. Совокупность атрибутов определяет класс атрибутивных моделей ГИС[4]. Для отображения координатных данных используют графическую форму представления и реже табличную. Для отображения атрибутивных данных используют таблицы. Таблица, содержащая атрибуты объектов, называется таблицей атрибутов. Каждому пространственному объекту соответствует строка таблицы, каждому тематическому признаку - столбец таблицы. Каждая клетка таблицы отражает значение определенного признака для определенного объекта.
Применение атрибутов позволяет осуществлять анализ объектов базы данных с использованием стандартных форм запросов и разного рода фильтров, а также выражений математической логики.
Таким образом, сочетание пространственной и атрибутивной информации создает полное описание моделей геоинформационных систем.
1. Геоинформационная система представляет собой систему обеспечивающую получение информации и знаний о географическом пространстве и его геофизизических характеристиках. Предусматривает хранение, обработку, анализ и отображение геофизических данных. Данные являются наиболее важным компонентом геоинформационной системы.
2. В геоинформационных системах существуют векторные и растровые модели данных. Векторные изображения в геоинформационных системах, отображают геоинформационные объекты, то есть носят объектный характер. Сочетание пространственной и атрибутивной информации создает полное описание моделей геоинформационных систем.
2. Отрисовка карты в MapInfo
2.1 Геоинформационная система MapInfo
Геоинформационная система MapInfo была разработана в конце 80-х фирмой Mapping Information Systems Corporation (США). Компания «ЭСТИ МАП», партнер MapInfo Corp, распространяет в России и странах СНГ русскую версию. MapInfo Professional - полнофункциональная инструментальная геоинформационная система (ГИС). С ее помощью можно создавать и редактировать карты, хранить и обрабатывать информацию, связанную с картографическими объектами. С точки зрения общепринятой терминологии ГИС MapInfo является системой управления базой пространственных данных. В дополнение к традиционным для СУБД функциям MapInfo позволяет обрабатывать также картографические данные, хранящиеся в базе, с учетом пространственных отношений объектов. ГИС MapInfo может выступать в роли «картографического клиента» при работе с такими известными СУБД, как Informix, Sybase, Oracle8 и DB2, поскольку поддерживает эффективный механизм взаимодействия с ними как через протокол ODBC, так и «напрямую».
Это наиболее развитая, мощная и простая в использовании система настольной картографии, позволяющая решать широкий спектр задач в различных сферах деятельности.
Данные в MapInfo могут быть представлены в виде Карт, Списков, Легенд, Графиков и Отчетов. В окне Карта доступны инструменты редактирования и создания картографических объектов, масштабирования, изменения проекций и другие функции работы с картой. Связанная с картографическими объектами информация может быть представлена в виде таблицы в окне Список. В окне График данные из таблиц можно показать в виде графиков и диаграмм различных типов. В окне Легенда отображены условные обозначения объектов на карте и тематических слоях. В окне Отчет предоставляются средства масштабирования, макетирования, а также сохранения шаблонов многолистных карт. Работая с MapInfo, можно формировать и распечатывать отчеты с фрагментами карт, списками, графиками и надписями. При выводе на печать MapInfo использует стандартные драйверы операционной системы.
MapInfo обеспечивает:
- картографический интерфейс;
- создание и редактирование карт высокого качества;
- пространственные данные, поставляемые с программным обеспечением;
- простоту интеграции карт - несколько строк кода внедряют окно MapInfo в приложения Windows (Excel, Access, Word);
- анимационный слой - быстрая перерисовка при частых изменениях на слое (полезно для систем слежения за движущимися объектами);
- работу с 3D-данными - построение изолиний, триангуляция Делоне и трехмерная визуализация.
Для создания программного модуля на основе карт, созданных в Map Info, можно использовать модуль MapX.
MapInfo MapX это надежный набор элементов ActiveX/OCX, который можно легко встроить в прикладные коммерческие приложения создаваемые с использованием стандартных визуальных систем программирования. Так как MapX является набором элементов OCX (OLE Custom eXtension), то, за счет использования OLE (Object Linking and Embedding), с его помощью можно легко дополнить новые и уже существующие приложения способностью показывать объекты на карте.
Развитая, многослойная объектная модель MapInfo MapX позволяет использовать: объекты многих типов, события, а также сотни методов и свойств. Комплект разработчика содержит, кроме того, многочисленные примеры проектов и готовых карт, включая международные. MapX разработан таким образом, что добавить карту в создаваемое приложение можно при помощи лишь нескольких движений мышью. Многие параметры имеют стандартные значения, которые легко можно настроить на специальных страницах свойств и, используя, автоматические помощники.
Разработчик получает доступ к выполнению различных операций с картографическими данными, типа - нахождение пересечений и вложенности объектов; построение буферов; объединение объектов и т.д.
Создание тематических карт - мощное средство анализа и наглядного представления пространственных данных. Тематические карты выявляют связи между объектами и тенденции в развитии явлений. Возможно создание тематических карт следующими способами: картограммы, картодиаграммы, способы значков и плотности точек, метод качественного фона, построение непрерывной поверхности по неравномерно распределенным значениям.
На электронной карте можно интерактивно создавать новые объекты, а также их изменять и удалять. Используя стандартные средства, можно выбирать элементы, попадающие в прямоугольник, произвольный полигон и окружность.
Имеются функции позволяющие оперировать слоями географической информации, назначать способы отображения объектов и формирования подписей, изменять масштаб карты, управлять видимостью слоя, определять порядок показа и масштабный эффект для слоев картографических объектов и подписей.
Анимационный слой динамически отображает движущиеся объекты, например, в приложениях работающих с информацией от GPS-приемников в режиме реального времени.
Поддержка растровых изображений позволяет использовать спутниковые и аэрофотоснимки, сканированные карты и другие изображения как не редактируемые слои карты. Поддержка стандартного языка запросов - SQL. Доступ к серверу пространственных данных SSA - новое мощное средство, предоставляющее доступ к информации, хранящейся на удаленном сервере пространственных данных.
Таким образом, Map Info имеет удобные инструменты для отрисовки карты и подготовки ее к печати, а также использование модуля Map Info MapX позволяет снизить трудозатраты, что ускоряет процесс разработки.
2.2 Отрисовка карты в MapInfo
В данной работе, была проведена оцифровка аналогового носителя - бумажной каты города Евпатория масштабом 1:15 000. Посредством сканирования, карта была переведена в растровый формат (рис 2.1.).
Рис.2.1. Растровая карта г. Евпатория.
После чего карта была добавлена в программу Map Info с помощью команды «Файл/Новая таблица/Показать картой». С помощью команды «Файл/Новая таблица/Добавить к карте» к существующей карте были добавлены новые таблицы, а именно:
- главные дороги;
- второстепенные дороги;
- водные объекты;
- зеленые зоны;
- пляжи;
- жилые кварталы;
- пустые территории;
- пункты связи;
- гостиницы;
- парковки;
- театры;
- заправки;
- правоохранительные сооружения;
- больницы;
- кинотеатры.
После чего была произведена отрисовка точечных объектов. Результат представлен на рисунке 2.2.
Рис. 2.2. Создание точечных объектов
После этого была произведена отрисовка дорог с помощью инструмента полилиния. Результат представлен на рисунке 2.3.
Рис. 2.4. Отрисовка дорог
Затем были отрисованы полигональные объекты. Результат отрисовки с помощью инструмента полигон представлен на рисунке 2.4.
Рис. 2.4. Полигональные объекты
Таким образом, в ходе данной работы была произведена оцифровка карты. В программном продукте Map Info с помощью инструментов полилиния, точка и полигон была выполнена вектирозация оцифрованной карты.
2.3 Создание тематической карты в MapInfo
Используя инструмент Карта/Создать тематическую карту… была создана тематическая на основе векторизированной карты, тематическая карта представленна на рисунке 2.5.
Рис. 2.6. Тематическая карта
Таким образом, с помощью инструментов MapInfo была создана тематическая карта. mapinfo геоинформационный оцифровка карта
2.4 Подготовка карты для конечного пользователя
В ходе данной работы оцифрованная, векторизированныя карта была подготовлена к печати с помощью добавленной легенды и линейки, что позволит конечному пользователю верно интерпретировать полученную карту. Конечный результат представлен на рисунке 2.7.
Рис. 2.8. Карта для конечного пользователя
Таким образом, к карте, с помощью инструментов MapInfo, были добавлены легенда карты и масштабная линейка позволяющие пользователю верно интерпретировать информацию, которую несет карта.
2.5 Разработка программного продукта
Программный продукт был разработан на языке С#, интерфейс программного продукта представлен на рисунке 2.9.
Рис. 2.9. Программный продукт
Данный программный продукт позволяет работать со слоями (рис.2.10), загружать таблицы и рабочие наборы (рис.2.11), выделять объекты (рис.2.12).
Рис.2.10. Работа со слоями
Рис.2.11. Загруженный табличный набор
Рис. 2.12. Выделение.
Таким образом, разработанное пользовательское приложение для позволяет загружать карту и выполнять все необходимые операции.
1. Map Info имеет удобные инструменты для отрисовки карты и подготовки ее к печати, а также использование модуля Map Info MapX позволяет снизить трудозатраты, что ускоряет процесс разработки.
2. В ходе данной работы была произведена оцифровка карты. В программном продукте Map Info с помощью инструментов полилиния, точка и полигон была выполнена вектирозация оцифрованной карты.
3. с помощью инструментов Map Info была создана тематическая карта.
4. с помощью инструментов Map Info, были добавлены легенда карты и масштабная линейка позволяющие пользователю верно интерпретировать информацию, которую несет карта.
5. разработанное пользовательское приложение для позволяет загружать карту и выполнять все необходимые операции.
Выводы
Геоинформационная система представляет собой систему обеспечивающую получение информации и знаний о географическом пространстве и его геофизизических характеристиках. Предусматривает хранение, обработку, анализ и отображение геофизических данных. Данные являются наиболее важным компонентом геоинформационной системы.
В геоинформационных системах существуют векторные и растровые модели данных. Векторные изображения в геоинформационных системах, отображают геоинформационные объекты, то есть носят объектный характер.
Сочетание пространственной и атрибутивной информации создает полное описание моделей геоинформационных систем.
Map Info имеет удобные инструменты для отрисовки карты и подготовки ее к печати, а также использование модуля Map Info MapX позволяет снизить трудозатраты, что ускоряет процесс разработки.
В ходе данной работы была произведена оцифровка карты. В программном продукте Map Info с помощью инструментов полилиния, точка и полигон была выполнена вектирозация оцифрованной карты.
С помощью инструментов Map Info была создана тематическая карта.
С помощью инструментов Map Info, были добавлены легенда карты и масштабная линейка позволяющие пользователю верно интерпретировать информацию, которую несет карта.
Список использованной литературы
1. Журкин И. Г., Шайтура С. В. Геоинформационные системы. - Москва: КУДИЦ-ПРЕСС, 2009. - 272 с. - ISBN 978-5-91136-065-8
2. Модели данных в ГИС. http://prezi.com/2qh0hwfnmrfq/presentation/ (15.05.2014)
3. Топографическая карта. http://ru.wikipedia.org/wiki/Топографическая_карта (15.05.2014)
4. Витковский В. В. Топография. Изд. 3-е, испр. и доп. Под ред. Я. И. Алексеева. - М., 1928. - 800 с.
5. Цветков В.Я. Геоинформационные системы и технологии. М.: «Финансы и статистика», 1997. - 290 с.
6. Кошкарев А.В., Тикунов В.С. Геоинформатика. М.: Картоцентр-Геоиздат, 1993. - 213 с.
7. Мэтью Мак-Дональд Access 2007. Недостающее руководство Access 2007 The missing manual. - СПб.: «БХВ-Петербург»
Приложение
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MapX
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void axMap1_MouseWheelEvent(object sender, AxMapXLib.CMapXEvents_MouseMoveEvent e)
{
}
const int RULETTOOLID = 500;
const int SCIRCLE = 101;
const int SPOLIGON = 102;
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
axMap1.Layers.LayersDlg();
treeView1.Nodes.Clear();
for (int i = 1; i <= axMap1.Layers.Count; i++)
{
treeView1.Nodes.Add(axMap1.Layers[i].Name.ToString());
}
}
private void слойToolStripMenuItem_Click(object sender, EventArgs e)
{
MapXLib.LayerInfo layerInfo = new MapXLib.LayerInfo();
SaveFileDialog fileDialog = new SaveFileDialog();
fileDialog.Filter = "MapInfo Tables (*.tab)|*.TAB";
string[] str;
if (fileDialog.ShowDialog() == DialogResult.OK)
{char[] cm = {'\\','.'};
str = fileDialog.FileName.Split('.');
str = str[0].Split(cm);
axMap1.Layers.CreateLayer(str[str.Length-1], fileDialog.FileName);
}
//layerInfo.Type = MapXLib.LayerInfoTypeConstants.miLayerInfoTypeNewTable;
//layerInfo.AddParameter ("FileSpec","D:/dalen"+(axMap1.Layers.Count+1).ToString()+".tab");
//layerInfo.AddParameter("Name", "test" + (axMap1.Layers.Count + 1).ToString());
// var lyr = axMap1.Layers.CreateLayer("dat2", "D:/dalen" + (axMap1.Layers.Count + 1).ToString() + ".tab");
// MapXLib.Dataset ds = axMap1.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer,lyr);
// layerInfo.AddParameter("Fields", ds.Fields);
//axMap1.Layers.Add(layerInfo);
//axMap1.Layers.Remove("dat2");
// s = (1/2)* |SUM((Xi + Xi+1)*(Yi - Yi+1))|
}
private void tabFileToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "MapInfo Tables (*.tab)|*.tab|(*.gst)|*.gst";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
axMap1.Layers.Add(fileDialog.FileName);
}
treeView1.Nodes.Clear();
for (int i = 1; i <= axMap1.Layers.Count; i++)
{
treeView1.Nodes.Add(axMap1.Layers[i].Name.ToString());
}
}
private void рабочийНаборToolStripMenuItem1_Click(object sender, EventArgs e)
{
axMap1.Layers.RemoveAll();
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "MapInfo Tables (*.gst)|*.gst";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
axMap1.Layers.AddGeoSetLayers(fileDialog.FileName);
}
axMap1.CtlBounds = axMap1.Layers.Bounds;
treeView1.Nodes.Clear();
for (int i = 1; i <= axMap1.Layers.Count; i++)
{
treeView1.Nodes.Add(axMap1.Layers[i].Name.ToString());
}
axMap1.DataSets.RemoveAll();
for (int i = 1; i <= axMap1.Layers.Count; i++)
{
axMap1.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer, axMap1.Layers[i]);
}
}
private void рабочийНаборToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog SaveDial = new SaveFileDialog();
SaveDial.Filter = "MapInfo Tables (*.gst)|*.gst";
//SaveDial.FilterIndex = 2;
SaveDial.RestoreDirectory = true;
if (SaveDial.ShowDialog() == DialogResult.OK)
{
axMap1.SaveMapAsGeoset("", SaveDial.FileName);
}
// axMap1.SaveMapAsGeoset;
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miAddPointTool;
}
private void toolStripLabel1_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miAddPolylineTool;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "kursachDataSet.Центральные_улицы". При необходимости она может быть перемещена или удалена.
this.центральные_улицыTableAdapter.Fill(this.kursachDataSet.Центральные_улицы);
// TODO: данная строка кода позволяет загрузить данные в таблицу "mapXDataBaseSimferopol1DataSet1.Shop". При необходимости она может быть перемещена или удалена.
// this.shopTableAdapter.Fill(this.mapXDataBaseSimferopol1DataSet1.Shop);
// TODO: данная строка кода позволяет загрузить данные в таблицу "mapXDataBaseSimferopol1DataSet1.Shop". При необходимости она может быть перемещена или удалена.
// this.shopTableAdapter.Fill(this.mapXDataBaseSimferopol1DataSet1.Shop);
for (int i = 1; i <= axMap1.Layers.Count; i++)
{
treeView1.Nodes.Add(axMap1.Layers[i].Name.ToString());
}
axMap1.CreateCustomTool(RULETTOOLID, MapXLib.ToolTypeConstants.miToolTypeLine, null);
axMap1.CreateCustomTool(SCIRCLE, MapXLib.ToolTypeConstants.miToolTypeCircle, null);
axMap1.CreateCustomTool(SPOLIGON, MapXLib.ToolTypeConstants.miToolTypePolygon, null);
axMap1.EditableLabels = false;
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miAddRegionTool;
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miAddLineTool;
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miTextTool;
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miSelectTool;
}
private void toolStripButton7_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miPolygonSelectTool;
}
private void toolStripButton8_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miRectSelectTool;
}
private void toolStripButton9_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miRadiusSelectTool;
}
private void toolStripButton10_Click(object sender, EventArgs e)
{
axMap1.DisplayCoordSys.PickCoordSys();
}
private void toolStripButton11_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miZoomInTool;
}
private void toolStripButton12_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miZoomOutTool;
}
private void toolStripButton13_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = MapXLib.ToolConstants.miPanTool;
}
private void tabFileToolStripMenuItem1_Click(object sender, EventArgs e)
{
SaveFileDialog SaveDial = new SaveFileDialog();
SaveDial.Filter = "MapInfo Tables (*.JPG)|*.JPG";
SaveDial.FilterIndex = 2;
SaveDial.RestoreDirectory = true;
if (SaveDial.ShowDialog() == DialogResult.OK)
{
axMap1.ExportMap(SaveDial.FileName, MapXLib.ExportFormatConstants.miFormatGIF);
}
}
private void tabFileToolStripMenuItem2_Click(object sender, EventArgs e)
{
}
private void toolStripButton14_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = (MapXLib.ToolConstants)RULETTOOLID;
}
private double MapX;
private double MapY;
private void axMap1_MouseMoveEvent(object sender, AxMapXLib.CMapXEvents_MouseMoveEvent e)
{
float x = e.x;
float y = e.y;
if (axMap1.CurrentTool == (MapXLib.ToolConstants)RULETTOOLID && e.button == 1)
{
axMap1.MapUnit = MapXLib.MapUnitConstants.miUnitKilometer;
axMap1.ConvertCoord(ref x, ref y, ref MapX, ref MapY, MapXLib.ConversionConstants.miScreenToMap);
}
double xcoord = 0, ycoord =0;
axMap1.ConvertCoord(ref x, ref y, ref xcoord, ref ycoord, MapXLib.ConversionConstants.miScreenToMap);
label2.Text = xcoord.ToString(".0000"); label3.Text = ycoord.ToString(".0000");
}
private double Xdoun;
private double Ydoun ;
private void axMap1_MouseDownEvent(object sender, AxMapXLib.CMapXEvents_MouseDownEvent e)
{
Xdoun = e.x;
Ydoun = e.y;
if (axMap1.CurrentTool == (MapXLib.ToolConstants)RULETTOOLID) {
axMap1.ConvertCoord(ref e.x, ref e.y, ref Xdoun, ref Ydoun, MapXLib.ConversionConstants.miScreenToMap);
}
}
private void axMap1_MouseUpEvent(object sender, AxMapXLib.CMapXEvents_MouseUpEvent e)
{
if (axMap1.CurrentTool == (MapXLib.ToolConstants)RULETTOOLID)
{
label1.Text = axMap1.Distance(Xdoun, Ydoun, MapX, MapY).ToString();
}
}
private void axMap1_ToolUsed(object sender, AxMapXLib.CMapXEvents_ToolUsedEvent e)
{
if (axMap1.CurrentTool == (MapXLib.ToolConstants)SCIRCLE) {
double s = Math.PI*(e.distance)*(e.distance);
label1.Text = "Square = " + s.ToString();
}
}
private void toolStripButton15_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = (MapXLib.ToolConstants)SCIRCLE;
}
private double Square;
private void axMap1_PolyToolUsed(object sender, AxMapXLib.CMapXEvents_PolyToolUsedEvent e)
{
Square = 0;
if (axMap1.CurrentTool == (MapXLib.ToolConstants)SPOLIGON)
{
MapXLib.Points p = (MapXLib.Points)e.points;
double c = p[1].X;
double XC,YC;
axMap1.MapUnit = MapXLib.MapUnitConstants.miUnitKilometer;
for (int i = 1; i < p.Count ; i++)
{
// Square += (p[i].X + p[i + 1].X) * (p[i].Y - p[i + 1].Y);
Square += (axMap1.Distance(0, 0, p[i].X, 0) + axMap1.Distance(0, 0, p[i + 1].X, 0)) * (axMap1.Distance(0, 0, 0, p[i].Y) - axMap1.Distance(0, 0, 0, p[i + 1].Y));
}
Square += (axMap1.Distance(0, 0, p[p.Count].X, 0) + axMap1.Distance(0, 0, p[1].X, 0)) * (axMap1.Distance(0, 0, 0, p[p.Count].Y) - axMap1.Distance(0, 0, 0, p[1].Y));
Square = Math.Abs(Square)/2;
label1.Text = "Площадь = " + Square.ToString() + " км";
}
}
private void toolStripButton16_Click(object sender, EventArgs e)
{
axMap1.CurrentTool = (MapXLib.ToolConstants)SPOLIGON;
}
private void слойИзБазыToolStripMenuItem_Click(object sender, EventArgs e)
{
string str = "";
MapXLib.LayerInfo lInfo = new MapXLib.LayerInfo();
lInfo.Type = (MapXLib.LayerInfoTypeConstants) 4;
//axMap1.Layers.Add("D:\\Личные папки\\Владелец\\Documents\\Shop.TAB");
string ConnectStr = "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=D:/MapXDataBaseSimferopol1.mdb;Drive rId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5";
// string ConnectStr = "DSN=MyShop;DBQ=D:/MapXDataBaseSimferopol1.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5";
lInfo.AddParameter("connectstring", ConnectStr);
lInfo.AddParameter("name", "TempConnect");
lInfo.AddParameter("toolkit", "ODBC");
lInfo.AddParameter("query", "select * from `Shop`");
lInfo.AddParameter("cache", "OFF");
lInfo.AddParameter("mbrsearch", "ON");
axMap1.Layers.Add(lInfo);
}
private void toolStripButton17_Click(object sender, EventArgs e)
{
}
public int selectIndex;
private void toolStripButton17_Click_1(object sender, EventArgs e)
{
// axMap1.Layers.Add(layer,1);
List<DataRow[]> listOfRow = new List<DataRow[]>();
for (int i = 1; i <= axMap1.Layers[selectIndex].Selection.Count; i++) {
var c = axMap1.Layers[selectIndex].Selection[i]._FeatureID;
listOfRow.Add(kursachDataSet.Центральные_улицы.Select("ID=" + c.ToString()));
}
Form3 f = new Form3();
f.setListRow(listOfRow);
f.ShowDialog();
//
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
selectIndex = treeView1.SelectedNode.Index+1;
axMap1.Layers[treeView1.SelectedNode.Index + 1].Editable = true;
axMap1.Layers.InsertionLayer = axMap1.Layers[treeView1.SelectedNode.Index + 1];
}
private void toolStripButton18_Click(object sender, EventArgs e)
{
//axMap1.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer,axMap1.Layers["hroad"]) ;
//axMap1.DataSets[1].Themes.Add(MapXLib.ThemeTypeConstants.miThemeRanged,"Speed_Limits");
//var dd = axMap1.DataSets[1].Fields[4]._Name;
axMap1.DataSets.RemoveAll();
List<List<string>> dataField = new List<List<string>>();
List<string> dataTable = new List<string>();
for (int i = 1; i <= axMap1.Layers.Count; i++)
{
axMap1.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer, axMap1.Layers[i]);
dataTable.Add(axMap1.Layers[i].KeyField);
dataField.Add(new List<string>());
for (int j = 1; j <= axMap1.DataSets[i].Fields.Count; j++)
{
dataField[i-1].Add(axMap1.DataSets[i].Fields[j]._Name);
}
}
Form2 f = new Form2();
f.setParametrTableAndField(dataTable, dataField);
if(f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
axMap1.DataSets[f.indexData+1].Themes.Add(MapXLib.ThemeTypeConstants.miThemeRanged, f.Field);
}
//axMap1.Layers[1].
}
}
}
Размещено на Allbest.ru
...Подобные документы
Создание электронной интерактивной карты общественного транспорта г. Ижевска, позволяющей выполнять над ней различные манипуляции. Разработка основы для привязки всех остановок и маршрутов. Реализация программного и пользовательского интерфейса карты.
контрольная работа [1,3 M], добавлен 13.12.2014Исследование и оценка возможности работы сетевой карты netFPGA как IPS системы. Установка программного обеспечения, обеспечивающего взаимодействие карты и пользователя. Система обнаружения вторжений Snort. Основные достоинства Microsoft Forefront TMG.
курсовая работа [470,9 K], добавлен 11.11.2012Обзор технологий и систем геоинформационных систем. Системное и функциональное проектирование программного модуля, его разработка с использованием сред программирования Visual C++ 6.0, Qt 3.3.3. Технико-экономическое обоснование данного процесса.
дипломная работа [1,2 M], добавлен 13.03.2011Сущность ГИС и основные понятия геоинформатики. Разработка интерактивной электронной карты на основе сканированного фрагмента топографической карты с использованием таких программных продуктов как векторизатор Easy Trace и ГИС-вьювера ArcExplorer.
курсовая работа [4,5 M], добавлен 19.06.2012Разработка программного модуля, программного обеспечения для компьютерных систем средствами C++ Builder. Разработка карты и интерфейса сайта. Алгоритмы реализации интерактивных функций программы. Пропускная способность линии связи. Программный код сайта.
отчет по практике [1,2 M], добавлен 16.09.2012- Разработка геоинформационного программного обеспечения на базе открытых продуктов для целей кадастра
Исследование современных геоинформационных технологий, анализ их преимуществ и недостатков. Проектирование структуры базы данных, приложения и интерфейса проекта. Программная реализация геоинформационной системы и оценка ее экономической эффективности.
дипломная работа [3,2 M], добавлен 21.06.2012 Разработка сайта интерактивной карты городского пассажирского транспорта. Описание системы управления контентом Joomla! Выбор технических параметров хостинга. Разработка структуры сайта, его основные разделы. Выгрузка сайта на хостинг в интернете.
дипломная работа [6,3 M], добавлен 13.12.2014Создание программного продукта, который позволит сшивать и редактировать топографические карты. Разработка алгоритмов отдельных функций. Возможность автоматизированной сшивки карт путем анализа изображения, добавлять и удалять с них топографические знаки.
дипломная работа [3,5 M], добавлен 22.11.2015Назначение и возможности разработанного приложения для визуализации картографической информации. Хранимые процедуры, функции и триггеры. Взаимодействие пользователя с приложением. Описание экранной формы по работе с картами. Визуализация карты в MS Visio.
курсовая работа [2,1 M], добавлен 14.08.2014Разработка пользовательского интерфейса. Характеристика процесса покадрового рендеринга графики. Ознакомление с архитектурой программного приложения. Анализ системы визуализации – сложной, продуманной структуры для предоставления информации пользователю.
дипломная работа [7,8 M], добавлен 10.07.2017Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.
дипломная работа [1,5 M], добавлен 09.11.2016Разработка приложения с помощью среды Microsoft Visual Studio 2010 Express. Интерфейс приложения. Разработка конечного программного продукта, демонстрирующего работу многопоточного приложения, использующего взаимоисключение на основе критической секции.
лабораторная работа [300,4 K], добавлен 21.07.2012Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.
курсовая работа [1,2 M], добавлен 16.08.2012Общие принципы работы систем биометрической идентификации личности. Программные инструменты для разработки приложения, осуществляющего идентификацию пользователя на основе его клавиатурного почерка. Проектирование базы данных и структуры нейронной сети.
дипломная работа [1,3 M], добавлен 20.12.2013Обзор и анализ существующих методик управления проектами и оценки трудоемкости. Разработка алгоритма задания параметров и вычисления трудоемкости и стоимости программного продукта. Отладка и тестирование продукта. Разработка руководства пользователя.
дипломная работа [2,5 M], добавлен 18.11.2017Внедрение программного продукта в организации. Описание входной и выходной информации. Конфигурирование приложения "Сервис веб-помощи". Обзор пользовательского интерфейса. Руководство пользователя для персонала больницы и для администратора приложения.
дипломная работа [2,9 M], добавлен 24.06.2013Особенности алгоритмов, критерии качества. Создание и применение программного продукта на языке Delphi. Тип операционной системы. Внутренняя структура программного продукта. Руководство пользователя и программиста, расчет себестоимости и цены программы.
дипломная работа [1,5 M], добавлен 12.06.2009Анализ технических средств и современных технологий разработки программного обеспечения. Разработка программы для упрощения поиска студентов. Создание учетных записей администратора и обычного пользователя. Изучение правил построения программного кода.
курсовая работа [1,9 M], добавлен 30.09.2016Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Разработка программного продукта для экспорта спецификации из приложения PartList. Выбор метода передачи информации в файл, формата для представления. Разработка конвертера, реализация пользовательского интерфейса. Обоснование актуальности разработки.
дипломная работа [2,6 M], добавлен 25.09.2014