Создание Web-приложения "Археологический полевой журнал": поддержка работы с картографическими объектами
Разработка программного средства, внесение в него отчета, данных о находках, отображение археологических памятников на карте, автоматической генерации отчета по заданному шаблону. Функциональные требования к онлайн–карте. Описание структуры базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 29.08.2014 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОССИИ
Федеральное государственное автономное образовательное учреждение
среднего профессионального образования
«Новосибирский национальный исследовательский государственный университет»
КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Дипломный проект
Создание Web-приложения «Археологический полевой журнал»: поддержка работы с картографическими объектами
Новосибирск
Содержание
Введение
1. Постановка задачи
2. Изучение предметной области
3. Аналоги
3.1 Система
3.2 Онлайн-карты
4. Актуальность
5. Функциональные требования к программному продукту
5.1 Функциональные требования к онлайн-карте
6. Характеристика выбранных программных сред и средств
7. Диаграмма взаимодействия проектов
7.1 Возможные способы реализации
8. Описание входных/выходных данных
8.1 Входные данные
8.2 Выходные данные
9. Описание структуры базы данных
10. Схема функционирования программного средства
10.1 Файл «paint.php»
10.2 Файл«Ajax_start_exe.php»
10.3 Файл «maps_test.php»
10.4 Файл «loadPointFromINI.php»
10.5 Файл «loadPointFromXML.php»
10.6 Файл «gMap.php»
Заключение
Список использованных источников
Приложение 1
Введение
Полевой отчет - это основной источник информации в археологии. Он составляется в процессе исследований и представляет собой набор данных об изученном археологическом материале. Отчет должен быть максимально подробным на случай не получения музеем археологического материала. Из-за большого количества данных требуется огромное количество времени на его пере структуризацию и последующий анализ. Упрощение же грозит потерей данных, что неприемлемо. Основная проблема в этом случае - отсутствие программных средств.
Задача, поставленная перед автором, состоит в разработке удобного программного средства, работающего с БД. В функции программного средства включены: внесение в неё отчета, данных о находках, отображение археологических памятников на карте, автоматической генерации отчета по заданному шаблону.
Выбор web-интерфейса обоснуется наличием единой БД, доступного с любого компьютера, а так же отсутствием необходимости установки дополнительно программного обеспечения. Это важно для быстрой обработки данных в полевых условиях и должно значительно сократить время на последующую обработку данных и написание отчета.
1. Постановка задачи
Задачей данного проекта является создание «Археологического полевого журнала».
«Археологический полевой журнал» - это программная система, которая должна помочь археологам с составлением отчетов, фиксации результатов. Когда в базе есть все данные о раскопках, то отчёт делается одним нажатием клавиши в окончательном виде (в 20-ти томах, если надо). Но, кроме фиксации материала и описаний в поле, система должна выполнять роль справочной информационной системы. Для этой цели в базе будут храниться полные материалы по сотням экспедиций. Такую базу может собирать институт археологии РАН в Москве, куда высылаются все отчёты по России. Кроме доступа к любому выбранному полевому журналу, система должна иметь возможность осуществлять сплошной поиск по всем журналам, допустим, артефактов определённого типа или памятников в заданной окрестности или по времени раскопок.
Общий проект состоит в разработке web-интерфейса позволяющего работать с базой данных: внесение в неё отчета, данных о находках, отображение археологических памятников на карте, автоматической генерации отчета по заданному шаблону.
Использование web-интерфейса обеспечивает доступ к базе данных с любого компьютера, имеющего доступ к сети, не требует установки дополнительных программ. Что дает возможность вести работу по внесению данных в полевых условиях и должно значительно сократить время на последующую обработку данных и написание отчета.
Перед автором стоит задача создания модулей рисования, сохранения и добавления в отчет картографической информации.
2. Изучение предметной области
Изучена новая предметная область - Археология.
Археология - историческая дисциплина, изучающая по вещественным источникам историческое прошлое человечества. В процессе изучения археологами производятся раскопки археологических памятников. Они исследуют и публикуют находки и результаты раскопок, восстанавливают по этим данным историческое прошлое человечества. Археологическим источником памятник становится после проведения должным образом раскопок со строгим соблюдением методики. У каждого вида памятников есть своя специфика, обусловленная видом и особенностями памятника.
Основным результатом экспедиции является собранный материал и описание места раскопок, проведенных работ и находок в виде полного отчета. Сам памятник в ходе раскопок полностью уничтожается. После этого источником для дальнейших научных исследований становится научный отчет. Отчеты направляются в несколько инстанций по окончании работ: научный отчет в головной институт Археологии РАН, бухгалтерский отчет в финансирующую организацию, отчет о проведенных работах - в местные органы охраны культурного наследия, опись находок - в музей вместе с коллекцией. программный археологический автоматический карта
3. Аналоги
Далее приведены аналоги для программной системы в целом и конкретно для онлай-карт.
Поскольку аналогов карт, обладающих полной функциональностью, не обнаружено, были приведены аналоги для конкретных подзадач.
3.1 Система
· База данных «Археологические памятники Кисловодской котловины», создана Д.С. Коробовым на основереляционной системы управления базами данных MicrosoftAccess 97. Программный продукт позволяет включать информацию количественного и качественного плана, заносить текстовые данные любого объёма, присоединять любые объекты, поддерживающие протокол OLE. Так же имеется возможность создавать списки значений признака, подставляемых в поле базы данных. Всего в БД используется более чем 1400 файлов фотографий, 230 планов и 170 файлов рисунков. Имеется поддержка ГИС ArcView 3.0. Не смотря на возможность подробного описания любых данных, база данных работает только при наличии MicrosoftAccess, операционной системы семейства MicrosoftWindows. Это ставит под вопрос возможность использования программного средства в «поле», а так же возможность генерации отчётов.
На рисунке 1 изображено главное окно.
· АИС «АРХЕОГРАФ» [1], разработан Станиславом Васильевым (ИИМК РАН), представляет из себя информационную систему для подробного и точного описания археологических памятников. Система позволяет производить учёт и поиск информации, организацию непосредственного взаимодействия информации с ГИС с использованием топографических карт местности любого необходимого масштаба. Однако, система хранит только информацию о памятниках, нет данных о раскопках и находках.АИС АРХЕОГРАФ является приложением локальным и работает только в операционных системах семейства MicrosoftWindows.
Рисунок. 1 - База данных «Археологические памятники Кисловодской котловины»
На рисунке 2 изображено главное окно.
Рисунок. 2 -АИС «АРХЕОГРАФ»
· Электронная база данных археологических находок (НовГУ) представляет из себя web-приложение каталог находок. База данных имеет удобный инструмент для поиска конкретной находик, включает в себя несколько памятников и различных временных промежутков.Приложение позволяет производить поиск по большому количеству параметров: материал, категория, наименование, область, район, населённый пункт, памятник, раскоп.
На рисунке 3 изображено главное окно.
Рисунок 3 -Электронная база данных археологических находок (НовГУ)
· Виртуальный музей «История и культура народов Сибири и Дальнего Востока» (Ю.П. Холюшкин ИАЭТ СО РАН и другие). Представляет из себяweb-приложение. Виртуальный музей обеспечивает хранение и получение исчерпывающей информации о музейных экспонатах, создание и хранение различного рода информации о музеях, как виртуальных так и реальных, сохранение изображений предметов, оцифрованных фотографий и набросков, создание и просмотр публикаций, полный инструментарий по манипулированию различными категориями данных, поддержка VRML.
На рисунке 4 изображено главное окно.
Рисунок. 4 - Виртуальный музей «История и культура народов Сибири и Дальнего Востока»
3.2 Онлайн - карты
1. Сохранение карты: онлайн-сервисы:
a) http://www.htm2pdf.co.uk/
На рисунке 5изображено главное окно программы.
Рисунок 5
2. Данный сервис создает pdf - версию указанного сайта.
b) http://www.thumbalizr.com/
На рисунке 6 изображено главное окно программы.
Рисунок 6
Данный сервис создает JPG иPNG изображения указанной web-страницы.
1) Добавление на карту меток:
a) Yandex Maps API, (http://api.yandex.ru/maps/)
b) OpenStreetAPI.(openstreetmap.org)
4. Актуальность
Несмотря на то, что проблема ведения электронной археологической документации появилась давно. В России подобные проекты всё еще являются редкостью, большая часть разработок в этой области носит локальный характер, а опубликованных материалов практически нет. До сих пор нет системы, которая бы удовлетворительно автоматизировала ведение полевого журнала. В отсутствие такой системы неизбежны огромные затраты времени на выполнение неквалифицированной, но очень ответственной работы квалифицированными специалистами.
Данная система очень сильно упрощает процесс ввода информации в отчет, и поэтому данное приложение имеет большую актуальность.
5. Функциональные требования к программному продукту
В базе хранятся не только сами описания и иллюстрации, но и шаблоны, задающие формат хранения материалов, определяющие интерфейс ввода/вывода и представление материала в различного типа отчётах. Шаблоны описывают 3 компоненты: MVC - model, viewer, controller.
На рисунке 7 изображены доступные действия для пользователей ПС.
Пользователь должен иметь возможность:
· создавать, изменять, просматривать и удалять шаблоны для генерации отчётов.
· добавлять данные для составления отчёта.
· применять шаблоны для генерации отчётов.
· редактировать и просматривать сгенерированные отчёты.
· Создавать и редактировать картографические схемы и планы.
· применять темы оформления web-приложения.
Рисунок 7
5.1 Функциональные требования к онлайн-карте
1) Добавление на карту специальных отметок.
2) Сохранение карты в формате JPG и сохранение отметок в виде XML.
3) Возможность загрузки карты по отметкам XML.
На рисунке 7 изображена файловая схема онлайн-редактора с подробным описанием функций и входных и выходных данных для всех файлов.
Рисунок 8 - файловая схема
6. Характеристика выбранных программных сред и средств
Скриптовый язык программирования общего назначения - PHP5[3][4][5] (PHP Hypertext Preprocessor); PHP - язык написания скриптов, которые встраиваются непосредственно в гипертекстовые файлы и исполняются на Web-сервере.
HTML [10] (Hyper Text Markup Language) - стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для пользователя и понятной форме.
XML (eXtensible Markup Language)[9]; XML - язык разметки, определяющий ряд правил кодировки в формате, удобном для чтения как человеку, так и программным средствам. Спецификация XML 1.0 и ряд других стандартов это открытые стандарты заданные W3C (WorldWideWebConsortium).
SQL (Structured Query Language) SQL - узконаправленный язык программирования, созданный для управления данных в системах управления реляционными базами данных.
JSON (Java Script Object Notation); JSON - Открытый стандарт форматирования текста, удобного для пользователя, для передачи объектов состоящих из пар «атрибут-значение».JSON применяется для приёма и передаче данных между серверами, web-приложением и сервером, как альтернатива XML.
Каскадные таблицы стилей - CSS3 (Cascading Style Sheets); CSS - технология описания внешнего вида документа, написанного языком разметки. CSS используется как средство оформления веб-страниц в формате HTML и XHTML, но может применяться с любыми видами документов в формате, включая XML и XVL.
Средства скриптового языка - Java Script [8]; Java Script - скриптовый язык объектно-ориентированного программирования. Java Script обычно используется как встраиваемое средство выполнения данных. В веб-программирование Java Script применим в качестве средства динамического изменения веб-страницы.
Технология AJAX(Asynchronous Java Scriptand XML); AJAX - набор взаимосвязанных техник web-разработки, позволяющие создавать асинхронные web-приложения. При помощи AJAX web-приложение может асинхронно(в фоновом режиме) отправлять и получать данные, никак при этом не вмешиваясь в процесс отображения текущего HTML документа. Не смотря на наличие стандарта XMLв названии, данные могут быть различного типа.
Технология AJAJ (Asynchronous Java Scriptand JSON); AJAJ - это технология аналогичная технологии AJAX, однако в отличии от AJAX передаются данные типа JSON.
Библиотека jQuery [7]; - набор функций и инструментов, облегчающие поиск и манипулирование элементов на странице HTML-документа, а так же ряд других возможностей, такие как анимация элементов, обработка событий и облегченный API для работы с AJAX или AJAJ.
GIMP [2] (GNU Image Manipulation Program); GIMP - графический редактор, предназначенный для редактирования фотографий, который также применяется для создания дизайна web-сайтов.
Adobe Photoshop - растровый графический редактор, предназначенный для работы с изображениями различных видов. Предлагает богатый функционал для создания дизайна web-сайтов.
Notepad++ - Текстовый редактор, поддерживающий работы с несколькими файлами одновременно используя вкладки, а так же ряд дополнений необходимых для написания и отладки исходного кода программ.
XAMPP(X (cross) Apache My SQLPHP Perl); XAMPP - Набор серверных приложений для создания web-приложения. Включает в себя web-сервер Apache, СУБД MySQL [5], интерпретатор PHP и Perl, а так же множество других программных средств.
WAMP (Windows Apache My SQLPHP); WAMP - Набор серверных серверных приложений для создания web-приложения. Включает в себя web-сервер Apache, СУБД MySQL, интерпретатор PHP.
File Zilla - FTP-сервер(File Transfer Protocol). Удобный и простой в настройке и обращении FTP-сервер, используется для хранения, скачивания и загрузки файлов на web-сервер Apache.
Chrome Developer Tools - Набор инструментов для отладки web-приложения, содержится в web-браузере Google Chrome. Позволяет выполнять отладку JavaScript и DOM кода.
Google Maps API - API предоставляемый корпорацией Google для работы с динамическими картами Google Maps. Имеет широкий функционал, позволяющий расставлять на карте маркеры с пользовательскими изображениями, выбирать и фиксировать позицию на карте, наносить рисунки на карту, отображать метки и информацию и многое другое.
Google Maps Static API - API предоставляемый корпорацией Google для работы со статическими картами Google Maps. Предоставляет возможность выбора определенной части карты с помощью заданных параметров координат и параметра масштабирования.
Yandex Maps JSv2 - API предоставляемый компанией Yandex для работы с динамическимим и статическими картами Yandex Maps. В отличии от API Google Maps имеет более удобный способ отправки параметров при помощи XML-документа.
Embarcadero Delphi 2010 - IDE (Integrated Development Enviroment) для создания консольных, оконных, web и мобильных приложений. Содержит компилятор для языка Object Pascal, диалект языка Pascal.
HTML2Canvas - библиотека для JavaScript, позволяет производит «снимок экрана» текущей страницы на основе DOMHTML-документа.
7. Диаграмма взаимодействия проектов
На рисунке 9 показаны все основные файлы проекта и их авторы.
Рисунок 9
На рисунке 10 изображена общая схема файлов, используемых в проекте и их краткое описание.
Файлы report.static.php, data.tree.php, insert.data.php, FormtText.php- это модуль генерации отчета. Подробно об этом модуле можно посмотреть в дипломном проекте Михайлова Алексея.
Файлыpaint.php, Ajax_start_exe.php, maps_test.php, loadPoint.php- это модуль картографии. Подробнее об этих файлах можно посмотреть в схеме функционирования программного средства.
Рисунок 10 - схема взаимодействия проектов.
7.1 Возможные способы реализации
Один из возможных способов реализации программного средства - локальное приложение.
Взяв за основу структуру данных предложенную в АИС «АРХЕОГРАФ», возможно усовершенствовать и дополнить функционал АИС. Взяв за основу для интерфейса фреймворк Qt возможно будет добиться кроссплатформенности. Qt - это кросс-платформенный фреймворк для языка C++. Фремворк Qt содержит множество элементов для реализации различных функций будущего программного средства, но так же большинство версий Qt поддерживается множеством компиляторов, такими как GCC или Visual Studio. Qt поставляется в IDEQt Creator, с простым и удобным интерфейсом для создания и разработки пользовательских интерфейсов. Использование библиотекиBoost для языка программирования C++ даёт возможность реализовать работу со сложными древовидными структурами. Хранение данных будет осуществляться используя драйвер Qt для SQ Lite в базе данных SQ Lite.
Недостатками данного решения являются системные ограничения - не на всех устройствах возможна поддержка запуска скомпилированных C++ приложений. Так же отсутствует возможность совместной работы. Возможны сложности или полное отсутсвие функции экспорта/импорта данных.
Другой вариант реализации программного средства - web-приложение с использованием языка Python для генерации и работы с отчётами, Postgre SQL в качестве СУБД. Язык программирования Python это высокоуровневый интерпретируемый интерактивный язык программирования. Он поддерживает модульность, исключения, динамическую типизацию, высокоуровневые динамические типы данных и классы. Python поддерживает несколько парадигм программирования, такие как объектно-ориентированное программирование, процедурное и императивное программирование. Кроме этого для языка Python существует большое количество библиотек для работы с изображениями, древовидными структурами, XMLи прочее.
Использовать Python в качестве скриптового языка для web-страниц возможно при помощи технологии CGI (Common Gateway Interface), поддерживаемой на большинстве web-серверов.
Postgre SQL - это мощная СУБД с открытым исходным кодом. Она разрабатывается больше 15 лет и имеет хорошую репутацию стабильной и быстрой системы.
Минусы данного способа реализации заключаются в отсутствии опыта разработки на языке программирования Python, нестабильной работы Python через CGI в целом.
Еще одним вариантом реализации является web-приложение написанное на Node.js Node.js это программная среда для масштабируемых серверных и сетевых приложений. Программы Node.js написаны на языкеJavaScript и могут выполняться в операционных системах семейств Apple Mac OSX, Microsoft Windows, GNU/Linux без каких-либо изменений. Приложения на Node.js разработаны для максимально эффективного выполнения, используя асинхронную, не блокирующую подачу и обработку входных/выходных данных, асинхронные события. Node.js использует GoogleV8 JavaScript платформу для выполнения кода и большая часть базовых модулей написана на JavaScript.Node.js поддерживает асинхронные ввод/вывод данных, сокеты и протокол HTTP, что позволяет использовать Node.js в связке с web-сервером Apache.
Минусами данного решения можно считать относительную новизну платформы Node.js и её общую нестабильность, отсутствие опыта работы с данной платформы и текущие объёмы документации.
Выбранный способ реализации - язык программирования PHP в связке с СУБД MySQL, размещенные на web-сервере Apache. Связка PHP+MySQL достаточно популярное решение для web-приложений. Язык программирования PHP - серверный язык, используемый для web-разработки. Язык содержит множество API и библиотек для работы с большим количеством технологий, таких как парсинг и генерация XML, работа с JSON, YAML, построение DOM-объектов, работа с базами данных MySQL (mysql, mysqli) и Postgre SQL (pg_*) и другие СУБД(PDO). PHP позволяет выполнение бинарных файлов на стороне сервера, работу с изображениями и звуковыми форматами данных.
Использование рекурсии позволит обходить и изменять древовидные структуры, необходимые для построения структуры отчёта и его генерации, создания шаблонов с неявной вложенностью.
Простая и удобная встраиваемость PHP-программ в HTML-документы позволит использовать возможности CSS для генерируемого материала. PHP-программы принимают аргументы POST и GET запросов, тем самым давая возможность реализации технологии AJAX.
Для упрощения манипуляции с DOMHTML-документа, реализации AJAX на клиентской стороне используется библиотека jQuery для Javascript. jQuery это кросс-платформенная библиотека для языка JavaScript, созданная для упрощения разработки клиент-приложений, встраиваемых в HTML-документы web-приложений. Библиотека jQuery это библиотека с открытым исходным кодом. Основное применение это манипуляция с элементами HTML-документов, создавать анимации, управлять событиями и разрабатывать AJAX-приложения.
Работа с картами реализована при помощи API поставщика сервисов картографии - Google Maps. Google Maps API это бесплатный свободный для использования сервис от компании Google, позволяющий встраивать и работать с картами Google Maps. Google Maps API содержит набор методов для доступа к динамическим картам Google Maps, позволяя реализовывать гео-локацию, работу с координатами в системе GPS. Набор функций Google Maps API для статических карт Google Maps предоставляет возможности задания размера, координат в системе GPS, нанесения каких-либо маркеров, устанавливаемых пользователем, возвращая при этом статичный файл изображения, который возможно сохранить и использовать для любых нужд. Для коммерческих решений компания Google предоставляет Google Maps APIfor Business.
8. Описание входных/выходных данных
8.1 Входные данные
В качестве входных данных, генератор принимает запись вида «полевой журнал» из базы данных. «Полевой журнал» представляет из себя данные, отформатированные или нет, с указанным типом данных. При этом запись может представлять как текст, так и изображение, любые другие файловые форматы.
Для редактора шаблонов входными данными является XML-документ, составленный вручную или же сгенерированный редактором шаблонов. Файлы шаблонов хранятся на сервере и проверяются редактором шаблонов перед редактированием.
Также программное средство может принимать:
· Готовый отчет в формате PDF.
· Набор текста для создания отчета.
· Список всех возможных типов.
8.2 Выходные данные
Готовое программное средство позволяет создавать:
· Готовый отчет в формате HTML.
· Таблицы находок в формате HTML.
· Таблицы реперов в формате HTML.
· Карты находок в формате JPG.
· Карты находок в формате XML.
В качестве выходных данных для редактора шаблонов являются XML-документы файлов шаблонов, сохранённых после редактирования и/или просмотра.
Так же имеются некоторые текстовые и XMLфайлы, используемые для обмена и сохранения временной информации.
9. Описание структуры базы данных
База данных содержит в себе 3 таблицы.
С помощью этих вырожденных таблиц в отчете можно представить любой тип данных с любым структурой.
В таблице 1 содержится сама информация в формате XML.
Таблица 1 - Объекты
Имя поля |
Название |
Тип поля |
Назначение |
|
Id |
Идентификатор |
Автоинкрементное целое |
Уникальный идентификатор записи |
|
IdTypeOfObject |
Тип |
целое |
Ссылка на описание типа объекта |
|
IdTypeOfValue |
Формат значения |
целое |
Ссылка на формат хранения данных |
|
ValueText |
Значение |
Текст неопределённой длины |
Текстовое значение объекта (м.б. XML), или приложение/версия для чтения ValueBinary |
|
ValueBinary |
Значение |
Двоичное неопределённой длины |
Двоичное значение (фото, аудио, видео, документ для указанного приложения) |
В таблице 2 содержится структура будущего отчета, по этой структуре строится дерево.
Таблица 2 - Связи
Имя поля |
Название |
Тип поля |
Указывает на поле |
Назначение |
|
Id |
Идентификатор |
Автоинкрементноецелое |
Уникальный идентификатор записи |
||
IdOf Lider |
Ведущий элемент |
целое |
Связи->Id |
Ссылка на первую запись в группе |
|
IdType Of Relations |
Тип связи |
целое |
Типы->Id |
Ссылка на описание типа связи |
|
Id Type Of Unit |
Тип элемента |
целое |
Типы->Id |
Ссылка на описание типа элемента (роли внутри отношения) |
|
Id Object |
Объект |
целое |
Объекты->Id |
Ссылка на объект (элемент связи) |
В таблице 3 определяются методы, по которым будет происходить вывод данных.
Таблица 3 - Типы
Имя поля |
Название |
Тип поля |
Назначение |
|
Id |
Идентификатор |
Автоинкрементное целое |
Уникальный идентификатор записи |
|
Name |
Имя |
Текст*256 |
Название типа (Lat) |
|
Description |
Значение |
Текст неопределённой длины |
Текстовое (XML) описание типа по частям: Model / Viewer / Controler |
10. Схема функционирования программного средства
10.1 Файл «paint.php»
Глобальные переменные:
map - Объект JS, представляющий собой карту.
markers - Массив маркеров, отчеченных на карте.
ThisGrad - Переменная типа boolean, отмечающая переключение режима радиан и градусов.
· textXML - Переменная, содержащая XML - код карты.
· textINIFile - Переменная, содержащая текст буферного файла «init.txt».
Функции:
conv(alpha) - Преобразование из формата радиан в формат градусов.
unBlockInput - Разблокировка элемента формы dialog_window_1.
blockInput - Блокировка элемента формы dialog_window_1.
convertGrad - Преобразование из формата градусов в формат радиан.
Initialize - Функция создания карты и назначения обработок событий (маркеров, перемещения карты), а так же добавления маркеров на карту.
addMarker(location, ICO_SET) - Функция добавления маркера в указанное место и с указанной иконкой.
$(document).ready -jQuery - функция инициализации.
generateTextFile -Создание текста дляфайл буфера «ini.txt» и XML - версии карты.
save_map - Отправление данных через интерфейс Ajax, сгенерированных generateTextFile и показ анимации загрузки.
print_result - Вывод ссылки на созданное изображение и показ кода XML и текста «ini.txt». Прекращение анимации.
На рисунке 10.1 показан общий вид онлайн - редактора и красным, светло и темно-фиолетовым и синими цветами отмечены функциональные элементы.
Красным цветом отмечен лог, в котором выводит текущее место карты и её масштаб, а так же местоположение выбранного маркера. Этот лог меняется в функциях initialize, addMarker с помощью вызова анонимных функций при клике на маркере и изменений карты.
Светло-фиолетовым отмечен блок выбора типа изделия (тип маркера). При его выборе вызывается анонимная функция, прикрепленная к «#selectinput».
Темно-фиолетовым отмечен блок выбора сохраненного изображения. После его выбора происходит перезагрузка страницы, изменяется PHP- переменная «$NameFile» и в подключенном файле «loadPointFromXML.php» происходит загрузка из выбранного XMLфайла настроек карты и маркеров.
Синим цветом отмечена кнопка, по нажатию которой запускается функция Save().
Рисунок 10.1 - Вид онлайн-карты. Файл paint.php.
10.2 Файл«Ajax_start_exe.php»
Порядок выполняемых действий:
Производит запись буферного файла «ini.txt».
Производит запуск EXE приложения SavePage.EXE на сервере.
Считывает последнюю запись в файле «names.txt» и запоминает ее в переменной «$NameImage».
Сохраняет конфигурационный файл карты под именем «<$NameImage>.xml».
Отпечатывает $NameImage.
10.3 Файл «maps_test.php»
Порядок выполняемых действий:
Открывает карту с настройками, указанными в файле «ini.txt».
Пребразует указанный текстовый файл в команды JS при подключении файла «loadPointFromINI.php».
Используется EXE приложением для Windows«SavePage.EXE».
10.4 Файл «loadPointFromINI.php»
Порядок выполняемых действий:
Открывает файл $NameFile,
С помощью функции echo распечатывает JavaScript - коды (настройки карты и точки, отмеченные на карте).
Первые 2 строчки содержат k, A и масштаб карты,в остальных через запятую указаны Title, k, A и ICO_URL
10.5 Файл «loadPointFromXML.php»
Порядок выполняемых действий:
открывает файл $NameFile, и преобразует файл XML в PHP - объект.
С помощью функции echo распечатывает JavaScript - коды, (а именно настройки карты и точки, отмеченные на карте).
10.6 Файл «gMap.php»
Порядок выполняемых действий:
Выполняется запрос к БД на поиск объектов с типом «24».
Выполняется запрос к БД на поиск «ID» объектов являющихся поддеревьями для текущих.
Выполняется запрос к БД на поиск значений всех объектов.
Распечатка полученной таблицы.
Распечатка JSкодов полученных маркеров.
Создание карты с полученными маркерами.
На рисунке 10.2 показан общий вид онлайн - карты.
Рисунок 10.2
Заключение
· На данном этапе разработки реализовано:
· Создан макет сайта в графическом редакторе.
· Разработан общий стиль.
· Изучено CSS, HTML, Javascript.
· Проведена работа в графическом редакторе.
· В дальнейших планах:
· Доработка таблицы стилей.
Список использованных источников
1. АИС Археограф [Электронный ресурс]-URL:http://ardb.spb.ru/ru/about.htm, свободный. - Яз.рус. - (Дата обращ. 25.02.14).
2. GIMP - GNU Image Manipulator Program[Электронный ресурс] - URL:http//www.gimp.org, свободный. - Яз.рус. - (Дата обращ. 30.04.14).
3. PHP Справочник(PHPinaNutshell) / Хадсон Пол // 2006
4. PHP.net[Электронный ресурс] - URL:http://www.php.net, свободный. - Яз.рус. - (Дата обращ. 18.02.14).
5. PHP CookBook / David Sklar, Adam Trachtenberg //2002
6. Документация к СУБД MySQL [Электронный ресурс] - URL:http://dev.mysql.com/doc/ свободный - Яз англ., рус. - (Дата обращ. 18.02.14).
7. Документация API библиотеки jQuery[Электронный ресурс] - URL: http://api.jquery.com/, свободный. - Яз.англ.- (Дата обращ. 18.02.14).Ошибка! Недопустимый объект гиперссылки.
8. Справочник языка программирования JavaScript [Электронный ресурс] - URL:http://javascript.ru/manualОшибка! Недопустимый объект гиперссылки., свободный. - Яз.рус.- (Дата обращ. 18.02.14).
9. Ошибка! Недопустимый объект гиперссылки.XML от издательства технической литературы O'Reilly[Электронный ресурс] - URL: http://oreilly.com/xml/, свободный. - Яз.рус.- (Дата обращ. 18.02.14).
10. Справочные материалы по HTML, CSS [Электронный ресурс] - URL:http://htmlbook.ru, свободный - Яз. Рус. - (Дата обращ. 18.02.14).
Приложение 1
Формат XML файла:
<?xmlversion="1.0" encoding="utf-8" ?>
<RecentBooks>
<CenterA> «X» </CenterA>
<Centerk> «Y» </Centerk>
<Zoom> «zoom» </Zoom>
<Bools>
<Title> «Title» </Title>
<Description> «Description» </Description>
<Position>
<A> «X» </A>
<k> «Y» </k>
</Position>
<Icon> «URL ICO» </Icon>
</Bools>
</RecentBooks>
Формат файла «delay.txt»
задержка при открытии
задержка на отрисовку карты
задержка при закрытии приложения
порядковый номер изображения
URL страницы, которой надо сделать скрин
Формат файла «ini.txt»
«X центра карты», «Y центра карты»5
«Title», «X метки», «Y метки», «ссылка на изображение», 0
Функции
Файл paint.php
include_once «loadPoint.php» - подключениефайла «loadPoint.php».
conv(alpha) - преобразование из координат вида (k, A) в вид (<>°<>`<>``,<>°<>`<>``).
unBlockInput - разблокировка всех полей ввода формы задания кооринат.
blockInput -блокировка всех полей ввода формы задания кооринат.
convertGrad (A, k) - обратное преобразование функции conv.
Initialize - создание карты и установка маркеров, указанных в «ini.txt».
addMarker(location, ICO_SET) -добавление маркера на карту.
$(document).ready - вызов анонимной функции после загрузки страницы.
generateXML() - создание XML - текста, а так же текста в файле «ini.txt».
print_result - распечатать XML, «ini.txt», а так же вывести ссылку на полученное изображение.
save_map() - сохранение карты в формате JPG и XML.
Файл Ajax_start_exe.php
if (!empty($_POST))
{
$fg = fopen("ini.txt","w");
fwrite($fg, $_POST['initFile']);
// Запись «ini.txt», текстпереданвмассиве $_POST.
$fg = fopen("bools.xml","w");
fwrite($fg, $_POST['xml']);
// Запись «bools.xml», текстпереданвмассиве $_POST.
echo system('start SavePage.exe');
// Запуск программы на стороне сервера.
$NameImage = ''; $NameImage_next = '';
$File = fopen('names.txt','r');
while (!feof($File))
{
$NameImage = $NameImage_next;
$NameImage_next = fgets($File);
}
// Получение имени последнего созданного файла.
fclose($File);
echo($NameImage);
// Отправка имени последнего созданного файла в файл «paint.php».
}
Файл maps_test.php
Initialize - создание карты и установка маркеров, указанных в «ini.txt».
addMarker(location, ICO_SET) -добавление маркера на карту.
Файлload_point.php
$NameFile = 'ini.txt';
// Переменная, в которую будет записываться исходный текст.
$Line = '';
$markers = Array();
$i = 0;
// Чтениефайла «ini.txt».
$File = fopen($NameFile,"r");
while (!feof($File))
{
$Line[$i] = fgets($File);
$i++;
}
fclose($File);
$length = $i; // запоминание количества строк в файле.
// Преобразование строки в массив.
$position_center = explode(', ',$Line[0]);
//Распечатка JS кода создания и инициализации переменных центра карты.
echo 'varposMap_k = '.$position_center[0]."\n";
echo 'varposMap_A = '.$position_center[1]."\n";
$zoom = $Line[1];
// Распечатка JS кода создания и инициализации переменных масштаба карты.
echo 'varZoomMaps = '.$zoom."\n";
// Распечатка JS кода создания массивов.
echo "varmarkers_title = []; varmarkers_k = []; varmarkers_A = []; varmarkers_ICO = [];\n";
// Распечатка JS кода заполнения массивов маркеров.
for ($i = 2; $i< $length - 1; $i++)
{
$markers[$i] = explode(', ',$Line[$i]);
echo "markers_title.push('".$markers[$i][0]."');\n ";
echo "markers_ICO.push('".$markers[$i][3]."');\n ";
echo "markers_k.push(".$markers[$i][1].");\n ";
echo "markers_A.push(".$markers[$i][2].");\n ";
echo "\n";
}
Размещено на Allbest.ru
Подобные документы
Разработка web-интерфейса, позволяющего работать с базой данных: внесение в неё отчета, данных о находках, отображение археологических памятников на карте, автоматической генерации отчета по заданному шаблону. Характеристика программных сред и средств.
дипломная работа [4,4 M], добавлен 23.09.2014Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.
курсовая работа [1,6 M], добавлен 08.02.2013Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.
дипломная работа [996,4 K], добавлен 01.04.2012Возможности создания баз данных средствами программного продукта SQL. Изучение предметной области и разработка проекта базы данных по учету студентов "Журнал классного руководителя". Задачи реализации программного средства, его тестирование и отладка.
курсовая работа [3,7 M], добавлен 07.12.2012Задачи реляционной модели данных. Работа с БД посредством SQL запросов. Требования к программе. Система просмотра отчета. Способы вывода информации: на бумажный носитель и в табличный процессор Microsoft Excel. Средства защиты и хранения данных.
курсовая работа [245,7 K], добавлен 22.06.2009Классификация баз данных. Создание списковой структуры, просмотр, удаление, сохранение в типизированном файле, восстановление из типизированного файла, поиск нужного элемента, создание отчета. Ввод, отображение и редактирование текстового материала.
курсовая работа [2,8 M], добавлен 22.12.2016Теоретические основы разработки приложения для автоматизации данных по Олимпиаде. Основные свойства объектов, связей, их атрибуты. Создание отчета на примере "спортсмены занявшие места с 1 по 3". Структура запросов, таблиц базы данных в Microsoft Access.
курсовая работа [1,1 M], добавлен 09.12.2013Краткая характеристика, главные преимущества и область применения MS Access. Базы данных и системы управления базами данных. Описание пошагового создания базы данных, таблиц, форм, запроса и отчета. Особенности и функциональные возможности MS Access.
курсовая работа [3,4 M], добавлен 23.09.2010Постановка задачи, система автоматизации операций. Проектирование, создание и управление Базой данных, формы для запросов, кнопочная форма. Работа запроса и отчета. Схема данных, создание новой группы, товара. Технологическая инструкция пользователя.
курсовая работа [1,9 M], добавлен 14.02.2010Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.
курсовая работа [1,1 M], добавлен 04.09.2014