Разработка пользовательского приложения для геоинформационной системы

Ознакомление с основным назначением и сферами применения геоинформационных систем. Исследование процесса отрисовки карты в 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

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.