close

Вход

Забыли?

вход по аккаунту

Паршина Вероника Александровна. Методика формирования и распространения информации в геолокационных сервисах

код для вставки
Powered by TCPDF (www.tcpdf.org)
АННОТАЦИЯ
ВКР 108 с., 23 рис., 2 табл., 22 источников, 2 прил.
ИНФОРМАЦИОННАЯ
ГЕОИНФОРМАЦИОННЫЕ
СИСТЕМА,
ТЕХНОЛОГИИ,
ГЕОИНФОРМАЦИЯ,
ГЕОЛОКАЦИЯ,
СБОР
ИНФОРМАЦИИ, ВЕБ-СЕРВИС, ГЕОЛОКАЦИОННЫЙ СЕРВИС, ПРЯМОЕ И
ОБРАТНОЕ ГЕОКОДИРОВАНИЕ
Выпускная квалификационная работа посвящена разработке методики
формирования и распространения информации в геолокационных сервисах,
которая
позволит
повысить
качество
предоставляемой
информации
в
геолокационных сервисах.
В первой главе был произведен анализ и исследование существующих систем
формирования и распространения геоинформации. моделирование бизнеспроцессов предметной области, разработка требований к информационной
системе.
Во второй главе проанализировали существующие подходы к формированию
и распространению информации. Разработана методика формирования и
распространения геоинформации, предполагающая создание информационной
системы формирования и распространения геоинформации.
В третьей главе была разработана логическая схема построения системы,
описана структурная схема, спроектирована структура данных в виде логической
и физической модели.
В четвертой главе описаны алгоритмы работы основных модулей
подсистемы, реализующей разработанную методику, разработана логика диалога с
пользователем, спроектированы и описаны пользовательские интерфейсы системы.
В заключении сделаны основные выводы по выпускной квалификационной
работе.
Разработанная методика позволит увеличить качество, разнообразие и
эффективность пространственно-временной информации.
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
6
1 АНАЛИЗ И ИССЛЕДОВАНИЕ СУЩЕСТВУЮЩИХ ПОДХОДОВ К
ФОРМИРОВАНИЮ И РАСПРОСТРАНЕНИЮ ИНФОРМАЦИИ
8
1.1 Обзор существующих систем формирования и распространения
геоинформации
8
1.2 Обзор средств реализации
16
1.3 Описание предметной области
24
1.4 Постановка задач исследования
30
2 СУЩЕСТВУЮЩИЕ МЕТОДЫ ФОРМИРОВАНИЯ И РАСПРОСТРАНЕНИЯ
ИНФОРМАЦИИ
34
2.1 Обзор существующих методов и подходов к формированию и
распространению информации в геолокационных сервисах
34
2.2 Выявление преимуществ и недостатков существующих подходов к
формированию и распространению геоинформации
38
2.3 Методика формирования и распространения информации в геолокационном
сервисе
45
3 ПРОЕКТИРОВАНИЕ ПРОТОТИПА ИНФОРМАЦИОННОЙ СИСТЕМЫ
ФОРМИРОВАНИЯ И РАСПРОСТРАНЕНИЯ ИНФОРМАЦИИ В
ГЕОЛОКАЦИОННЫХ СЕРВИСАХ
50
3.1 Логическая схема построения сети прототипа системы формирования и
распространения информации в геолокационных сервисах
50
3.2 Структура прототипа информационной системы, реализующего
разработанную методику
53
3.3 Разработка структуры данных
56
3.4 Разработка алгоритмов работы отдельных подсистем
65
4 РЕАЛИЗАЦИЯ ПРОТОТИПА ИНФОРМАЦИОННОЙ СИСТЕМЫ
ФОРМИРОВАНИЯ И РАСПРОСТРАНЕНИЯ ГЕОИНФОРМАЦИИ
71
5
4.1 Построение логики диалога с пользователем
71
4.2 Экранные формы прототипа информационной системы, реализующего
разработанную методику
76
4.3 Методика тестирования прототипа информационной системы формирования и
распространения геоинформации
82
ЗАКЛЮЧЕНИЕ
86
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
89
ПРИЛОЖЕНИЕ А Листинг кода основных функций
92
ПРИЛОЖЕНИЕ Б Копия свидетельства о регистрации программ для ЭВМ
105
УДОСТОВЕРЯЮЩИЙ ЛИСТ №165145/п
106
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА ДОКУМЕНТА НА
ЭЛЕКТРОННОМ НОСИТЕЛЕ
107
6
ВВЕДЕНИЕ
На сегодняшний день геоинформационные системы (ГИС) популярны
практически во всех сферах человеческой деятельности: в государственной сфере,
в сфере транспорта и коммунального хозяйства, в управлении чрезвычайными
ситуациями, в обеспечении правопорядка и безопасности и т.д.
Одной из причин такой популярности использования в повседневной жизни
геоинформационных систем является работа с геопространственной информацией,
так
как человек ежедневно сталкивается
с
такими
данными, которые
ориентированы на пространственные и временные рамки.
Геоинформационные технологии не стоят на месте, появляются новые
способы в процессе формирования, накопления, анализа, распространения и
визуализации пространственно-временной информации. Одним из таких способов
– это геолокационные сервисы. Они основываются на определении текущего
местоположения пользователя.
Исходя из этого, местоположение человека позволяет намного проще
отсортировывать поступающую информацию из огромного объема постоянно
обновляющейся информации, распространять её, создавая общую картину
реальности.
Существующие
ГИС-технологии
формирования
и
распространения
пространственно-временной информации не являются эффективными для
предоставления более точной, своевременной, актуальной, достоверной, полной и
открытой геоинформации. Использование устаревших данных не позволяет
отобразить истинное положение дел, а принятые решения на их основе носят
зачастую негативные последствия для окружающих, которые требуют временные
и финансовые затраты на устранение появившихся проблем.
Поэтому актуальным решением является разработать новую методику
формирования
и
распространения
геоинформации.
Данная
методика
формирования и распространения информации в геолокационных сервисах
позволит обеспечить непрерывность, актуальность, точность и полноту сведений,
7
а также быструю скорость распространения предоставленной информации в
геолокационных сервисах, социальных сетях и других ресурсах сети Интернет.
Целью выпускной квалификационной работы является повышение качества
предоставляемой информации в геолокационных сервисах за счет внедрения
информационной
системы,
реализующей
методику
формирования
и
распространения геоинформации.
Основными задачами являются:
− анализ существующих систем формирования и распространения
геоинформации;
− анализ существующих подходов к формированию и распространению
геоинформации;
− разработка собственной методики формирования и распространения
информации в геолокационном сервисе;
− проектирование прототипа информационной системы использующего
созданную методику;
− разработка и реализация прототипа.
Основные
положения
выпускной
квалификационной
работы
докладывались на следующих конференциях:
1. Международная научно-практическая конференция «Экономическая
безопасность в современной России: стратегия противодействия угрозам и
перспективы устойчивого геополитического развития».
2. I молодёжная научно-практическая конференция с международным
участием, г. Белгород, 2017 г.
3. Студенческая научно-техническая конференция «Неделя науки – 2017»,
г. Орел, 2017 г.
8
1 АНАЛИЗ И ИССЛЕДОВАНИЕ СУЩЕСТВУЮЩИХ ПОДХОДОВ К
ФОРМИРОВАНИЮ И РАСПРОСТРАНЕНИЮ ИНФОРМАЦИИ
1.1 Обзор существующих систем формирования и распространения
геоинформации
На сегодняшний момент геоинформационные сервисы нашли свое
применение в повседневной жизни обычных людей, организаций и предприятий.
Ввиду растущей популярности у данных сервисов, появляются совершенно новые
возможности, позволяющие получить сведенную воедино геопространственную
информацию, отображающую реальное положение дел в городе, стране и мире.
Способность определять местоположение пользователя считается одной из
самых перспективных технологий. Идентифицируя свое местоположение,
пользователь может осуществить поиск ближайших к этому месту организаций,
заведений, а также получить необходимую информацию о них, а именно: адрес,
часы работы, телефон и т.д.
Появление новых возможностей взаимосвязано с возникновением новых, не
использующих раньше в жизни, слов. Одним из этих слов является геолокация.
Геолокация – это определение местоположения пользователя (определение
широты и долготы места, где находится пользователь) всемирной сети Интернет по
радиосигналам глобальной навигационной спутниковой системы ГЛОНАСС или
GPS, по уровню сигналов точек доступа Wi-Fi, по базовым станциям сотовой связи,
по IP-адресу компьютера.
Иными словами, это определение реального местоположения электронного
устройства – планшета, мобильного телефона, компьютера, подключенного к
Интернету.
Существует
множество
технологий,
местоположение объекта:
a) IP-адрес устройства;
b) технология GPS или ГЛОНАСС;
c) мобильные сети;
позволяющих
определять
9
d) технология Wi-Fi.
Возможности применения указанных технологий довольно широки, так как
они обеспечивают точные географические координаты объекта и открывают
огромные перспективы развития геолокационных сервисов.
Внедрение геоинформационных технологий позволяет оптимизировать
работу в различных сферах жизнедеятельности, а также повысить эффективность
деятельности организаций.
На данный момент существует около десятка популярных геолокационных
сервисов. Основными лидерами, ориентированными на местности, являются:
Google.Maps, Яндекс.Карты и OpenStreetMap. А также самыми известными
сервисами геолокации считаются: All4ge, AlterGeo, FourSguare, LikenGo. Помимо
этого, опции геолокации интегрируются в сложные продукты, например, в
Facebook, Twitter, Вконтакте. Принцип работы геосервисов основываются на
существующей базе меток на географической карте местности, например,
рестораны, кафе, клубы, магазины, обслуживающие организации и т. д. База
данных мест формируется пользователями сервисов геолокации.
Таким образом, возможность добавления своих понравившихся и
запоминающихся мест на географической карте становится востребованной в
подобных системах, так как основное общение между людьми перешло в интернетпространство. А функция распространения и обмена геопространственной
информацией среди друзей как внутри сервиса, так и за его пределы является
неотъемлемой частью онлайн-среды.
Рассмотрим несколько крупных геолокационных сервисов, позволяющие
пользователям формировать собственные метки на карте, а также распространять
созданные метки другим лицам. Представленные системы оповещают людей о
прохождении того или иного действия в ближайшей удаленности от них, об
открытии новых заведений, помогают ориентироваться в современном городе,
помогают выбрать место для отдыха, позволяют получить полезные рекомендации,
скидки и бонусы в городских заведениях, информируют население о ДТП, о
чрезвычайных ситуациях в городе и многое другое.
10
Google.Maps – это один из современных картографических сервисов,
направленный на интерактивную карту в режиме «онлайн». Сервис отображает
любую точку мира в виде детализированных фотографий со спутника. Google.Maps
предоставляет поиск самых разнообразных объектов и позволяет получать о них
некоторую информацию. Помимо этого, в сервисе реализован поиск по адресу,
достаточно в соответствующее поле ввести город, улицу, дом. Google.Maps имеет
большое количество разнообразных функций. Одна из которых это возможность
проложить маршрут. Задав начальную и конечную точку для транспортного
средства, система прокладывает альтернативные варианты маршрута.
Также с помощью сервиса пользователей можно информировать о
ситуациях на дорогах. У Google.Maps существует функция создания и
редактирования персональной карты с метками, фотографиями, комментариями и
другими пометками.
К основным недостаткам сервиса относятся:
− ограниченная информация о населенных пунктах и селах;
− персональные карты пользователя закрыты для других лиц;
− функция отображения пробок реализована только для крупных городов;
− нет возможности отправить информацию об объекте через электронную
почту другому человеку;
− для
добавления
объекта на интерактивную карту необходимо
использовать специальный сервис, который работает не во всех странах;
− информация размещается вручную сотрудниками данного сервиса;
− крайне
редкое
обновление
информации,
последнее
обновление
информации было в 2013 году.
Яндекс. Карты – это поисково-информационный сервис, в котором
подробно представлена карта России и мира. Данный сервис содержит справочную
информацию об организациях, средства для построения маршрутов, информацию
пробках.
Достоинства:
− возможность прокладки маршрутов;
11
− актуальные данные о пробках на дорогах;
− возможность приоритетного размещения места;
− создания собственных мест на карте со справочной информацией;
− регулярное обновление информации.
Недостатки информационной системы заключаются в следующем:
− отсутствие возможности добавления друзей;
− нельзя поделиться информацией с друзьями;
− информацию можно добавлять только организациям;
− отсутствие возможности разместить отметку о событии с ограничением
по времени;
− нет экспорта данных в популярные социальные сети;
− нет возможности добавлять собственный логотип.
2ГИС – хороший сервис, позволяющий ориентироваться в незнакомых
городах, предоставляющую полную информацию о предприятиях в каждом городе.
Помимо этого, программа показывает маршруты движения общественного
транспорта, а также прокладывает автомобильный маршрут.
Достоинствами 2ГИС считается:
 постоянная актуализация данных;
 программа работает без доступа к Интернету;
 полные сведения о предприятиях.
Недостатки 2ГИС:
− добавление информации в картографический справочник возможен
только организациям;
− нет функции поделиться информацией с друзьями, в социальных сетях;
− ограниченная база данных городов России.
FourSquare – самый популярный геолокационный сервис. Приложение
позволяет пользователю осуществлять поиск заведений, находящихся вблизи к
местоположению пользователя.
12
Этот сервис помогает обмениваться местами с друзьями, узнавать их
местоположение в реальном времени. Кроме того, пользователи могут оставлять
свои впечатления по поводу какого-либо места, а также читать комментарии других
людей.
Основными достоинствами Foursquare являются:
− огромная база данных мест по всему миру;
− постоянное обновление информации;
− интеграция с другими социальными сетями;
− система создания пользовательских списков мест, с возможностью
распространения их своим друзьям.
Помимо достоинств у данного сервиса есть и недостатки, а именно:
− отсутствует возможность размещения отметки с ограничением по
времени;
− наличие в базе мест повторяющейся информации;
− нет возможности делиться информацией в российских социальных
сетях.
AlterGeo – геолокационный сервис, который предоставляет информацию о
ближайших заведениях на основе местоположения пользователя. Данное
приложение сообщает пользователю какие места посещали его друзья, а также
информирует его, когда друг находится рядом. С помощью AlterGeo можно легко
подобрать место для отдыха, получить полезные рекомендации об организациях. В
сервисе существует возможность делиться с друзьями впечатлениями и
фотографиями от посещения мест.
Следующий сервис – это Мегафон.Навигатор. Он позволяет узнавать
местоположение своих родственников и друзей и даже видеть их координаты на
карте. Возможность определять местоположения ограничивается лишь зонами
действия сети «Мегафон». С помощью этого сервиса можно отслеживать
местоположение ребенка, родственников, друзей или подчиненных. Это
пользуется большим спросом среди родителей, ведь они могут контролировать
13
ребенка, не отрываясь на звонки или сообщения. Интерфейс простой, понятный и
удобный в использовании.
Likengo – это интернет-проект, в котором пользователь может делиться
своими впечатлениями о различных местах и событиях, выбирать места в
зависимости от сиюминутных потребностей.
Плюсы сервиса:
− подробное описание заведения, места, организации, предприятия;
− возможность поиска по определенным критериям;
− возможность прикрепить фотографии к месту.
К минусам относятся следующие пункты:
− нет возможности распространить информацию в социальные сети;
− отправить данные по электронной почте или рассказать о них друзьям;
− нет возможности разместить информацию с ограничением по времени;
− редкое обновление информации.
В таблице 1 представлен сравнительный анализ описанных выше аналогов
и прототипов с разрабатываемой системой формирования и распространения
информации в геолокационных сервисах.
Несмотря на достаточно бурное развитие сервисов и средств геолокации в
последнее время, отсутствие возможности у пользователей существующих
сервисов формировать свой собственный контент, обмениваться собственными
метками с друзьями или же с другими пользователями сервиса, создавать события
с ограниченным промежутком времени на интерактивной карте, рекомендовать
метки сообществам, компаниям, распространять геоинформацию как внутри
геосервиса, так и за его пределами в других популярных социальных сетях таких,
как: Facebook, Twitter, Google+, Вконтакте не позволяет в полной мере
использовать подобные сервисы для создания пространственно-временной
информации с дальнейшим её распространением.
Из таблицы 1 видно, что ни один из вышеперечисленных сервисов не
реализует в полной мере возможность делиться отдельными метками с другими
пользователями сервиса, а также не имеет возможности публикации мест в четырех
14
популярных социальных сетях. В вышесказанных сервисах уязвимым местом
считается геоинформация. Огромное количество пространственно-временной
информации постоянно изменяется, в связи с этим требуется регулярная
актуализация и подтверждение достоверности.
Функции обмена метками и группами меток с другими пользователями
геолокационного сервиса и экспорт данных о метках в одну из социальных сетей
обеспечивают массовое внедрение геопространственной информации в общество,
гарантируют
достоверность,
актуальность
и
точность
предоставленной
информации, повышение качества доступа к геоинформации.
Таким образом, разработка системы для формирования и распространения
геопространственной информации с понятным интерфейсом, реализующей
функции, обеспечивающие повышение качества предоставляемых сведений,
учитывающие
значимость,
востребованность,
точность,
своевременность,
правильность данных для человека при формировании и распространении
геоинформации, а также обмен метками с другими участниками сервиса, является
конкурентоспособной на зарубежном и российском рынке программного
обеспечения, так как прямых аналогов, на данный момент, не было выявлено.
Таблица 1 – Сравнительная таблица аналогов и прототипов
Яндекс.Карты
Google.Maps
FourSquare
2ГИС
Добавление своих мест в
сервис
+
+
+
-
+
+
Редактирование информации
+
+
+
-
+
+
Возможность поделиться
информацией с друзьями
-
-
-
+
+
-
Отображение
пользовательских меток на
общей карте
-
+
-
-
+
-
Публикация информации в
социальных сетях
-
-
-
-
+/-
-
Создание событий с
временным промежутком
-
-
-
-
-
-
Отправка информации через
электронную почту
-
-
-
-
-
-
15
AlterGeo
Likengo
16
1.2 Обзор средств реализации
Использование инструментальных средств при реализации программного
продукта может существенно сократить сроки разработки, уменьшить трудовые
затраты, повысить качество создания нового продукта и уменьшить количество
ошибок. Система формирования и распространения информации – это веб-сайт. В
настоящий момент веб-сайт является высокоэффективным средством для
предоставления информации, находящимся во всемирной сети, отличным
инструментом для привлечения потенциальных пользователей. Но не все
население планеты имеет возможность выхода во всемирную паутину, хотя с
каждым днем количество активных пользователей становится больше. По
официальным данным We are social, количество пользователей интернета
составляет более 53% населения планеты и постоянно растет. Из вышесказанного
можно сделать вывод, что рост этой цифры – вопрос времени, а число людей,
способных ввести адрес сайта или сделать запрос в поисковой системы,
увеличивается ежедневно.
Таким образом, для реализации необходимо выбрать программные
средства, которые используются в веб-разработке.
На сегодняшний день существует более 300 языков программирования,
предназначенных для выполнения определенных задач. Каждый из них имеет свои
особенности, например, специальный синтаксис и набор операторов.
В последнее время веб-разработка состоит из двух составляющих:
1. Frond-end (веб-разработка на стороне клиента) – это создание публичной
части веб-интерфейса, с которым взаимодействует пользователь.
2. Back-end
(веб-разработка
на
стороне
сервера)
–
это
процесс
программирования сайта и наполнение его различными функциями.
Самыми популярными языками программирования, применяемых в вебразработке:
РНР,
Ruby,
Go,
Python
и
JavaScript.
Рассмотрим
данные
инструментальные средства более подробно, выявим достоинства и недостатки
каждого языка.
17
PHP  язык программирования, исполняемый на стороне веб-сервера,
является одним из лидеров среди языков, применяющихся для создания
динамических и интерактивных веб-сайтов. На данный момент поддерживается
работа языка подавляющим большинством веб-хостинга.
На
PHP
довольно
легко
создаются
качественные приложения и
динамические сайты. Кроме того, данный серверный язык программирования
отлично интегрируется с большинством операционных систем и платформ для
разработки веб-ресурсов, что делает его универсальным.
Основными преимуществами данного языка являются:
1. Практичность. Благодаря своей богатой функциональности PHP
отлично подходит для решения широкого спектра задач.
2. Легок в освоении. Из-за отсутствия строгой типизации язык считается
простым в изучении.
3. Поддержка большого числа баз данных.
4. Безопасность. В РНР реализованы гибкие и эффективные средства
безопасности.
5. Эффективность. Сценарии в РНР выполняются с большой скоростью,
что позволяет создавать проекты любого масштаба.
6. Огромное количество библиотек и расширений языка.
7. Отличная совместимость и переносимость. РНР-код работает хорошо на
разных платформах.
8. Многозадачность и широкие возможности.
К основным недостаткам языка можно отнести:
− ошибки в коде могут привести к неработоспособности всего webсервера;
− большинство модулей PHP не обеспечивают безопасность потоков;
− непредсказуемость новых версий РНР;
− глобальные параметры конфигурации влияют на базовый синтаксис
языка, что затрудняет настройку сервера и разворачивание приложений.
18
Несмотря на выявленные недостатки, PHP используется сотнями тысяч
разработчиков, занимает шестое место среди языков программирования. Самыми
крупными проектами, применяющие данный язык, являются Facebook, Wikipedia,
Google, NASA и другие.
Ruby  это динамический, рефлексивный, объектно-ориентированный язык,
который сочетает синтаксис, вдохновленный особенностями Perl с Smalltalk. Язык
характеризуется
независимой
от
исполняющей
среды
реализацией
многопоточности, строгой динамической типизацией, «сборщиком мусора» и
многими другими возможностями.
Во многом этот язык стал популярен, благодаря простоте разработке
различных дополнений к нему, позволяющих разработчикам в кратчайшие сроки
создавать готовый продукт. Обычно для реализации веб-приложений используют
Фреймворк Ruby on Rails, который минимизирует дублирование кода в
приложениях.
Преимущества языка программирования Ruby:
− простой и понятный синтаксис, позволяющий начинающему
разработчику очень быстро изучить язык;
− может быть встроен в язык разметки гипертекста;
− открытый исходный код;
− содержит автоматический сборщик мусора;
− простое подключение к базам данных DB2, MySQL, Oracle и Sybase;
− созданные на Ruby большие масштабируемые программы просты в
сопровождении;
− наличие встроенного отладчика и гибкого синтаксиса;
− перенесён на множество платформ;
− возможность написания многопоточных приложений с простым API.
Недостатки Ruby:
− возможны трудности в изучении;
− высокая стоимость сопровождения проектов;
19
− проблемы с хостингом, поскольку специализированных Rails хостингов
не так уж много;
− относительно мало документации на русском языке;
− сравнительно медленная разработка обновлений.
Go

компилируемый
многопоточный
язык
программирования,
разработанный внутри компании Google. Язык Go предназначен для создания
различного рода приложений, но прежде всего это веб-сервисы и клиент-серверные
приложения,
также
обладает
возможностями
по
работе
с
графикой,
низкоуровневыми возможностями и т.д.
Основными неоспоримыми достоинствами языка:
− открытый исходный код;
− кроссплатформенность;
− код обладает переносимостью: программы, написанные для одной из
операционных систем, могут быть легко перенесены на другую ОС;
− присутствует сборщик мусора, который автоматически очищает память;
− поддержка многопоточности и параллельного программирования.
К недостаткам можно отнести следующие пункты:
− компилируется в машинный код;
− очень строго типизирован;
− мало документации;
− не является объектно-ориентированным языком.
JavaScript – это современный язык программирования, полностью
интегрированный с html и css, позволяющий решать широкий спектр задач как в
front-end, так и back-end разработке. JavaScript позволяет придавать сайтам
интерактивность и добавлять спецэффекты, оживлять статические страницы в
браузерах пользователей.
Преимущества JavaScript.
− ни один современный браузер не обходится без поддержки JavaScript.
− полезные функциональные настройки;
20
− свободный доступ к исходным кодам;
− постоянно совершенствующийся язык;
− взаимодействие с приложением может осуществляться через текстовые
редакторы.
Недостатки JavaScript:
 низкий уровень безопасности;
 разные браузеры могут по-разному интерпретировать код программы,
написанной на этом языке.
Python  один из самых распространенных языков программирования,
популярность которого стремительно продолжает расти.Python предназначен для
создания приложений различных типов – это и веб-приложения, и игры, и
настольные программы, и многое другое. Основные особенности данного
серверного языка — это динамическая типизация, автоматическое управление
памятью, полная интроспекция, механизм обработки исключений, поддержка
многопоточных вычислений и удобные высокоуровневые структуры данных.
Для разработки веб-приложений Python обычно используется специальные
для этого фреймворки. Одним из популярных является Django.
Преимущества Python:
 простой
и
понятный
синтаксис,
позволяющий
начинающему
разработчику очень быстро изучить язык;
 поддерживается множеством платформ и операционных систем;
 читабельный и организованный синтаксис;
 обеспечение
быстрого
прототипирования
и
динамических
семантических свойств;
 объектно-ориентированный подход к программированию;
 открытая разработка;
 простое построение приложений путём тестирования и импорта
необходимых функций.
 обладает широким выбором библиотек и готовых модулей.
21
Недостатки данного языка:
 ограниченный уровень доступа к базам данных;
 небольшое количество разработчиков Python по сравнению с другими
языками;
 медленная скорость работы.
На основании проведенного анализа, с учетом выявленных достоинств и
недостатков, был выбран язык программирования Python, так как он более
подходит для написания приложения данного типа и обладает всем необходимым
инструментом для реализации. В нем предоставлены высокоуровневые структуры
данных
и
эффективный
подход
к
объектно-
ориентированному
программированию. Python считается лучшим языком для написания сценариев и
ускоренной разработки приложений в различных сферах и на большинстве
платформ.
Помимо языка программирования необходимо рассмотреть систему
управления базой данных (СУБД) для хранения данных в существующие
информационной системе.
Система управления базой данных — это программа, которая управляет
данными,
осуществляет
хранение,
извлечение,
поиск,
редактирование
информации, хранимой в базе данных.
Для
разрабатываемой
производительность
СУБД
информационной
является
системы
критическим
надежность
моментом,
и
поскольку
приложение предполагает наличие большого количества записей в БД, а также
большое количество пользователей, чьи действия так или иначе будут связаны с
манипулированием информации из БД.
Основные требования при выборе СУБД:
 должна поддерживать реляционную модель хранения данных;
 должна хорошо интегрироваться с Django;
 поддержка распределенного режима;
22
 журнализация изменений, резервное копирование и восстановление
базы данных;
 должна быть свободной;
 поддерживать клиент-серверную архитектуру;
 должна быть популярной и легко поддерживаемой;
 низкая стоимость.
Рассмотрим наиболее популярные СУБД, используемых в настоящее время
на рынке программного обеспечения.
MySQL - одна из самых популярных баз данных для веб-приложений. Она
обладает широким функционалом, способна хранить гигантские объемы
информации и сравнительно быстро записывает и извлекает данные из таблиц.
Чаще всего ее применяют в веб-проектах. Подавляющее большинство сайтов,
присутствующих в Интернете, используют именно MySQL для хранения данных.
С MySQL сравнительно легко работать, и взаимодействию с этой СУБД
можно научиться за короткое время. В виду ее популярности, в Сети присутствует
множество материалов на различных языках и книг, которые обучают работе с
MySQL. Кроме того, в виду ее широкого распространения, для этой СУБД
написано множество плагинов, расширяющих функционал.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества
типов
таблиц:
пользователи
могут
выбрать
таблицы,
поддерживающие
полнотекстовый поиск, так и таблицы, поддерживающие транзакции на уровне
отдельных записей. СУБД MySQL постоянно появляются новые типы таблиц. Она
также имеет простой в использовании интерфейс, и пакетные команды, которые
позволяют удобно обрабатывать огромные объемы данных. Система невероятно
надежна и не стремится подчинить себе все доступные аппаратные ресурсы.
Достоинства MySQL:
1. Простота в работе.
2. MySQL предоставляет много встроенных продвинутых функций для
защиты данных.
23
3. Масштабируемость и производительность.
4. Может работать с другими базами данных.
Недостатки СУБД:
1. Трудность использования в очень масштабных проектах.
2. Есть проблемы с мультипоточностью.
3. Медленное развитие.
4. Метод обработки данных, применяемый в MySQL, делает эту СУБД
немного менее надёжной по сравнению с другими СУБД.
MySQL идеально подходит для: организаций, которым требуется надежный
инструмент управления базами данных, но бесплатный.
SQLite – СУБД, которую многие разработчики используют в своих
приложениях. В отличие от многих других систем, в этой данные хранятся в
отдельных файлах, и обращение к ним происходит напрямую, а не посредством
сокетов и портов. Из-за этого на чтение она работает очень быстро.У SQLite
отсутствует система пользователей, поэтому ее невозможно использовать в
многопользовательских приложениях. Кроме того, она сравнительно медленно
работает на запись. В виду этого ее практически невозможно нормально
использовать в веб-проектах. Эта СУБД сейчас активно применяется для
реализации приложений на смартфонах.
СУБД PostgreSQL позиционируется в качестве профессионального
решения. В отличие от многих других аналогичных современных систем, эта
максимально полно поддерживает синтаксис SQL. Она имеет множество функций,
которые необходимы приложениям, предъявляющим очень высокие требования к
надежности и безопасности.
Эта СУБД сравнительно медленная, но надежная. Из-за этого ее
используют, например, банки, которым нужно максимально сократить риски
потери данных или их несанкционированного изменения.
Достоинства PostgreSQL:
1. Открытая, свободная СУБД.
24
2. PostgreSQL
поддерживает
множество
открытых
сторонних
инструментов для проектирования, управления данными и т.п.
3. Масштабируемость и расширяемость.
4. Объектно-ориентированность.
Недостатки:
1. Производительность PostgreSQL ниже, чем у MySQL.
2. Невысокая популярность.
3. Довольно сложно найти хостинг с поддержкой этой СУБД.
FireBird является одной из самых популярных в мире кросплатформенных
систем управления базами данных с открытым исходным кодом.
Данная СУБД полностью бесплатна, а открытй исходный код системы
позволяет любому желающему разрабатывать на его базе собственные
некоммерческие проекты.
В качестве преимуществ Firebird можно отметить:
1. Многоверсионную
архитектуру,
обеспечивающую
параллельную
обработку оперативных и аналитических запросов.
2. Компактность.
3. Высокую эффективность.
4. Мощную языковую поддержку для хранимых процедур и триггеров.
Среди недостатков:
1. Отсутствие кеша результатов запросов.
2. Полнотекстовых индексов.
Каждая СУБД имеет свои достоинства и недостатки, для разрабатываемой
подсистемы лучше всего подходит бесплатная версия MySQL.
1.3 Описание предметной области
На
сегодняшний
день
геоинформационные
системы
нашли
свое
применение во всех сфера человеческой деятельности. Внедрение ГИС в
повседневную жизнь человека позволяет:
1) принимать на основе сведений решения;
25
2) устранять проблемы города;
3) улучшать качество государственных услуг;
4) создавать реальную картину окружающего мира;
5) информировать жителей города о ЧС;
6) оценивать ситуации в сфере здравоохранения и др.;
7) мониторить ситуации; исследовать различные риски;
8) планировать свой отпуск, путешествия, досуг;
9) регулировать движения ТС.
Однако, это не полный список задач, где используются геоинформационные
системы. Эффективность работы системы заключается в предоставлении
достоверной, актуальной геоинформации. Именно от пространственно-временных
сведений зависят последствия, принятых решений.
Обращаясь к пространственной геоинформации при решении определенных
задач, необходимо использовать соответствующую информационную систему. Это
влечет за собой колоссальные неудобства для населения, а информация,
находящаяся на данных Интернет-ресурсах, не в полном объеме доходит до
конечного пользователя.
Сервисы с возможностью геолокации информируют людей о местах с
подробной информацией о них, находящихся поблизости, которые могут быть им
интересны. В основном на таких сервисах размещаются заведения от коммерческих
организаций для привлечения потенциальных клиентов, для популяризации того
или иного места.
Ввиду отсутствия возможности добавления пользовательского контента,
распространения и обмена геоинформации между пользователями сервиса, а также
в социальных сетях и на других площадках Интернета у существующих систем,
необходимо воспользоваться разрабатываемой подсистемой формирования и
распространения информации. В данной системе пользователи могут создавать
собственные места, размещать их на интерактивную карту, делиться ими со своими
друзьями, рекомендовать их другим участникам сервиса, рассказывать о них в
известных, на сегодняшний день, социальных сетях. Помимо этого, пользователи
26
могут выбирать места для своего путешествия как из базы данным мест сервиса,
так и из опубликованных мест пользователей, основываясь на оставленные
комментарии людей, создавать и узнавать оптимальные маршруты перемещения
по городу. Кроме того, в разрабатываемом сервисе, возможно, формировать
информацию о культурных, исторических местах, имеющие большой интерес у
народа, так и возникающие происшествия, проблемы, ситуации в городе.
Система формирования и распространения информации решает задачу
повышения качество предоставляемой и используемой информации, качество
доступа
к
геоинформации
в
том
числе
и
скорость
распространения
пространственно-временной информации. Разрабатываемая информационная
система формирования и распространения информации в геолокационных
сервисах позволит увеличить количество пользователей, зарегистрированных в
геосервисах.
А
вовлеченность большого
числа
людей
в формирование
геоинформации способствует сбору более подробной, актуальной, достоверной,
точной геопространственной информации о месте, проблеме, событии.
Наиболее
очевидным
способом
предоставления
информации
в
геолокационным сервисе будет интерактивная карта с метками. Метка
представляет собой место, обозначенное на карте, характеризующееся названием,
владельцем,
географическими
координатами,
временным
промежутком
и
категорией проблемы. Каждая метка имеет собственную страницу, где отображена
подробная информация о месте с комментариями, отзывами и фотографиями.
Абсолютно любой пользователь может выбирать интересующие его объекты на
карте, узнавать обо всех событиях, происшествиях, проблемах, связанных с
городом, а может формировать собственные актуальные места, или изменять
существующие, если у метки собраны устаревшие данные: географические
координаты, режим работы, телефон, описание места и т.д. с дальнейшим
распространением.
Отличительная особенность данного сервиса заключается в том, что
зарегистрированный пользователь в системе может вручную выставлять метки на
интерактивной карте, вносить изменения в уже имеющиеся метки на сервисе, и
27
делиться ими с друзьями как внутри сервиса, так и за его пределами. С помощью
данной системы у пользователя есть возможность информировать о различных
проблемах города, событиях, мероприятиях друзей в социальных сетях, а на
сервисе отправлять им уведомления, сообщающие о появлении нового контента.
Для того чтобы получить адекватный проект необходимо создать
формализованное описание предметной области. Предварительное моделирование
предметной
области
позволяет
сократить
время
и
сроки
проведения
проектировочных работ и получить более эффективный проект, уменьшить
количество количества ошибок в решении стратегических вопросов, приводящих к
экономическим потерям и высоким затратам на последующее перепроектирование
системы. Вследствие этого все современные технологии проектирования
информационных
систем
основываются
на
использовании
методологии
моделирования предметной области.
Разрабатываемая
подсистема
описана
диаграммой
вариантов
использования, которая определяет функциональное назначение системы или то,
что система должна делать. Основные функции показаны на рисунке 1.
Рисунок 1 – Диаграмма вариантов использования
28
29
Из приведенной выше диаграммы видим, что действующим лицом является
пользователь. Под пользователем может быть, как обычный рядовой пользователь
геолокационного сервиса, так и государственная или коммерческая организация, а
точней её владелец или ответственное лицо.
У каждого пользователя есть профиль. В профиле указана персональная
информация о зарегистрированном человеке, его местонахождение (страна, город),
контактная информация. Основная особенность подсистемы заключается в том,
что актуализация информации осуществляется силами пользователей. Таким
образом,
главной
функцией
подсистемы
будет
являться
формирование
информации. Другими словами, создание меток на карте. Пользователь, если
захочет внести новую информацию в сервис должен нажать на соответствующую
кнопку, указать точный адрес, ввести название и описание метки. И только после
этих действий созданная метка отобразится на интерактивной карте. Созданными
метками можно поделиться с другими пользователями геолокационного сервиса,
которые при желании могут добавить их в свои для дальнейшего использования,
либо опубликовать в социальных сетях. Также созданные метки можно объединять
в группы.
Группы
определенному
-
это
сообщество,
признаку,
что
где
находятся
позволяет
метки,
отображать
на
связанные
карте
по
места,
скоординированные по логическому признаку. Кроме того, группами можно
делиться со своими друзьями, повышая интерес к информации, представленной в
сообществе, увеличивая количество участников и контент группы, так как любой
желающий может порекомендовать метку в группу, и если она подойдет по
тематике, то её администратор группы опубликует для распространения среди
людей, вступивших в данную группу меток.
Итак, рассмотрим более подробно диаграмму вариантов использования.
На диаграмме представлено два актера: пользователь и администратор
группы. Администратор группы – это тоже пользователь, наделенный внутри
группы привилегиями, поэтому было решено выделить его отдельным актером.
Администратор групп принимает участие в функциях «принятии информации»,
30
«отклонении информации», «добавлении новой информации». Пользователь
активно участвует в функциях формирования редактирования, удалении
информации. Также у пользователя есть такие функции как: «рассказать об
информации друзьям», «поделиться информацией в группе», «отправить
информацию в социальных сетях». Эти функции дают возможность массово
распространить информацию в разных источниках.
Формирование информации подразумевает собой несколько вариантов
использования: определение адреса, ввод названия и задание описания, загрузка
фотографий, формирование галереи и проверка прав доступа.
Редактирование
информации
подразумевает
следующие
варианты
использования: изменение адреса метки, удаление фотографий, добавление
фотографий, изменение названия метки и внесение изменений в описание. Все они
соединяются связью «включение».
Создание групп включают в себя следующие действия: добавление
информации в группу, ввод название, описание группы и выбор категории группы.
Просмотр информации включает в себя следующие действия: просмотр
текста метки, просмотр места на карте, просмотр фотографий, связанных с этим
местом.
Рассказать об информации другу подразумевает выбор метки и выбор друга,
с которым пользователь решил поделиться меткой. Функция «опубликовать
информацию в социальных сетях включает публикацию в популярных сетях:
Facebook, Вконтакте и Twitter
Таким образом, можно сделать вывод, что представленная диаграмма
вариантов
использования
дает
полное
описание
выполняемых
функций
подсистемы формирования и распространения геопространственной информации.
1.4 Постановка задач исследования
К
сожалению,
на
сегодняшний
момент
сбор
информации
для
геолокационных сервисов и распространение её не автоматизирован и занимает
очень длительное время. Этот трудоемкий процесс влечет за собой существенные
31
проблемы. Предоставленная информация в геосервисах лишается важнейших
свойств таких, как оперативность и актуальность. На основе недостоверных,
несвоевременных сведениях, отражающих процессы и события окружающего
мира, человек формирует обманчивое представление действительности.
Современное общество не всегда располагает свободным временем, чтобы
искать
различные
места
для
досуга,
или
объекты
со
всевозможными
направленностями. Пользователю легче обратиться, например, в турагентство и
отправится на отдых за границу. Таким образом, интересные туристические места
теряют свою привлекательность на территории России.
Подсистема
формирования
и
распространения
информации
в
геолокационных сервисах позволит повысить популярность туристических мест, а
также информировать пользователя о случившемся событии, мероприятии или о
возникновении тех или иных ситуациях в городе, стране и мире. Так как большая
часть геоинформации недоступна, невидима основной массе пользователей и не
может быть использована для решения повседневных задач, необходимо
обеспечить возможность распространения и обмена геоинформации среди друзей,
знакомых и через известные социальные сети. Помимо обычных пользователей в
подсистеме будут участвовать различные коммерческие и государственные
организации. Для индивидуальных предприятий сервис поможет заявить о себе,
увеличить количество посетителей в заведениях, а для государственных
организациях
подсистема
даст
возможность
автоматизировать
процесс
взаимодействия с населением.
Необходимость исследования и реализации методики формирования и
распространения информации в геолокационных сервисах обусловлена рядом
факторов.
Новая методика формирования и распространения информации повысит
качество
предоставленной
геопространственной
информации
и
скорость
распространения её до конечного пользователя.
Во-первых, необходимо провести обзор существующих систем, показать их
положительные и отрицательные стороны.
32
Во-вторых, следует выбрать средства разработки, которые хорошо будут
подходить
для
реализации
системы
формирования
и
распространения
геоинформации, которые просты и популярны, не требующие много времени на их
изучения
В-третьих,
необходимо
описать
предметную
область
и
выявить
необходимые функции подсистемы, которые можно представить use-case
диаграммой.
В-четвертых, необходимо рассмотреть и сделать анализ существующих
методик.
В-пятых, на основе обнаруженных недостатков существующих, создать
собственную методику формирования и распространения информации.
В-шестых, спроектировать прототип системы, использующий созданную
методику.
В-седьмых, необходимо реализовать прототип и провести тестирование.
Также были выявлены функциональные требования к подсистеме:
 подсистема должна иметь возможность отправки информации в
социальные сети;
 подсистема должна иметь функцию распространения информации
другим пользователям сервиса;
 реализована функция просмотра информации;
 возможность
изменения
уже
существующей
информации
для
поддержания актуальности;
 функция удаления информации с устаревшими данными;
 возможность внесения новой информации.
К нефункциональным требованиям к подсистеме формирования и
распространения геоинформации можно отнести:
 легкость и простота использования;
 целостность;
 безопасность;
33
 эффективность и устойчивость к сбоям;
 надежность;
 простота дизайна и не перегруженность.
34
2 СУЩЕСТВУЮЩИЕ МЕТОДЫ ФОРМИРОВАНИЯ И
РАСПРОСТРАНЕНИЯ ИНФОРМАЦИИ
2.1 Обзор существующих методов и подходов к формированию и
распространению информации в геолокационных сервисах
Чтобы разработать свою методику формирования и распространения
информации в геолокационных сервисах необходимо сделать аналитический обзор
существующих методов и подходов к формированию и распространению
информации в геолокационных сервисах.
В настоящий момент распространение информации осуществляется
разными способами. Если раньше получить новую информацию можно было из
главных средств массовой информации, таких как радио, телевидение, печатные
издания, то сегодня самым эффективным средством в получении «свежей»
информации считается интернет. Потому что с каждым днем увеличивается
количество людей, не читающих печатных газет и не смотрящих телевидение,
получающих всю информацию из всемирной сети. Поскольку в интернете хранится
довольно большое количество информации, то есть вероятность того, что
необходимая информация может затеряться в огромном информационном
пространстве и не дойти до адресата. Чтобы этого не произошло, чтобы
пользователь мог получить полную информацию о событии без всяких усилий,
всемирная паутина использует специальные инструменты распространения
информации внутри сети.
Пожалуй, одним их таких способов является электронная почта.
Электронная почта – это самый старый метод внутрисетевого обмена
информацией, но до сих пор являющийся самым дешевым и эффективным
инструментом распространения информации. Массовая рассылка писем позволяет
за считанные секунды донести до адресата интересную информацию. С помощью
электронной почты можно передавать информацию в разном виде: таблицы,
рисунки, документация, аудио- и видеоматериалы.
Е-mail рассылка охватывает огромную аудиторию.
35
Таким образом, электронная почта позволяет за короткий промежуток
времени оповестить о событии, мероприятии, происшествии большой поток
пользователей интернета.
Другим способом распространения и обмена информации в интернете
являются форумы.
Форумы – это место, где люди общаются по определенным интересам. Здесь
пользователь может делиться своим опытом в определенных сферах, искать
помощь среди читателей. Вся информация в этих сообществах находится в
открытом доступе, исходя из этого, любой посетитель может просмотреть её и
оставить комментарий по данному вопросу.
На сегодняшний день самым популярным и перспективным способом
распространения и обмена информации являются социальные сети. По данным
сайта ComScore, Россия занимает лидирующую позицию по количеству времени,
проведенному в социальных медиа и более чем у 88% пользователей интернета есть
аккаунты в социальных сетях.
У социальных сетей практически у всех принцип работы подразумевает
обязательную
процедуру
регистрации,
где
пользователь
вводит
в
соответствующую форму персональные данные, после успешной регистрации у
пользователя появляется личная виртуальная страница, с использованием которой
он и осуществляет взаимодействие с другими пользователями, обмен и
распространение контента. Публикация текста происходит автоматически и
мгновенно на странице пользователя, а информация, опубликованная в социальных
сетях, становится доступной для всех зарегистрированных пользователей в данной
сети. Помимо этого, социальные сети позволяют без особых усилий объединять
информационные потоки на одной станице, что улучшает сбор и поиск
интересующей информации и ускоряет её обмен и распространение внутри
сервиса. Ещё одной возможностью для распространения информации среди
определенного количества пользователей является создание групп в социальных
сетях. В основном группы специализируются на распространении информации по
определенной тематике.
36
Таким образом, можно сделать вывод, что информация в интернете
распространяется очень быстро и широко. Так как любой человек, имеющий
доступ в сеть, может получить разного рода информацию, и если она окажется для
пользователя интересной, то он может поделиться с ней неограниченному
количеству заинтересованных лиц.
Также необходимо рассмотреть существующие подходы и методы
формирования геоинформации.
Сбор информации, имеющей пространственную привязку, осуществляется
при
помощи
различных
геоинформационных
систем.
Внедрение
геоинформационных технологий во все сферы человеческой деятельности
позволяют
получать
новую
информацию
об
окружающем
мире.
Геоинформационные систем обеспечивают сбор, обработку, отображение и
распространение пространственно-временных данных, интеграцию данных для их
эффективного использования при решении научных и прикладных задач .
Рассмотрим основные сервисы, созданные на основе ГИС-технологий, и какие
подходы они используют для формирования информации.
Google.Maps имеют самые детализированные фотографии со спутника всей
планеты, включая города России, Украины и т.д. Данный сервис позволяет
находить нужную организацию, помимо адреса объекта на карте, пользователь
может узнать время работы, телефон компании, зайти на личный сайт организации
или составить маршрут, например, от своего дома до выбранного места на машине,
велосипеде, пешком или общественным транспортом.
При поиске информации необязательно указывать название организации,
пользователь может ввести услугу, товар или город, для того чтобы увидеть весь
список организации, оказывающие определенные услуги.
Для пользователей использование карт Google сократит время поиска
интересующих
мест,
а
для
организации
–
это
возможность повысить
узнаваемостью места. Перед тем как добавить организацию на карту, следует
проверить, нет ли ее уже в базе данных. И убедившись в том, что организация не
добавлена на сервис, нужно ввести подробную информацию об организации:
37
название, адрес, телефон, категорию по виду деятельности. После этого
необходимо отправить эти сведения на проверку, и только когда проверка будет
успешно завершена, появляется возможность изменять информацию, добавлять
фотографии, следить за актуальностью размещенной информации.
Яндекс Карты – самый популярный сервис в России, позволяющий
находить интересующие места в городе, прокладывать маршруты, отображать
информацию о ситуациях на дорогах. Картографический сервис выполняет поиск
различных организаций, офисов, банков, автозаправочных станций, магазинов,
гостиниц, больниц, домов и других заведений по адресам. Пользователи помимо
адреса получать подробную информацию об объектах: фотографии, режим работы,
рабочий телефон, список услуг, личный сайт, отзывы и другое. Добавление
информации на Яндекс карту происходит при помощи сервиса Яндекс.
Справочник. В нем заполняется форма, где указывается название, адрес, телефон,
режим работы, вид деятельности, ссылка на сайт. Далее отправляется запрос, где
система проверяет базу на наличие схожих компаниях, зарегистрированных на
сервисе. Если система не находит компанию в базе данных, то заявка попадает на
модерацию для одобрения. И через какое-то время данные об организации
попадают на картографический сервис Яндекс.Карты.
Таким образом, Карты Google и Яндекс Карты собирают геоинформацию
схожими методами, у них нет возможности вносить информацию обычным
пользователем. Поэтому эти сервисы содержат сведения, которые быстро
устаревают - закрываются заведения, меняются часы работы, появляются новые
услуги у организаций. Чтобы показывать актуальную информацию необходимо
постоянно отслеживать изменения.
Ещё один картографический сервис, имеющий большую популярность,
является 2ГИС.
2ГИС содержит справочную информацию об организациях: название, адрес,
телефоны, адрес электронной почты, адрес личного сайта, режим работы и другое.
Поиск в данном сервисе осуществляется по определенным критериям. Этот сервис
обладает высоким уровнем детализации карт. Картографический сервис 2ГИС
38
осуществляет процесс наполнения информацией сайта посредством ручного
создания баз данных организаций. Сотрудники сервиса обзванивают все
организации, находящиеся в базе данных, и выясняют какие изменения с
компанией произошли.
Таким образом, они проверяют и актуализируют информацию на сайте.
Обновление данных происходит каждый месяц.
2.2 Выявление преимуществ и недостатков существующих подходов к
формированию и распространению геоинформации
Все перечисленные выше сервисы имеют свои преимущества и недостатки.
Рассмотрев существующие подходы к формированию информации, процесс
наполнения данных в современных геоинформационных сервисах происходит
двумя самыми распространенными методами.
Первый способ – это ручной сбор информации из всевозможных
источников. Процесс ручного наполнения геоинформации осуществляется коллцентрами и пешими асессорами.
Достоинством
ручного
формирования
пространственно-временной
информации является достоверная и актуальная информация о компаниях городов.
Однако у этого метода есть и существенные недостатки.
Во-первых, данный способ является не эффективным.
Во-вторых, сбор информации вручную считается весьма трудоемким
процессом.
В-третьих, большие затраты на осуществление этого метода.
В-четвертых, в процессе сбора информации колл-центром возможны
появления опечаток, ошибок в собранных сведениях.
Помимо сбора информации вручную, геоинформацию можно получать с
помощью агрегаторов данных.
Агрегаторы данных работают следующим образом: они обходят все
Интернет-сайты по определенной тематике. Выбирая при этом нужную
информацию, подходящая по заданным параметрам.
39
Этот подход позволяет автоматизировать сбор пространственно-временной
информации. Агрегирование данные дает возможность быстро обрабатывать
большие объемы информации. Использование данного метода не требует
огромных затрат, по сравнению со сбором информации вручную.
Основным недостатком этого способа заключается в том, что собранные
данные не отвечают важным свойствам информации, а именно: достоверности и
актуальности.
Из выше сказанного, можно сделать вывод, что существующие методы
накопления геопространственной информации, использующиеся в популярных
геосервисах, имеют ряд недостатков. Поэтому при создании собственного метода
формирования геоинформации следует избежать отрицательные стороны каждого
способа и включить выявленные преимущества из описанных ранее способов
формирования информации в геолокационных сервисах. Такой способ можно
реализовать, объединяющих два главных метода по сбору информации, если
пространствено-временная
информация
будет
генерироваться
самими
пользователями сервиса. Реализуемый подход дает значительные преимущества:
1) в процессе наполнения участвует огромное количество пользователей,
что
обеспечивает беспрерывную актуальность информации, способствует
быстрому внесению необходимых изменений;
2) контроль достоверности, правильности информации зависит от самих
пользователей;
3) открытость и доступность;
4) не требует больших затрат;
5) возможно обработать огромный поток информации.
Пожалуй, главным свойством информации считается достоверность,
отображающая полноту, точность и качество представленной информации. В
отличие от обычной информации пространственно-временная информация
обладает привязкой к географическим координатам, т.е. адресом. Существуют
различные решения по определению местоположения объекта. Рассмотрим их
более подробно.
40
1. Привязка объектов к так называемым «местам». Для объекта создается
точка на карте с названием и определенной долготой и шириной. В дальнейшем
другие геообъекты могут быть привязаны к этой точке, которую можно отыскать
при помощи имени, а также могут быть предложены другие места, выбранные по
определенному радиусу отдаления от начальной точки.
В таком случае поиск осуществляется по названию объекта, а не по его
местоположению. Такой подход используется в социальной сети Facebook.
2. Формирование
геолокационных
собственной базы городов и жёсткая привязка
объектов
к
городу,
определяемого
по
уникальному
идентификатору. Для каждого города указывается его центр и приблизительный
радиус, одинаковый для всех городов. В таком алгоритме нет проблем с
фильтрацией объектов по городам и их поиск. Однако существуют другие
проблемы, которые увеличивают время работы системы, а именно: ручное
формирование базы городов и сильно «размытый» радиус города.
3. Комбинированный способ определения адреса. Данный вид решения
совмещает в себе вышеперечисленные алгоритмы. Модель страны формируется на
основании следующих параметров:
a) уникальный идентификатор страны (данный параметр является
ключом для обеспечения быстрого поиска и фильтрации объектов в базе);
b) название страны.
Модель города формируется на основании следующих параметров:
a) уникальный идентификатор города (данный параметр является
ключом для обеспечения быстрого поиска и фильтрации объектов в базе);
b) внешний идентификатор (идентификатор геолокационного объекта);
c) название города;
d) долгота;
e) широта.
Такой набор параметров является достаточным для определения города
географического объекта. Алгоритм представлен на рисунке 2.
41
База данных городов и стран формируется на основании описанной модели.
Если в базе данных отсутствует город, то для определения города и формировании
данных
о
городе
служит
сервис
обратного
геокодирования.
Обратное
геокодирование – это процесс преобразования географических координат в адреса,
понятные для пользователя.
Сервис Google позволяет точно определить координаты объекта, его
название, город, страну и другие дополнительные свойства, характерные для
определённых стран на основании неполных данных об этом объекте. Для
определения города по координатам достаточно использовать сервис обратного
геокодирования для определения города по координатам. Сервис берет широту и
долготу и осуществляет поиск по ним. Если же объект был не найдет, то возникнет
ошибка. В случае если координаты находятся в пределах какой-либо страны, то
будет возвращён ближайший к этим координатам объект.
Сервисы прямого и обратного геокодирования Google для одного вебсервиса предоставляют возможность бесплатно выполнять до 2 500 запросов сутки.
Поэтому
в
условиях
высокой
нагруженности
геолокационных
невозможно в полной мере использовать данный подход.
сервисов
42
Рисунок 2 - Алгоритм определения страны/города для объектов
геолокации
Таким образом, следует реализовать собственное решение для определения
адреса географического объекта. Разрабатываемое решение будет создано на
43
основе комбинированного способа определения адреса. Основной недостаток
комбинированного способа заключается в том, что, используя всего лишь один
сервис прямого и обратного геокодирования, есть большая вероятность того, что
для некоторых географических объектов определение адреса будет неудачным.
Таким образом, в реализуемом алгоритме будут участвовать три главных
сервиса прямого и обратного геокодирования: Яндекс, Nominatim – сервис
OpenStreetMap и Google.
Сервис прямого и обратного геокодирования Яндекс предоставляет для
одного веб-приложения возможность бесплатно выполнять не более 25 000
запросов в сутки. Для сервиса OpenStreetMap ограничения по запросам составляет
один запрос в секунду. Для сервиса Google ограничения по запросам составляет до
2 500 запросов в сутки.
Самое хорошее качество определения адреса географического объекта
показал сервис Яндекс, так как он владеет довольно большой базой адресов России,
поэтому данный сервис будет использоваться по умолчанию. Приемлемым
результатом обратного геокодирования считается получение по географическим
координатам названия страны на высшем уровне абстракции. Если Яндекс не
отработал корректно запрос на определение адреса или не справился с задачей,
выполняется попытка получения адреса через сервис Nominatim OpenStreetMap, в
случае если и здесь не был выявлен адрес географического объекта, то происходит
обращение к сервису обратного и прямого геокодирования Google.
В случае повторной неудачи, дальнейшие действия зависят от настроек
конфигурации системы, можно попробовать запустить алгоритм позже, либо
завершить работу алгоритма, предоставив возможность пользователю указать
адрес геообъекта вручную.
На рисунке 3 представлен алгоритм определения адреса объекта.
Таким
образом,
использование
нескольких
сервисов
обратного
геокодирования позволяет получить более достоверный адрес геолокационного
объекта.
44
Рисунок 3 – Алгоритм обратного геокодирования
45
2.3 Методика формирования и распространения информации в
геолокационном сервисе
Из выше описанного можно сделать вывод, что существующие методики в
процессе формирования и распространения информации имеют значительные
недостатки. По данным социологических опросов, 60 % населения развитых стран
нуждается в геоинформации хотя бы один раз в день. Этой информацией может
быть и адрес организации, и места поблизости, и ситуация на дорогах, и даже выбор
гостиницы для путешествия. Из этого следует, что населению требуется
достоверная, актуальная и открытая информация, а также оперативное доведение
сведений до конечного пользователя.
Поэтому необходимо реализовать собственную методику формирования и
распространения информации, позволяющую вовлечь в процесс наполнения
информацией огромное количество людей и увеличить скорость обмена
информацией между людьми.
Наиболее эффективным, с этой точки зрения, подходом, является
использование в виде поставщиков пространственно-временной информации
самих пользователей геолокационных сервисов. В таком случае, процесс
изменения информации, актуализация её будет осуществляться силами обычных
пользователей без участия сотрудников геоинформационных систем, что позволяет
снизить затраты на содержание штата сотрудников, отвечающих за выполнение
этой работы, повысить достоверность, ценность и полезность предоставленной
информации.
Распространение геопространственной информации будет осуществлено
уже существующими методами такими как: публикация информации в социальных
сетях и отправка информации своим друзьям в геолокационном сервисе. Также для
обмена геоинформацией следует реализовать функцию предложения информации
в соответствующие группы. Это позволит поделиться геопространственной
информацией с ограниченным кругом друзей. Такой подход активно используется
в социальных сетях и в форумах.
46
Необходимо выбрать список социальных сетей, в которых пользователь
может рассказать о той или иной информации. Критерии отбора социальных сетей
заключаются в следующем:
1. Социальная сеть должна быть популярной в нашей стране. Для России
наиболее известными социальными сетями стали Facebook, ВКонтакте и
Одноклассники, Twitter, YouTube.
2. Социальная сеть не должна иметь разграничение в использовании по
полу и возрасту.
3. Социальная сеть должна иметь большую численность аудитории.
На основе вышенаписанного можно сделать вывод, что процесс
распространения информации будет происходить через следующие социальные
сети: Facebook, ВКонтакте и Twitter.
Возможность размещения информации в социальных сетях позволяет более
50 млн. зарегистрированным пользователям данной социальной сети увидеть
материалы с геолокационного сервиса, получить новые геопространственные
сведения. Опубликовывая информацию в социальные сети, осуществляется
возможность быстро делиться ссылками со своими друзьями на пространственновременную информацию, которая была использована пользователем или которая
ему была необходима для выполнения определенных задач.
Ссылка на геопространственную информацию в социальных сетях всегда
останется доступной всем посетителям страницы опубликовавшего.
Таким образом, распространение информации в социальных сетях
позволяет
привлечь внимание к информации дополнительных посетителей не
только в короткий промежуток, но и после появления информации.
При
формировании
информации
пользователь
указывает
адрес
геопространственной информации. Если информация относится к группе по
интересам, то следует выбрать нужную категорию из заранее сформированного
списка, набор категорий информации может расширяться и пополняться. Помимо
категорий
можно
воспользоваться
хеш-тегами,
позволяющие группировать
имеющийся контент по определенным темам и значительно упрощает поиск
47
нужного материала для пользователей сервиса. После выбора категории и ввода
хеш-тегов заполняется текстовое описание и добавляется фото и видеоматериалы
географического объекта/места.
Формирование информации осуществляется обычными пользователями в
обязанности которых будет входить контроль правильности информации, проверка
актуальности информации, в случае если информация не удовлетворяет
требованиям актуализации, то происходит процесс корректировки информации
или её удаления из БД сервиса. Пользователь сервиса также может являться
администратором групп меток по интересам и имеет право добавлять новую
информацию, либо отклонять заявку на добавления информации в группу в случае
ее несоответствия.
Методика предполагает создание информационной системы формирования
и распространения геоинформации, включающей в себя веб-сервис. С помощью
веб-сервиса пользователи могут находить и искать нужную им ГИС-информацию.
Разработанная методика формирования и распространения геоинформации
представляет собой последовательность нацеленных действий.
Данная методика может быть описана в виде схемы, которая представлена
на рисунке 4.
Методика подразумевает сбор геоинформации, поэтому обязательно
использование
ГИС,
которая
обеспечивает
процесс
сбора,
обработки
географических данных для их эффективного использования при решении
различных задач. Поэтому для корректной работы геоинформационной системы
необходимо подключить интерактивную карту с отображением всех меток,
которые были добавлены на сайт, геокодер, позволяющий преобразовывать формат
адреса, а также выполнять поиск географических объектов по названию или
географическим координатам и классификатор адресов России.
После того как подключения основных элементов необходимо проверить
права доступа пользователей.
С помощью определения прав доступа вы можете определить функции,
которыми может воспользоваться человек. Поэтому права доступа позволят дать
48
доступ только на ознакомление с информацией или предоставить возможность ее
редактирования.
В зависимости от прав доступа пользователь может сформировать
информацию, или проверить пространственно-временную информацию на
актуальность, или распространить информацию внутри сервиса, так и за его
пределами.
Чтобы сформировать геоинформацию необходимо включить следующие
подпроцессы: запрос геокодеру на получение адреса по географическим
координатам географического объекта, получение адреса от геокодера и
приведение полученного адреса к человеческому виду, после этого необходимо
внести текстовое описание, которое несет смысловую нагрузку об объекте.
Информация
помимо
текстового
описания
включает
в
себя
фото
и
видеоматериалы. Для того чтобы отобразить сформированную информацию на
веб-сервисе следует сохранить информацию.
Для проверки актуализации информации необходимо использовать
следующие подпроцессы: проверка актуализации геоинформации и контроль
качества информации. Если информация считается неактуальной, то следует
внести соответствующие изменения в адресе, в текстовом описании или в фото,
видеоматериалах. Процесс контроля качества информации позволяет следить за
свойствами информации и своевременно обновлять их.
Разработанная на основе новой методики информационная система имеет
следующие критерии:
1) простота формирования информации;
2) быстрота получения информации;
3) автоматизированный сбор геоинформации;
4) контроль достоверности, правильности информации зависит от самих
пользователей;
5) открытость и доступность предоставленной информации;
6) сокращение ошибок в процессе формирования информации;
7) возможность обработать огромный поток информации;
49
8) возможность
распространения
информации
аварийного
и
чрезвычайного характера.
Рисунок 4 – Методика формирования и распространения геоинформации
50
3 ПРОЕКТИРОВАНИЕ ПРОТОТИПА ИНФОРМАЦИОННОЙ
СИСТЕМЫ ФОРМИРОВАНИЯ И РАСПРОСТРАНЕНИЯ
ИНФОРМАЦИИ В ГЕОЛОКАЦИОННЫХ СЕРВИСАХ
3.1 Логическая схема построения сети прототипа системы
формирования и распространения информации в геолокационных
сервисах
При проектировании сервиса огромную роль играет его архитектура.
Архитектура – это формальное описание системы или детальные план системы на
уровне компонент, на основании которого осуществляется реализация системы.
Архитектура позволяет:
1) разработка и моделирование на разных уровнях абстракции;
2) отделение инструкции от реализации;
3) построение гибких систем;
4) проверка на соответствие бизнес-требованиям;
5) анализ объема изменений при появлении новых требований;
6) проверка на соответствие правилам.
Разрабатываемая
подсистема
пользователю
дает
возможность
взаимодействовать с системой и с помощью неё осуществлять взаимодействия с
другими подсистемами геолокационного сервиса. Чтобы посетители могли
оставлять отзывы, рекомендации, положительные оценки того или иного места,
находить знакомых, друзей, осуществлять поиск мест, обмениваться с друзьями
различной информацией, указывать места различного характера, распространять
геоинформацию не только внутри сервиса, но и на других площадках сети
Интернет и многое другое. Для того чтобы разрабатываемый продукт стал
востребованным необходимо реализовать все функции на мобильном клиенте и в
веб-интерфейсе.
Это
позволит
охватить
большое
количество
пользователей, оперативно актуализируя информацию.
В данном сервисе реализуется «клиент-серверная» архитектура.
активных
51
Важнейшей особенностью вычислительной модели клиент-сервер является
распределение
прикладных
задач
между
клиентами
и
серверами.
Для
взаимодействия клиента с сервером обычно используется Интернет и находятся на
разных вычислительных машинах. Взаимодействие происходит при помощи
сетевых протоколов. Работа клиент сервера основывается в следующем: клиент с
помощью браузера формирует запрос согласно протоколу TCP/IP и отправляет
серверу. А сервер, исходя из параметров запроса, выбирает необходимую
информацию из базы данных, формирует ответ в качестве HTML-странице и
передает его клиенту.
Поскольку приложение предполагает большое число операций по чтению,
добавлению и изменению значительного объема данных, наиболее удобным
вариантом будет включение в серверную часть технологий баз данных.
В задачи веб-сервер входят следующие функции:
 получение и ответ на запросы;
 перенаправление запросов на необходимое приложение, как правило,
приписанное к определенному домену или поддомену;
 предоставление приложениям доступа к необходимым модулям
(например, к модулю связи с СУБД);
 авторизация и аутентификация пользователей;
 реализация функций файл-сервера.
В задачи сервера баз данных входит:
 обслуживание запросов на манипуляции с данными на основе языка
SQL;
 обслуживание базы данных;
 обеспечение целостности данных.
Архитектурная
схема
представлена на рисунке 5.
построения
сети
геолокационного
сервиса
52
Рисунок 5 – Архитектурная схема построения сети сервиса
Достоинствами клиент-серверной архитектуры:
1. Ведение базы данных осуществляет сервер базы данных, что позволяет
обеспечить независимость обработки данных в базе от программ пользователя.
Целостность
информации
поддерживается
централизованной
обработкой
конфликтов, возникающих при одновременной модификации одних и тех же
данных с разных рабочих станций.
2. Сбои при работе клиента не сказывается на целостность данных и их
доступности для других клиентов.
3. Система способна адаптироваться к росту количества пользователей и
увеличению объема базы данных без замены программного обеспечения, а, в
основном, за счет наращивания аппаратных средств.
4. Защитить информацию на сервере базы данных легче, так как права
доступа администрируются достаточно гибко.
53
5. Меньшая нагрузка сети одним пользователем, что обеспечивает
большую пропускную способность сети и возможность обслуживать большее
число пользователей.
6. Большая гибкость системы.
Недостатки клиент-серверной архитектуры заключается в следующем:
1. Отдельные части системы не всегда корректно работают вместе. Бывает
довольно трудно найти причину неисправности.
2. При использовании архитектуры клиент-сервер часто приходится
искать инструментальные средства на рынке или разрабатывать их самостоятельно.
3.2 Структура прототипа информационной системы, реализующего
разработанную методику
Структурная схема — это совокупность элементарных звеньев объекта и
связей между ними, один из видов графической модели. Под элементарным звеном
понимают часть объекта, системы управления и т. д., которая реализует
элементарную функцию.
Структурная схема разрабатывается на начальных стадиях проектирования
и предшествует разработке схем других типов. Структурная схема определяет
основные функциональные части изделия, их назначение и взаимосвязи между
ними.
Все функции, которые будет выполнять разрабатываемая система, можно
разбить на отдельные части, которые будут взаимодействовать между собой. В то
же время, такие части включают в себя блоки, которые так же взаимосвязаны
внутри небольшой подсистемы.
Разрабатываемые функции были разделены на пять подсистем:
 подсистема работы с информацией;
 подсистема работы с группами;
 подсистема распространения и обмена информацией;
 подсистема профиля пользователя;
54
 подсистема аутентификации и авторизации.
Подсистема аутентификации и авторизации позволяет пользователю
зарегистрироваться,
разрабатываемой
чтобы
было
подсистемы.
возможно
Помимо
использовать
обычной
все
регистрации, в
функции
сервисе
предусмотрен вход через популярные социальные сети, в которых 100% имеются
аккаунты. При последующем входе в систему необходимо проходить процедуру
авторизации, введя при этом созданный логин и пароль. После авторизации
зарегистрированный пользователь может вносить пространственно-временную
информацию, распространять и обмениваться созданной информацией, вносить
изменения в персональные данные, создавать группы по определенной тематики.
Подсистема профиля пользователя позволяет работать с персональными
данными
пользователя,
а
именно:
просматривать,
вносить
и
изменять
персональную информацию. персональной информации и модуля редактирования
персональной информации.
Подсистема
работы
с
информацией
позволяет
добавлять
геопространственную информацию путем создания меток на карте, заполнив
название и описание. Кроме того, в разрабатываемой подсистеме есть возможность
добавления информации, ограниченной временным промежутком, под названием
событие.
Эта
подсистема
осуществляет
достоверность,
актуальность,
правильность, точность и полноту геоинформации путем добавления новой метки,
удаления существующей метки, изменения информации в уже имеющиеся метки
сервиса.
Структура разрабатываемой подсистемы формирования и распространения
представлена на рисунке 6.
системы
Рисунок 6 – Структурная схема проектируемой информационной
55
56
Пользователь может объединять существующие метки в группы по
определенному признаку за это отвечает подсистема работы с группой. Данная
подсистема позволяет создавать, удалять группу, также в них можно добавлять
существующие метки или создавать новую информации внутри группы, если она
соответствует тематике группы.
Подсистема распространения и обмена информацией состоит из следующих
блоков:
− рассказать об информации в социальных сетях;
− поделиться информацией пользователям-друзьям;
− предложить информацию в группу.
Данная подсистема позволяет увеличить количество знающих о созданной
информации на сервисе. Таким образом, метками и группами, где хранятся
определенные метки, можно обмениваться, делиться ими в социальных сетях,
отправлять
интересную
информацию
друзьям,
находящимся
в
системе,
подписываться на группы и следить за актуализацией информации.
3.3 Разработка структуры данных
Одной из важных частей подсистемы формирования и распространения
информации является хранение самой информации.
База данных (БД) – организованная структура, предназначенная для
хранения информации.
Для хранения данных была выбрана база данных MySQL. Это самая
распространённая БД. Широкое использование MySQL объясняется тем, что она
успешно работает с различными сайтами и веб-приложениями.
Ещё одно достоинство этой БД возможность работы в отсутствие связи с
сервером. При разработке подсистемы формирования информации это является
большим плюсом, так как не во всех местах возможен доступ к Интернету.
Процесс проектирования базы данных включает в себя следующие этапы:
1) создание логической модели базы данных;
57
2) создание физической модели базы данных.
Для проектирования базы данных часто используется концептуальное
проектирование – построение семантической модели предметной области, то есть
информационной модели наиболее высокого уровня абстракции. Такая модель
создаётся без ориентации на какую-либо конкретную СУБД и модель данных.
Такая модель является как образом реальности, так и образом проектируемой базы
данных для этой реальности.
Логическая модель – это развитие концептуальной модели, которая может
быть обеспечена конкретной СУБД. Для построения логической модели
необходимо опираться на определенную модель данных. В нашем случае база
данных будет представлять собой реляционную базу данных. Основное
достоинство выбранной модели заключается в простоте, понятности и удобстве.
Все данные, которые доступны пользователю, организованны в виде
таблиц.
При проектировке таблиц учитывается, что информация в таблице не
должна дублироваться, не должно быть повторений и между таблицами. Это делает
работу более эффективной, а также исключает возможность несовпадения
информации в разных таблицах.
Из выше сказанного, следует выделить основные задачи, решаемые при
проектировании баз данных, а именно:
 обеспечение хранения в БД всей необходимой информации;
 обеспечение возможности получения данных по всем необходимым
запросам;
 сокращение избыточности и дублирования данных;
 обеспечение целостности базы данных.
Основными конструктивными элементами логической модели являются:
 сущности;
 связи между ними;
 атрибуты сущности.
58
Сущность – любой различимый объект, информацию о котором необходимо
хранить в базе данных.
Атрибут – поименованная характеристика сущности.
В подсистеме формирования и распространения информации необходимо
иметь набор и описание логически связанных данных, удовлетворяющих
потребности пользователя разрабатываемого продукта, т.е. базу данных.
Логическая модель данных представлена на рисунке 7.
Представленная модель базы данных насчитывает 13 таблиц, которые
связаны между собой связями:
1)
страна;
2)
область;
3)
город;
4)
месторасположение;
5)
адрес;
6)
пользователи;
7)
метки;
8)
группы;
9)
участники группы;
10) метки группы;
11) событие;
12) галерея;
13) публикация.
Разберем каждую таблицу базы данных информационной системы, включая
их поля.
Таблица «Пользователи» необходима для хранения персональных данных о
зарегистрированных пользователей в геолокационном сервисе. Эта таблица
содержит следующие атрибуты:
 идентификатор пользователя;
 фамилия;
59
 имя;
 e-mail;
 телефон;
 пароль.
Таблица «Метки» имеет следующие поля:
 идентификатор метки;
 название – уникальное название метки в системе;
 описание – информация о месте;
 фото – графическое представление места.
У метки помимо логотипа присутствует галерея фотографий созданного
места или события. Для этого отведена соответствующая таблица «Галерея» со
следующими полями:
 идентификатор галереи;
 название файла – имя фотографии;
 размер файла – вес данного изображения;
В сервисе предполагается, что метка может быть двух типов: метка и
событие. Событие – это метка, имеющая время жизни. Информацию о метках
такого типа будем хранить в отдельной таблице «Событие», где имеются
следующие поля:
 идентификатор метки;
 дата начала – дата создания события;
 дата окончания – дата завершения события.
Таблица «Месторасположение» хранит географические координаты адреса
метки. Эта таблица содержит следующие поля:
 идентификатор местоположения;
 широта;
 долгота.
Таблица «Адрес» хранит информацию о городе, улицы и доме созданной
метки и имеет следующие атрибуты:
60
 идентификатор адреса;
 улица;
 дом.
Таблица «Город» представляет собой населенных пунктов. Таблица
«Область»
представляет
собой
справочник
регионов.
Таблица
«Страна»
представляет собой справочник государств.
Таблица «Группы» отражает информацию о созданных группа в системе и
содержит следующие поля:
 идентификатор группы;
 название;
 описание;
 категория группы – критерий, по которому будут связаны между собой
метки.
Таблица «Участники группы» отражает пользователей, которые вступили в
созданную группу и их статус. Участник группы может быть владельцем группы
(создатель группы), администратором и подписчиком.
Таким образом, данная таблица содержит следующие поля:
 идентификатор пользователя;
 идентификатор группы
 статус.
Таблица «Метки группы» хранит информацию о добавленных метках в
группе и содержит следующие поля:
 идентификатор метки;
 идентификатор группы.
Таблица
«Публикация»
хранит
информации и содержит следующие поля:
 идентификатор пользователя;
 идентификатор метки;
 дата публикации;
информацию
об
распространении
61
 пост в социальную сеть;
 отправка поста другу.
Определим связь между таблицами:
 таблица «Пользователи» связана с таблицей «Метки» связью «один-комногим», так как один пользователь может иметь несколько меток и множество
меток могут принадлежать одному пользователю;
 таблица «Пользователи» связана с таблицами «Группы» связью «многие
ко многим», что влечет за собой создание дополнительной таблицы «Участники
группы»;
 таблица «Метки» связана с таблицей «Группы» связью «многие ко
многим», что влечет за собой создание дополнительной таблицы «Метки группы»;
 таблица «Месторасположение» связана с таблицей «Метки» связью
«один ко многим»;
 таблица «Адрес» связана с таблицей «Месторасположение» связью
«один ко многим»;
 таблица «Город» связана с таблицей «Адрес» связью «один ко многим»;
 таблица «Область» связана с таблицей «Город» связью «один ко
многим»;
 таблица «Страна» связана с таблицей «Область» связью «один ко
многим».
62
Рисунок 7 – Логическая модель
Физическая модель базы данных содержит все детали, необходимые
конкретной СУБД для создания базы: наименования таблиц и столбцов, типы
данных, определения первичных и внешних ключей и т.п.
Отличительная особенность физической модели в том, что для полей будет
выбран тип данных.
В таблице 2 описаны типы атрибутов.
На рисунке 8 представлена физическую модель базы данных.
63
Таблица 2  Атрибуты сущностей и их типы данных
Название атрибута
Тип данных
1
2
IdCountry
int
Name_Country
Varchar(45)
IdRegion
int
Name_Region
Varchar(45)
IdAdress
int
Street
Varchar(45)
House
Varchar(45)
IdUser
int
Surname
Varchar(45)
Name
Varchar(45)
E-mail
Varchar(45)
Password
Varchar(45)
IdCity
int
Name_city
Varchar(45)
IdLocation
int
Lat
Float
Lon
Float
IdMarker
int
Name_marker
Varchar(45)
Text_marker
Varchar(255)
Date Creation
DateTime
Date end
DateTime
Photo
Text
Idgroup
int
Name_group
Varchar(45)
64
Продолжение таблицы 2
1
2
Text_group
Varchar(255)
Category
Varchar(45)
Status
Varchar(45)
Publication date
DateTime
Post
Bool
На рисунке построили физическую модель базы данных, представленную
на рисунке 8.
Рисунок 8 - Физическая модель базы данных
65
3.4 Разработка алгоритмов работы отдельных подсистем
Чтобы лучше понять, как должна работать разрабатываемая подсистема
необходимо построить алгоритмы основных функций подсистемы.
Основным элементом, с которым будет работать пользователь в системе,
является метка.
В
разрабатываемой
подсистеме
формирования
и
распространения
информации главными функциями считается формирование геоинформации и
распространение её.
Главной особенностью геоинформации является адрес. Таким образом,
метка должна иметь достоверный адрес, который вычисляется геокодером. Чтобы
указать адрес к месту существует два способа.
Первым способом является отметка места на карте вручную, кликнув
мышкой по нужному месту.
Вторым способом является ввод адреса места в адресную строчку на карте.
После этого метка появляется на карте автоматически.
После того как метка отобразилась на карте, необходимо заполнить
обязательное поле «категория». Если данная информация содержит какую-либо
проблему или же сведения о какой-либо неисправности, то следует выбрать
определенную категорию, например, уличная дорожная сеть, благоустройство
дворовых территорий и т.д. Если предлагаемая информация, содержит сведения о
культурном-массовом мероприятии, об историческом объекте, о культурном
туризме, то категория метки будет записана в виде хеш-тега.
После выбора категории, заполняется поле «описание метки», здесь
заполняется актуальная информации об объекте туристического направления или
же описывается заявляемая проблема. Затем прикрепляется фотография в
зависимости от выбранной категории метки: изображение туристического объекта
либо фотография, подтверждающая существования проблемы.
Как только вся информация будет занесена в соответствующие поля следует
метку сохранить. Если после нажатия на кнопку «Сохранить» информация
66
отображена верно на карте, то система работает корректно, в противном случае
система выведет сообщение о внутренней ошибке.
На рисунке 9 представлена схема формирования информации.
Рисунок 9 – Схема алгоритма формирования информации
67
Сформированную пространственно-временную информацию в виде метки
пользователь может просмотреть.
Для этого необходимо из списка сформированных меток выбрать нужную
метку и открыть страницу с подробной информации о ней, а затем и
местоположение на карте. Пользователь может не только просматривать
интересующую информацию об географическом объекте, но и вносить
корректировки в уже существующие метки сервиса, изменяя любое из полей метки:
описание, категория, адрес, фотография.
Таким образом, редактирование информации о метках влечет за собой
постоянное обновление данных. А размещенная информация на сервисе будет
всегда оставаться актуальной, достоверной и полной, так как за контроль
правильности отображаемой информации отвечают сами участники системы.
А опубликовывая метки с какой-либо проблемой, пользователи сообщают
другим пользователям о чрезвычайных и аварийных ситуация в городе.
На рисунке 10 представлена схема алгоритма просмотра информации.
Ёще одна особенность разраббатываемой подсистемы это возможность
объединять метки в сообщества- группы, по определенному признаку.Это
позволяет не только хранить похожую информацию рядом, но и рассказывать в
узком кругу информацию по определенной теме.
При создании группы необходимо указать название и категорию, по
которому будет формироваться метки. При желании создатель группы может
добавить описание и загрузить логотип группы.
После
выполнения
описанных
действий
необходимо
соответсвующие метки.
На рисунке 11 показана схема алгоритма создания группы меток.
добавить
68
Рисунок 10 – Схема просмотра информации
69
Рисунок 11 – Схема создания группы
70
В подсистеме формирования и распространения геоинформации большую
роль играет
функция
распространения
информации. В
разрабатываемой
подсистеме поделиться информацией можно несколькими способами:
1. Предложить информацию в группу.
2. Отправить пространственно-временную информацию в виде метки
выбранным друзьям или другим пользователям сервиса.
3. Экспортировать ссылку о метке в популярные социальные сети.
На рисунке 12 показана схема алгоритма распространения информации.
Рисунок 12 – Схема распространения информации.
71
4 РЕАЛИЗАЦИЯ ПРОТОТИПА ИНФОРМАЦИОННОЙ СИСТЕМЫ
ФОРМИРОВАНИЯ И РАСПРОСТРАНЕНИЯ ГЕОИНФОРМАЦИИ
4.1 Построение логики диалога с пользователем
Для удобной работы пользователя с подсистемой необходимо реализовать
несколько
пользовательских
формирования
и
интерфейсов.
распространения
При
геоинформации
разработке
будут
подсистемы
использоваться
интерфейсы, представленные на диаграмме потоков данных.
На рисунке 13 показана диаграмма потоков данных подсистемы
формирования и распространения информации.
Рисунок 13 – Диаграмма потоков данных
72
Наиболее простым способом отображения логики диалога является простая
транзитивная сеть или сеть состояний и переходов.
Простая транзитивная сеть – это направленный граф, где вершины графа–
это состояние системы, а дуги – это переходы между состояниями.
Дуги обозначают входные сигналы или обратную связь пользовательского
интерфейса. Состояние может быть стартовым, в котором система находится в
начале работы, и конечное, в него попадает система, когда завершают работу с ней.
Графически финальное состояние выделяется двойным кружочком и их может
быть несколько при работе системы.
Рассмотрим интерфейс информационной системы, транзитивная сеть
которого представлена на рисунке 14.
На рисунке 15 представлена транзитивная сеть диалога с пользователем для
интерфейса просмотра геоинформации.
На рисунке 16 представлена транзитивная сеть диалога с пользователем для
реализации действия редактирования информации.
На рисунке 17 отображена транзитивная сеть диалога с пользователем для
функции распространения геоинформации в геолокацонных сервисах.
73
Рисунок 14 – Логика диалога с пользователем
74
Рисунок 15 – Транзитивная сеть просмотра информации
75
Рисунок 16 – Транзитивная сеть диалога с пользователем для реализации
действия редактирования информации
76
Рисунок 17 - Транзитивная сеть диалога с пользователем для функции
распространения геоинформации
4.2 Экранные формы прототипа информационной системы,
реализующего разработанную методику
На основе описанной логики диалога была разработана информационная
система, использующая методику формирования и распространения информации.
Для удобной работы пользователя был создан удобный и понятный
интерфейс. Далее будут описаны основные интерфейсы работы.
77
На рисунке 18 показана форма интерфейса, где отображена вся информация
в виде списка меток, которая была создана пользователем.
Рисунок 18 – Форма отображения списка меток
Для того чтобы добавить новую информацию в систему необходимо нажать
на кнопку «Создать метку».
После этого открывается форма для создания «свежей» информации в виде
метки, где необходимо заполнить требующиеся поля и нажать на кнопку
«Сохранить»
Форма создания новой информации представлена на рисунке 19.
78
Рисунок 19 – Интерфейс создания метки
Для просмотра информации следует выбрать одну метку из списка в форме
отображения списка меток и нажать на неё. Как только данное действие будет
выполнено,
отобразится
страница
метки
с
подробной
информации
об
объекте/месте.
Данный интерфейс представлен на рисунке 20.
Для того чтобы внести изменения в информацию, пользователь должен
быть автором изменяемой информации либо наделен правом доступа на
редактирование информации. Для редактирования сведений необходимо на
странице с подробней информацией о месте нажать на кнопку «Редактировать»,
которая находиться над полем «Описание». После проделанных операций
отобразится форма редактирования метки.
Интерфейс редактирования метки представлен на рисунке 21.
79
Рисунок 20 – Страница просмотра подробной информации
Представленный
сервис
позволяет
распространять
и
обмениваться
геоинформацией с другими пользователями, а также делиться информацией на
других площадках сети Интернет. Чтобы поделиться информацией, следует
выбрать из списка необходимую метку, о которой хотите рассказать. После того
как откроется страница с подробной информацией о месте, необходимо нажать на
кнопку «Поделиться». После этого откроется форма распространения информации,
в которой отображены все способы распространения меток.
Таким образом, следует выбрать один из предложенных способов обмена
информацией. Если выбран способ «Порекомендовать другу», то из списка
необходимо выбрать друзей, которым будет интересная выбранная информация.
Если же пользователь выбрал способ «Порекомендовать группе», то следует
выбрать группы, подходящие по тематике.
Последний способ распространения – это отправить информацию в
социальную сеть, если же пользователь выбрал этот метод распространения, то
необходимо выбрать социальную сеть, в которой будет находиться ссылка на
данную информацию в системе. После выбранного способа необходимо нажать на
80
кнопку «Отправить». Если вы все сделали правильно отобразится сообщение об
успешной операции.
На рисунке 22 представлена форма распространения информации.
На рисунке 23 представлена страница настроек пост для одной из
предложенных социальных сетей.
Рисунок 21 − Страница редактирования информации
81
Рисунок 22 − Форма «Поделиться меткой»
Рисунок 23 – Страница настроек поста в социальной сети Вконтакте
82
4.3 Методика тестирования прототипа информационной системы
формирования и распространения геоинформации
Для проверки работоспособности реализованных функций подсистемы
обеспечения взаимодействия пользователей корпоративной учетной записи
необходима методика выполнения основных действий тестировщиком.
Для полноценного тестирования функции приобретения корпоративной
учетной записи необходимо выполнить тест-кейсы и проверить соответствие
получаемых результатов, ожидаемым.
Тест-кейс 1 «Поделиться информацией в социальной сети ВКонтакте»
Шаги:
1.
Заходим на сайт сервиса по адресу yougid.ru.
2.
Авторизовываемся в системе.
3.
Заходим на страницу «Каталоги».
4.
Выбираем метку.
5.
Открываем её.
6.
Нажимаем кнопку «Поделиться».
7.
Открывается соответствующая форма.
8.
Нажимает на кнопку «Поделиться в социальных сетях».
9.
Нажимаем на иконку социальной сети ВКонтакте.
10. Авторизовываемся в социальной сети ВКонтакте.
11. Добавляем комментарий.
12. Выбираем аудиторию «Друзья и подписчики».
13. Ставим галочку «Добавить изображение».
14. Нажимаем на кнопку «Отправить».
15. Заходим на сайт социальной сети ВКонтакте по адресу vk.com.
16. Заходим на страницу профиля.
17. Проверяем наличие ссылки на метку.
Результат: метка размещена на странице клиента в социальной сети
ВКонтакте.
Тест-кейс 2 «Поделиться информацией в социальной сети Facebook»
83
Шаги:
1.
Заходим на сайт сервиса по адресу yougid.ru.
2.
Авторизовываемся в системе.
3.
Заходим на страницу «Каталоги».
4.
Выбираем метку.
5.
Открываем её
6.
Нажимаем кнопку «Поделиться».
7.
Открывается соответствующая форма
8.
Нажимает на кнопку «Поделиться в социальных сетях»
9.
Нажимаем на иконку социальной сети Facebook.
10. Авторизовываемся в социальной сети Facebook.
11. Добавляем комментарий.
12. Выбираем место постинга «Поделиться в своей хронике».
13. Выбираем категорию людей «Доступно всем»
14. Нажимаем кнопку «На Facebook».
15. Заходим на сайт социальной сети Facebook по адресу facebook.com.
16. Заходим на страницу профиля.
17. Проверяем наличие метки.
Результат: метка размещена на странице клиента в социальной сети
Facebook.
Тест-кейс 3 «Поделиться информацией в социальной сети Google+.»
Шаги:
1.
Заходим на сайт сервиса по адресу yougid.ru.
2.
Авторизовываемся в системе.
3.
Заходим на страницу «Каталоги».
4.
Выбираем метку.
5.
Открываем её
6.
Нажимаем кнопку «Поделиться».
7.
Открывается соответствующая форма
8.
Нажимает на кнопку «Поделиться в социальных сетях»
84
9.
Нажимаем на иконку социальной сети Google+.
10. Авторизовываемся в социальной сети Google+.
11. Добавляем комментарий во «Что нового?».
12. Выбираем категорию людей «Для всех»
13. Нажимаем кнопку «Опубликовать».
14. Заходим на сайт социальной сети Google+ по адресу plus.google.com.
15. Заходим на страницу профиля.
16. Проверяем наличие метки.
Результат: метка размещена на странице клиента в социальной сети
Google+.
Тестирование функций постинга информации в социальных сетях:
ВКонтакте, Google+, Facebook было успешно проведено и получены ожидаемые
результаты.
Тест-кейс 4 «Поделиться информацией с другом»
Шаги
1.
Заходим на сайт сервиса по адресу yougid.ru.
2.
Авторизовываемся в системе.
3.
Заходим на страницу «Каталоги».
4.
Выбираем метку.
5.
Открываем её.
6.
Нажимаем кнопку «Поделиться».
7.
Открывается соответствующая форма.
8.
Нажимаем на галочку «Порекомендовать другу»
9.
Вводим данные друга.
10. Нажимаем кнопку «Отправить».
Результат: сообщение об успешной отправке.
Тест-кейс № 5 «Формирование новой информации».
Шаги:
1.
Заходим на сайт сервиса по адресу yougid.ru.
2.
Авторизовываемся в системе.
85
3.
Заходим на страницу «Каталоги».
4.
Нажимаем на кнопку «Создать новую метку».
5.
Указать место на карте.
6.
Заполняем поле название, описание.
7.
Прикрепляем фотографию.
8.
Нажимаем на кнопку «Сохранить».
Результат: метка создана успешно.
Тест-кейс № 6 «Редактирование информации».
Шаги:
1.
Заходим на сайт сервиса по адресу yougid.ru.
2.
Авторизовываемся в системе.
3.
Заходим на страницу «Каталоги».
4.
Выбраем заявку.
5.
Изменяем информацию о заявке.
6.
Нажимаем на кнопку «Сохранить».
Результат: метка успешно изменена.
Остальные тест-кейсы строятся по такому же принципу
86
ЗАКЛЮЧЕНИЕ
В ходе выполнения данной работы проанализировали существующие
системы формирования и распространения информации в геолокационных
сервисах и пришли к выводу, что данные технологии не позволяют своевременно
оповещать людей об интересной информации, также получать достоверную,
актуальную, полную пространственно-временную информацию.
Описали
существующие процессы сбора геоинформации в геолокационных сервисах, с
помощью диаграммы вариантов использования сформировали основные функции
к разрабатываемой подсистеме формирования и распространения информации.
Сформулированы
функциональные
и
нефункциональные
требования
к
информационной системе.
В аналитической части работы проанализировали существующие подходы
к формированию и распространению. Пришли к выводу, что существующие
методы накопления геопространственной информации, использующиеся в
популярных геосервисах, имеют ряд недостатков. На основе проведенного анализа
разработали методику формирования и распространения геоинформации, где
пространствено-временная
информация
будет
генерироваться
самими
пользователями сервиса. Реализуемая методика позволяет в процессе наполнения
участвовать огромному количеству пользователей, обеспечивая беспрерывную
актуальность информации, способствуя быстрому внесению необходимых
изменений, контролировать достоверность, правильность информации. Данная
методика не требует больших затрат, а также обрабатывать огромный поток
информации.
Реализация предложенной методики в виде информационной системы
позволит сократить время на формирование геоинформации разного характера и
сложности, позволит обеспечить актуализацию пространственно-временной
информации, увеличить скорость распространения как внутри сервиса, так и на
Интернет-площадках.
87
Провели
проектирование
прототипа
информационной
системы,
реализующего разработанную методику, а именно: определили архитектуру и
структуру разрабатываемой информационной системы; спроектировали структуру
данных в виде логической и физической модели, разработали основные алгоритмы.
В заключительной части работы спроектировали диалог с пользователем в
виде транзитивной сети. На основе построенной логики диалога разработали
информационную
систему,
реализующую
распространения геоинформации.
достигнута.
Разработанная
методику
формирования
и
Все поставленные задачи решены, цель
методика
формирования
и
распространения
геоинформации позволяет увеличить качество, разнообразие и эффективность
пространственно-временной информации.
Основные
положения
выпускной
квалификационной
работы
были
подготовлены к публикации и напечатаны в следующих в научных журналах и
сборниках:
1. Паршина В.А., Забелин С.А., Геоинформационные системы и области их
применения
[Электронный
ресурс]/
Естественнонаучные,
инженерные
и
экономические исследования в технике, промышленности, медицине и сельском
хозяйстве: материалы I молодёжной научно-практической конференции с
международным участием / под общ. ред. С. Н. Девицыной. - Белгород: ИД
"Белгород"
,
2017
693
-
с.-Режим
доступа:
http://dspace.bsu.edu.ru/handle/123456789/19251
2. Паршина В.А., Забелин С.А., Взаимодействие жителей города при
решении
проблем
городского
хозяйства
[Электронный
ресурс]
/
Естественнонаучные, инженерные и экономические исследования в технике,
промышленности, медицине и сельском хозяйстве : материалы I молодёжной
научно-практической конференции с международным участием / под общ. ред. С.
Н. Девицыной. - Белгород : ИД "Белгород" , 2017 - 693 с.- Режим доступа:
http://dspace.bsu.edu.ru/handle/123456789/19251.
3. Зубарева, В.А. Использование информационных технологий для
решения проблем городского хозяйства [Текст] / В.А. Зубарева, Р.А. Лунев, И.И.
88
Пятин, Д.В. Рыженков, А.А. Стычук, А.Е. // Информационные системы и
технологии. – Орел : ПГУ, 2016. – №4/96. Июль – август 2016. – 120 с. – C. 51 – 57.
4. Паршина В.А. Перспективы использования геосоциальной сети в
решении проблем городского хозяйства и популяризации туризма [Текст] / А.В.
Авдеев, А.Л. Афанасов, А.С. Бычкова, В.А. Валухов, К.А. Гладков, Е.П.
Емельянова, С.А. Забелин, А.С. Коврижкин, А.С. Коровкина, Р.А. Лунев, А.Б.
Нечаева, Р.Г. Поляков, Д.С. Сезонов, А.А. Стычук, И.С. Стычук, А.Ю.
Ужаринский, А.Е. Ястребков // Информационные системы и технологии. – Орел :
ОГУ им. И.С. Тургенева, 2018 - № 3 (107) май-июнь 2018 – 131 с. – 40 - 47
5. Зубарева, В.А. Использование информационных технологий для
решения проблем городского хозяйства [Текст] / В.А. Зубарева, Р.А. Лунев, И.И.
Пятин, Д.В. Рыженков, А.А. Стычук, А.Е. // Информационные системы и
технологии. – Орел : ПГУ, 2016. – №4/96. Июль – август 2016. – 120 с. – C. 51 – 57.
89
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Паршина В.А., Забелин С.А., Геоинформационные системы и области их
применения
[Электронный
ресурс]/
Естественнонаучные,
инженерные
и
экономические исследования в технике, промышленности, медицине и сельском
хозяйстве: материалы I молодёжной научно-практической конференции с
международным участием / под общ. ред. С. Н. Девицыной. - Белгород: ИД
"Белгород",
2017
-
693
с.-Режим
доступа:
http://dspace.bsu.edu.ru/handle/123456789/19251.
2. Паршина В.А., Забелин С.А., Взаимодействие жителей города при
решении
проблем
городского
хозяйства
[Электронный
ресурс]
/
Естественнонаучные, инженерные и экономические исследования в технике,
промышленности, медицине и сельском хозяйстве : материалы I молодёжной
научно-практической конференции с международным участием / под общ. ред. С.
Н. Девицыной. - Белгород : ИД "Белгород" , 2017 - 693 с.- Режим доступа:
http://dspace.bsu.edu.ru/handle/123456789/19251.
3. Зубарева, В.А. Использование информационных технологий для
решения проблем городского хозяйства [Текст] / В.А. Зубарева, Р.А. Лунев, И.И.
Пятин, Д.В. Рыженков, А.А. Стычук, А.Е. // Информационные системы и
технологии. – Орел : ПГУ, 2016. – №4/96. Июль – август 2016. – 120 с. – C. 51 – 57.
4. Паршина В.А. Перспективы использования геосоциальной сети в
решении проблем городского хозяйства и популяризации туризма [Текст] / А.В.
Авдеев, А.Л. Афанасов, А.С. Бычкова, В.А. Валухов, К.А. Гладков, Е.П.
Емельянова, С.А. Забелин, А.С. Коврижкин, А.С. Коровкина, Р.А. Лунев, А.Б.
Нечаева, Р.Г. Поляков, Д.С. Сезонов, А.А. Стычук, И.С. Стычук, А.Ю.
Ужаринский, А.Е. Ястребков // Информационные системы и технологии. – Орел :
ОГУ им. И.С. Тургенева, 2018 - № 3 (107) май-июнь 2018 – 131 с. – 40 – 47.
5. Зубарева, В.А. Использование информационных технологий для
решения проблем городского хозяйства [Текст] / В.А. Зубарева, Р.А. Лунев, И.И.
90
Пятин, Д.В. Рыженков, А.А. Стычук, А.Е. // Информационные системы и
технологии. – Орел : ПГУ, 2016. – №4/96. Июль – август 2016. – 120 с. – C. 51 – 57.
6. Социальные
геолокационные
продвижения
товаров
и
услуг
[Электронный ресурс]. Режим доступа: http://blog.greensmm.ru/?p=571.
7. Геолокационные сервисы как маркетинговый инструмент [Электронный
ресурс].– Режим доступа: http://www.advertology.ru/article105559.htm.
8. Геолокационная реклама [Электронный ресурс]. - Режим доступа:
https://www.be-in.ru/blogs/37457-geolokacionnaya-reklama/.
9. Т.И. Белая А.Г. Цветков-Омеличев Автоматизированное формирование
базы данных нахождения геообъектов на основе математической модели города и
страны
[Электронный
ресурс].
−
Режим
доступа:http://www.ivdon.ru/uploads/article/pdf/IVD_82_Cvetkov.pdf_fb8862e0ff.pdf.
10. Python, MySQL и другие веб-технологии [Электронный ресурс]. −
Режим доступа: http:// python.ru.
11. Дакетт Дж. Основы веб-программирования с использованием HTML,
XHTML и CSS [Текст] / Дж. Дакетт – Эксмо, 2010.- 768 с.
12. Архитектура информационной системы [Электронный ресурс]. - Режим
доступа: http://www.adload.ru/page/mark2_16.htm.
13. Мандел, Т. Разработка пользовательского интерфейса: практическое
пособие [Текст] / Т. Мандел. Издательство: ДМК Пресс, 2008. – 412 с. – ISBN: 594074-069-3.
14. GIStechnik: всё о ГИС и их применении [Электронный ресурс] – Режим
доступа: http://gistechnik.ru/publik/(дата обращения 27.03.2017.
15. Анализ возможностей совместного использования социальных сетей и
геоинформационных сервисов при оказании электронных услуг населению [Текст]
/ В.Н. Волков, Р.А. Лунёв, А.А. Стычук, А.Е. Ястребков, А.С. Бычкова, А.Б.
Нечаева // Информационные системы и технологии. – Орел: Госуниверситет УНПК, 2015. – №5/91. Сентябрь – октябрь 2015. – 151 с. – С. 53.
91
16. Коннолли,
Т.
Базы
данных.
Проектирование,
реализация
и
сопровождение. Теория и практика [Текст] / Т. Коннолли, К. Бегг.- 3-е изд. –
Издательство: Вильямс, 2008. – 1440 с. – ISBN: 5-8459-0527-3.
17. Буч, Г. Язык UML. Руководство пользователя / Г. Буч, Дж Рамбо, И.
Якобсон. – 2-е изд. – Издательство: ДМК Пресс, 2007. ISBN: 5-94074-334X, 0-32126797-4.
18. Добавление информации на Яндекс.Карты [Электронный ресурс] –
Режим доступа: https://yandex.ru/support/sprav/add-company/add-org.html.
19. Как добавить организацию на Гугл карты? Подробная инструкция
[Электронный ресурс] – Режим доступа:https://semantica.in/blog/kak-dobavitorganizacziyu-na-gugl-karty-podrobnaya-instrukcziya.html.
20. Методы распространения информации в сети Интернет [Электронный
ресурс]
–
Режим
доступа:
https://knigi.link/rabota-biznes-knigi/metodyi-
rasprostraneniya-informatsii-seti-20117.html.
21. Вигерс, К. Разработка требований к программному обеспечению [Текст]
/ К.Вигерс, Дж. Битти. – 3-е изд. – Издательство: Русская редакция, 2014. – 737 с. –
ISBN: 978-5-7502-0433-5.
22. Обратное геокодирование [Электронный ресурс] – Режим доступа:
https://yandex.ru/blog/ymapsapi/4.
92
ПРИЛОЖЕНИЕ А
(обязательное)
Листинг кода основных функций
import collections
from django.http import Http404
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.decorators import detail_route
from rest_framework.mixins import (
RetrieveModelMixin,
UpdateModelMixin,
CreateModelMixin,
ListModelMixin,
)
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet
from backends.core.filters import CanUpdateDeletedFilterBackend
from backends.core.pagination import DefaultPagination
from backends.core.serializers import ContentTypeSerializer
from backends.marker.filters import (
MarkerForUserFilter,
ExcludePastEventsFilter,
OwnedMarkerOrderingFilter,
MarkerOrderingFilter,
MarkerSearchFilter,
GlobalMarkerSearchFilter)
from backends.marker.models import Marker
from backends.marker.permissions import CanMarkerBeModifiedOrReadOnly
from backends.marker.serializers import MarkerSerializer
from backends.social.models import MarkerLike
class MarkerViewSet(RetrieveModelMixin, UpdateModelMixin, CreateModelMixin,
ListModelMixin, GenericViewSet):
serializer_class = MarkerSerializer
permission_classes = (CanMarkerBeModifiedOrReadOnly,)
filter_backends = (
MarkerForUserFilter,
CanUpdateDeletedFilterBackend,
93
ExcludePastEventsFilter,
OwnedMarkerOrderingFilter,
MarkerOrderingFilter,
GlobalMarkerSearchFilter,
DjangoFilterBackend
)
filter_class = MarkerSearchFilter
pagination_class = DefaultPagination
def get_queryset(self):
return (
Marker
.objects
.all()
.select_related(
'location',
'location__address',
'location__address__country',
'location__address__city',
'location__address__region',
)
.order_by("id")
)
def get_serializer(self, instance: Marker = None, *args, **kwargs):
if isinstance(instance, collections.Iterable):
return MarkerSerializer(instance, *args, **kwargs)
if instance:
serializer_cls = instance.get_serializer_class()
kwargs["context"] = self.get_serializer_context()
return serializer_cls(instance, *args, **kwargs)
return super().get_serializer(instance, *args, **kwargs)
@detail_route(methods=["POST"], permission_classes=[IsAuthenticated])
def like(self, request, *args, **kwargs):
marker = self.get_object()
marker_like = MarkerLike.objects.get_or_create(
marker=marker,
user=request.user,
)
serializer = self.get_serializer(instance=marker)
return Response(serializer.data)
94
@detail_route(methods=["DELETE"], permission_classes=[IsAuthenticated])
def remove_like(self, request, *args, **kwargs):
marker = self.get_object()
try:
marker_like = MarkerLike.objects.get(
marker=marker,
user=request.user
)
marker_like.delete()
except MarkerLike.DoesNotExist:
pass
serializer = self.get_serializer(instance=marker)
return Response(serializer.data)
@detail_route(methods=["PATCH"], permission_classes=[IsAuthenticated])
def toggle_like(self, request, *args, **kwargs):
"""
Переключает лайк для метки с заданным идентификатором.
Если пользователь ставил лайк для метки, то лайк удаляется, иначе он
добавляется.
"""
marker = self.get_object()
marker_like, created = MarkerLike.objects.get_or_create(
marker=marker,
user=request.user
)
if not created:
marker_like.delete()
serializer = self.get_serializer(instance=marker)
return Response(serializer.data)
@detail_route(methods=["GET"])
def content_type(self, request, *args, **kwargs):
marker = self.get_object()
if marker.content:
content_type_serializer = ContentTypeSerializer(
instance=marker.content.content_type,
context=self.get_serializer_context()
)
return Response(content_type_serializer.data)
raise Http404()
95
from django.core.files.base import ContentFile
from django.db import transaction
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from rest_framework.serializers import Serializer
from backends.core.fields import (
DateTimeTZField,
GalleryField,
ThumbnailField,
VerifiedPhotoField,
)
from backends.core.serializers import (
ContentSerializer,
GalleryUploadSerializerMixin,
)
from backends.core.templatetags.extras import media_or_no_photo
from backends.core.validators import (
ImageRatioValidator,
ImageSizeValidator,
StripHtml,
)
from backends.marker.models import (
Catalog,
Marker,
)
from backends.marker.models.marker_gallery_image import MarkerGalleryImage
from backends.marker.models.marker_hashtag import MarkerHashtag
from backends.marker.serializers import (
EventSerializer,
LocationSerializer,
MarkerGalleryImageSerializer,
)
from backends.social.fields import TagsField
from backends.social.models.marker_like import MarkerLike
from backends.social.models.wall import Wall
from backends.user.models import UserSettings
from configuration.settings import MARKER_GALLERY_IMAGES_LIMIT
class MarkerPreviewSerializer(serializers.ModelSerializer):
thumbnail = ThumbnailField(source="logo")
96
class Meta:
model = Marker
fields = ('id', 'name', 'thumbnail', 'address')
class MarkerSerializer(GalleryUploadSerializerMixin, Serializer):
default_error_messages = {
"location": "Не заданы координаты метки.",
"catalog": "Вы не можете добавлять метки в заданный каталог.",
"content": "Вы не можете задать данный контент этой метке."
}
gallery_manager_name = "markergalleryimage_set"
id = serializers.IntegerField(read_only=True)
name = serializers.CharField(max_length=100)
description = serializers.CharField(max_length=1500, required=False,
allow_blank=True, allow_null=True)
owner_name = serializers.CharField(read_only=True, source="owner")
owner_url = serializers.CharField(read_only=True)
is_private = serializers.BooleanField(required=False, default=False)
deleted = serializers.BooleanField(required=False, default=False)
is_recommended = serializers.BooleanField(read_only=True)
logo = VerifiedPhotoField(
required=False,
allow_null=True,
validators=[
ImageSizeValidator(max_size=4 * 1024 * 1024),
ImageRatioValidator(ratio=1)
]
)
thumbnail = ThumbnailField(source="logo")
location = LocationSerializer(required=False)
address = serializers.CharField(read_only=True)
lat = serializers.FloatField(source="location.lat", required=False)
lon = serializers.FloatField(source="location.lon", required=False)
event = EventSerializer(required=False, allow_null=True)
comments_count = serializers.IntegerField(read_only=True)
date_created = DateTimeTZField(read_only=True)
tags = TagsField(source="markerhashtag_set", required=False)
like_count = serializers.IntegerField(source="likes", read_only=True)
liked = serializers.SerializerMethodField(help_text='boolean')
catalog = serializers.PrimaryKeyRelatedField(queryset=Catalog.objects.all(),
write_only=True,
97
required=False)
permissions = serializers.SerializerMethodField()
gallery = GalleryField(
representation_field=MarkerGalleryImageSerializer(),
required=False,
help_text="list of base64 images"
)
rating = serializers.DecimalField(read_only=True, max_digits=3, decimal_places=2)
content = ContentSerializer(required=False, allow_null=True)
missing = object()
class Meta:
validators = [
StripHtml(fields=('name', 'description', 'tags'))
]
def __init__(self, instance=None, *args, **kwargs):
super().__init__(instance, *args, **kwargs)
request = self.context.get("request")
if request and request.user.is_authenticated():
max_gallery_images = request.user.get_settings()
if max_gallery_images == UserSettings.UNLIMITED:
max_gallery_images = None
else:
max_gallery_images = MARKER_GALLERY_IMAGES_LIMIT
self.fields["gallery"].max_length = max_gallery_images
def get_liked(self, marker):
request = self.context.get("request")
if request and request.user.is_authenticated():
return (
MarkerLike.objects.filter(marker=marker, user=request.user)
.exists()
)
return False
def get_permissions(self, marker):
request = self.context.get("request")
return request and marker.permissions(request.user)
def validate(self, attrs):
98
tags = attrs.get("markerhashtag_set")
description = attrs.get("description")
if not tags and description:
attrs["markerhashtag_set"] = (
self.fields["tags"].to_internal_value(description)
)
if not self.instance:
location = attrs.get("location")
lat = attrs.get("lat")
lon = attrs.get("lon")
if location is None and lat is None and lon is None:
self.fail("location")
request = self.context.get("request")
if request:
catalog = attrs.get("catalog")
if catalog and not catalog.can_be_modified_by(request.user):
self.fail("catalog")
return attrs
def create(self, validated_data):
location = validated_data.get("location")
if location is None:
location = {
"lat": validated_data.get("lat"),
"lon": validated_data.get("lon")
}
validated_data["location"] = self.fields['location'].create(location)
content = validated_data.get("content")
if content is not None:
validated_data["content"] = self.fields["content"].create(content)
if not self.can_set_content(validated_data["content"]):
validated_data["content"].delete()
self.fail("content")
# Необходимо вынуть данные, которые отсутствуют в качестве полей
# в моделе Marker
tags = validated_data.pop("markerhashtag_set", None)
catalog = validated_data.pop("catalog", None)
gallery = validated_data.pop("gallery", None)
99
event = validated_data.pop("event", None)
marker = self.create_marker(validated_data)
if event is not None:
event["marker"] = marker
self.fields['event'].create(event)
if catalog and catalog.can_add_marker(marker):
catalog.add_marker(marker)
self.set_tags(marker, tags)
marker.wall = self.create_wall(marker)
marker.save()
self.create_gallery(marker, gallery)
return marker
def create_marker(self, validated_data):
request = self.context.get('request')
if not request:
raise ValueError("This serializer can't create markers without "
"request in context.")
validated_data['owner'] = request.user
from backends.user.models import UserMarker
return UserMarker.objects.create(**validated_data)
def update(self, instance: Marker, validated_data):
self.update_marker(instance, validated_data)
instance.save()
old_tags = instance.hashtags
new_tags = validated_data.get("markerhashtag_set", old_tags)
if new_tags is not old_tags:
self.set_tags(instance, new_tags)
self.update_gallery(instance, validated_data.get("gallery"))
return instance
def update_marker(self, marker, validated_data):
"""
Выполняет обновление метки `instance` из данных `validated_data`
без фактического сохранения результатов в БД.
100
:type marker: Marker
:type validated_data: dict
"""
marker.name = validated_data.get("name", marker.name)
marker.description = (
validated_data.get("description", marker.description)
)
marker.is_private = (
validated_data.get("is_private", marker.is_private)
)
marker.deleted = validated_data.get("deleted", marker.deleted)
marker.logo = validated_data.get("logo", marker.logo)
location = validated_data.get("location")
if location is not None:
marker.location = (
self.fields['location'].update(marker.location, location)
)
event = validated_data.get("event")
if event is not None:
event["marker"] = marker
if marker.is_event():
marker.event = self.fields['event'].update(marker.event, event)
else:
marker.event = self.fields['event'].create(event)
catalog = validated_data.get("catalog")
if catalog and catalog.can_add_marker(marker):
catalog.add_marker(marker)
content = validated_data.get("content", self.missing)
if content is not self.missing:
if content is None:
marker.content = None
else:
# Каждый раз контент пересоздается, предыдущий контент удаляется
# Это нужно для соблюдения целостности данных, хранимых в контенте.
content = self.fields['content'].create(content)
if not self.can_set_content(content, marker):
content.delete()
self.fail("content")
101
if marker.content:
marker.content.delete()
marker.content = content
@transaction.atomic()
def set_tags(self, instance, tags=None):
MarkerHashtag.objects.filter(marker=instance).delete()
if tags is None:
tags = []
for tag in tags:
MarkerHashtag.objects.get_or_create(
marker=instance,
hashtag=tag
)
if hasattr(instance, "hashtags"):
del instance.hashtags
def can_set_content(self, content, instance=None):
return True
@transaction.atomic
def create_gallery(self, instance, gallery):
if gallery is not None:
for gallery_image in gallery:
MarkerGalleryImage.objects.create(
marker_id=instance.pk,
image=gallery_image,
owner=self.get_image_owner()
)
def update_gallery(self, instance, gallery):
if gallery is not None:
current_gallery = MarkerGalleryImage.objects.filter(marker=instance)
current_gallery_images = {
str(gallery_image.image): gallery_image.image
for gallery_image in current_gallery
}
current_gallery.delete()
for gallery_image in gallery:
102
if isinstance(gallery_image, ContentFile):
file = gallery_image
else:
file = current_gallery_images.get(gallery_image)
if not file:
raise ValidationError(f"Значение {gallery_image} не является файлом.")
MarkerGalleryImage.objects.create(
marker=instance,
image=file,
owner=self.get_image_owner()
)
def create_wall(self, marker):
return Wall.objects.create()
{% extends "base_flatpage.html" %}
{% load extras %}
{% block page_settings %}
{% page_modal %}
{% include "page_settings.html" %}
{% endblock %}
{% block content %}
<script>
Yougid.Page.onReady.listenOnce(function () {
var thisForm = $("#modal-marker-share");
var shareWithFriendsCheckbox = thisForm.find("[name='share_with_friends']");
var shareWithGroupsCheckbox = thisForm.find("[name='share_with_groups']");
var shareViaEmailCheckbox = thisForm.find("[name='share_by_email']");
var shareViaSocials = $("[name='share-via-social']");
var submitButton = thisForm.find("button[type='submit']");
var shareWithFriendsSelect = thisForm.find("#share-with-friends-container");
shareWithFriendsCheckbox.change(function () {
if (shareWithFriendsCheckbox.is(":checked")) {
shareWithFriendsSelect.fadeIn();
} else {
shareWithFriendsSelect.fadeOut();
103
}
});
shareWithFriendsCheckbox.change();
var shareWithGroupsSelect = thisForm.find("#share-with-groups-container");
shareWithGroupsCheckbox.change(function () {
if (shareWithGroupsCheckbox.is(":checked")) {
shareWithGroupsSelect.fadeIn();
} else {
shareWithGroupsSelect.fadeOut();
}
});
shareWithGroupsCheckbox.change();
var emailTextbox = thisForm.find("input[name='email']");
shareViaEmailCheckbox.change(function () {
if (shareViaEmailCheckbox.is(":checked")) {
emailTextbox.fadeIn();
} else {
emailTextbox.fadeOut();
}
});
shareViaEmailCheckbox.change();
var socialsMenu = $("#marker-share");
shareViaSocials.click(function () {
socialsMenu.toggleClass("shown");
});
Ya.share2('ya-marker-share', {
theme: {
services: 'facebook,twitter,gplus'
},
content: {
title: "{{ marker.name|safe|addslashes }}",
description: "{{ marker.description|default_if_none:""|safe|addslashes|inline
}}",
url: "http://{{ request.get_host }}{% url 'marker:item' marker.id %}",
image: "http://{{ request.get_host }}{{ marker.logo|media_or_no_photo }}"
},
contentByService: {
twitter: {
description: ""
},
104
vkontakte: {
description: "",
noparse: false,
}
}
});
$(".tokenize-sample").tokenize({
displayDropdownOnFocus: true
})
})
</script>
<div id="marker-share">
<script type="text/javascript">
$("#marker-share").prepend(VK.Share.button({
url: "{% http_host %}{% url 'marker:item' marker.id %}"
}, {
type: "custom",
text: "<img src=\"http://vk.com/images/share_32.png\" width=\"25\"
height=\"25\" />"}
));
</script>
<div id="ya-marker-share" class="ya-share2"></div>
</div>
{% endblock %}
105
ПРИЛОЖЕНИЕ Б
(Справочное)
Копия свидетельства о регистрации программ для ЭВМ
Рисунок Б.1 - Свидетельство о регистрации программы для ЭВМ №2017614880
Powered by TCPDF (www.tcpdf.org)
107
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
Наименование
группы атрибутов
атрибута
1. Описание
Обозначение документа
документа
(идентификатор(ы)
файла(ов))
Наименование документа
2. Даты и время
3. Создатели
4. Внешние
ссылки
5. Защита
6. Характеристики
содержания
Характеристики документа
на электронном носителе
\Плакаты\Презентация.ppt
Демонстрационные плакаты
к выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал документа на
электронном носителе
Аннотация
Демонстрационный
материал, отображающий
основные этапы выполнения
выпускной
квалификационной работы
Использование документа Операционная система
Windows 7, Microsoft
PowerPoint 2010
Дата и время
26.06.2018
копирования документа
Дата создания документа 26.06.2018
Дата утверждения
26.06.2018
документа
Автор
Паршина В.А.
Изготовитель
Паршина В.А.
Ссылки на другие
Удостоверяющий лист
документы
№ 165145/п
Санкционирование
ОГУ имени И.С. Тургенева
Классификация защиты
По законодательству РФ
Объем информации
3666210Б
документа
108
7. Структура
документа(ов)
Наименование плаката
(слайда) №1
Наименование плаката
(слайда) №2
Наименование плаката
(слайда) №3
Наименование плаката
(слайда) №4
Наименование плаката
(слайда) №5
Наименование плаката
(слайда) №6
Наименование плаката
(слайда) №7
Наименование плаката
(слайда) №8
Наименование плаката
(слайда) №9
Наименование плаката
(слайда) №10
Наименование плаката
(слайда) №11
Наименование плаката
(слайда) №12
Наименование плаката
(слайда) №13
Титульный лист
Цели и задачи работы
Обзор аналогов и прототипов
Описание предметной
области
Существующие способы
формирования информации
Методика формирования и
распространения
геоинформации
Архитектура сервиса,
реализующего данную
методику
Структура прототипа ИС,
реализующего
разработанную методику
Логический уровень
концептуальной схемы БД
Частные алгоритмы
Экранные формы
Внедрение результатов ВКР
Выводы
Powered by TCPDF (www.tcpdf.org)
1/--страниц
Пожаловаться на содержимое документа