Рисунок 8 . Вычисление расстояния по gps координатам
Форма Земли может быть описана как сфера, поэтому уравнения для вычисления расстояний на большом круге важны для вычисления кратчайшего расстояния между точками на поверхности Земли и часто используются в навигации.
Существует три способа расчета сферического расстояния большого круга.
1. Сферическая теорема косинусов
В случае маленьких расстояний и небольшой разрядности вычисления (количество знаков после запятой), использование формулы может приводить к значительным ошибкам связанным с округлением.
- широта и долгота двух точек в радианах
- разница координат по долготе
- угловая разница
Формула 15 . Сферическая теорема косинусов.
Для перевода углового расстояния в метрическое, нужно угловую разницу умножить на радиус Земли (6372795 метров), единицы конечного расстояния будут равны единицам, в которых выражен радиус (в данном случае - метры).[7]
2. Формула гаверсинусов
Используется, чтобы избежать проблем с небольшими расстояниями.[7]
Формула 16 . Формула гаверсинусов
3. Модификация для антиподов
Предыдущая формула также подвержена проблеме точек-антиподов, чтобы ее решить используется следующая ее модификация. [7]
Формула 17 . Формула для антиподов
Эллипсоид Красовского
Эллипсоид Красовского - земной эллипсоид, определенный из градусных измерений в 1940 г. под руководством Ф. Н. Красовского. Размеры эллипсоида: большая полуось (радиус экватора) 6 378 245 м. Эллипсоид Красовского принят для применения в геодезических и картографических работах в России взамен ранее применявшегося в этих работах земного эллипсоида Бесселя, размеры которого оказались ошибочными. Будем использовать значение его радиуса для вычисления расстояния между 2 объектами в зависимости от значения угловой разницы.
Для вычисления расстояния между двумя точками в Москве будем использовать формулу гаверсинусов и значение радиуса экватора 6378245 м.[2]
3 Технологический раздел
3.1 Требования к вычислительной системе
Общепринятым считается указывать две конфигурации компьютера, которые используются в качестве рабочей платформы для программного продукта. Это минимальная, в которой работа с программой будет очень затруднена, и обеспечивающая лишь запуск и минимальное функционирование программы (используется разработчиками для создания тестового контура), и рекомендованная, которая позволит получить наибольшую отдачу от программы.
Минимальные требования к серверу:
· микропроцессор пятого или шестого поколения (производителей AMD, Intel)
· 16 MB ОЗУ
· 20 Мб на диске
· остальное используемое оборудование должно удовлетворять требованиям, накладываемым выбранной ОС семейства Microsoft Windows
Рекомендуемые требования к серверу:
· микропроцессор шестого поколения и выше (производителей AMD, Intel), например семейства процессоров Bloomfield (2008г.) использующий микроархитектуру Intel Nehalem
· 4000 MB ОЗУ
· 50 Мб на диске
· остальное используемое оборудование должно удовлетворять требованиям, накладываемым выбранной ОС семейства Microsoft Windows
Требуемое для работы сервера операционное окружение:
· Операционная система Windows 7, Windows Vista, Windows Server 2008 или Windows Server 2008 R2
· установка роли веб-сервера (IIS) и требуемых служб
· библиотеки: ASP.NET уже содержит полный набор элементов управления и библиотек классов
Требования к машине клиента:
· Компьютер с доступом в интернет и установленным браузером (данное приложение было протестировано в браузерах IE (версия 9.0.8112.16421) и Opera (версия 11.60)
· Желательно наличие установленной программной платформы Microsoft SilverLight (версия 4.0.50917.0)
3.2 Выбор СУБД
Для решения поставленной задачи СУБД должна отвечать следующим требованиям:
· реляционная модель представления данных,
· поддержка многопользовательского режима работы,
· работа на платформе Windows 2000 и выше.
Предъявленным требованиям отвечают следующие СУБД:
· Microsoft SQL Server 2008 R2,
· Oracle,
· IBM DB-2.
СУБД DB-2 может обслуживать до 64 000, а Oracle до 10 000 одновременно работающих пользователей [8]. Использование их в рамках данного проекта является не целесообразным расходованием ресурсов.
Microsoft SQL Server 2008 R2 — новая версия решения управления базами данных от компании Microsoft, которая предоставляет комплексную платформу управления информацией и бизнес-аналитики. SQL Server 2008 R2 предоставляет надежную платформу для управления бизнес-данными и построения бизнес-приложений. Решение SQL Server 2008 R2 построено на основе SQL Server 2008, отличаясь улучшенным масштабированием, более эффективными технологиями, а также расширенными возможностями для самостоятельного бизнес-анализа и составления отчетов.
Из выше перечисленного следует, что в данном проекте лучше всего использовать СУБД MS SQL Server 2008 R2.
3.3 Выбор среды разработки
Рассматриваемый программный комплекс реализован с использованием принципов объектно-ориентированного программирования. Для организации и проектирования объектной модели программы использовались шаблоны («паттерны») объектно-ориентированного проектирования. Такой подход позволяет создавать гибкий дизайн приложения, способный учитывать всевозможные расширения функциональности программы и приводит к оптимальному уровню абстракции данных.
Для разработки программного продукта была выбрана платформа . NET и среда программирования MS Visual Studio 2010.
Выбор данной платформы обусловлен большим выбором стандартных библиотек, позволяющих разрабатывать программные приложения с наибольшей эффективностью при минимальных затратах времени. В качестве основного языка программирования выбор был остановлен на С#.
Из возможных версий платформы Microsoft . NET Framework была выбрана наиболее актуальная версия 4, т.к. данная версия обладает наиболее совершенными библиотеками классов и большим набором реализованных модулей.
3.4 Выбор языка программирования
C # - один из самых распространённых и популярных современных языков объектно-ориентированного программирования. Данный язык был выбран в силу того, что он имеет широкие возможности по написанию сложных функциональных программных комплексов, использующих различные ресурсы и имеющих гибкий пользовательский интерфейс. С# позволяет в короткие сроки создавать развитые иерархии взаимодействующих классов в каждом логическом слое приложения и связывать их функциональность со слоем отображения, реализую событийную модель взаимодействия компонентов. Кроме того, существуют огромнейшие библиотеки классов (.NET Framework, последняя версия – 4.0), написанные на этом языке, где можно найти практически всё, что требуется для работы над проектом любой сложности. Также C# предоставляет широкие возможности по использованию механизмов кодогенерации в самых различных её проявлениях (в третьей версии появились автосвойства, анонимные делегаты, лямбда-функции и прочее), работе с хранилищами данных (Object-relation mapping (ORM), реляционные базы данных, XML, коллекции, механизмы LINQ [4]).
Выбор среды разработки обусловлен следующими причинами:
· данная среда является самой современной из доступных на сегодняшний день и позволяет использовать весь спектр технологий и программных библиотек;
· данная среда программирования является промышленным стандартом разработки приложений;
· среда разработки MS Visual Studio 2010 предоставляет широкие возможности при написании кода, его редактировании, а также позволяет эффективно отлаживать программы с использованием различных инструментов, что позволяет качественно и быстро устранять возникающие ошибки;
· данная среда предоставляет удобную систему отладки кода программ и множество мастеров по созданию функциональных блоков программ (компонентов, визуальных элементов, дизайнеров и прочее);
Так же при создании веб-приложения использовался язык JavaScript. JavaScript используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. JavaScript используется в клиентской части веб-приложений: клиент-серверных программ, в котором клиентом выступает браузер, а сервером — веб-сервер, имеющих распределённую между сервером и клиентом логику. Обмен информацией в веб-приложениях происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами.
JavaScript используется в AJAX, популярном подходе к построению интерактивных пользовательских интерфейсов веб-приложений, заключающемся в «фоновом» асинхронном обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью и интерфейс веб-приложения становится быстрее, чем это происходит при традиционном подходе (без применения AJAX).
3.5 Используемые технологии
ASP.NET
Для создания веб-приложения использовалась технология ASP.NET (версия 4.0). ASP.NET — технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. Наиболее важными преимуществами ASP.NET перед ASP являются:
· Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки;
· Пользовательские элементы управления (controls) позволяют выделять часто используемые шаблоны, такие как меню сайта;
· ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц в том числе на Visual C#;
· Возможность кэширования всей страницы или её части для увеличения производительности;
· Возможность кэширования данных, используемых на странице;
· Наличие master-страниц для задания шаблонов оформления страниц;
· Встроенная поддержка AJAX;
· ASP.NET имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах;
· ASP.NET поддерживает модель доступа к данным ADO.NET.
AJAX
AJAX — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.
Основными преимуществами использования технологии AJAX являются:
· Экономия трафика. Использование AJAX позволяет значительно сократить трафик при работе с веб-приложением благодаря тому, что часто вместо загрузки всей страницы достаточно загрузить только изменившуюся часть, как правило, довольно небольшую;
· Уменьшение нагрузки на сервер. AJAX позволяет несколько снизить нагрузку на сервер. К примеру, на странице работы с почтой, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции без необходимости повторно создавать страницу и передавать её клиенту;
· Ускорение реакции интерфейса. Поскольку нужно загрузить только изменившуюся часть, пользователь видит результат своих действий быстрее.
ADO.NET
Технология доступа к данным ADO.NET - это часть Microsoft .NET Framework, т.е. набор средств и слоев, позволяющих приложению легко управлять и взаимодействовать со своим файловым или серверным хранилищем данных.
В NET Framework библиотеки ADO.NET находится в пространстве имени System.Data. Эти библиотеки обеспечивают подключение к источникам данных, выполнении команд, а также хранилище, обработку и выборку данных (рисунок 9).
Рисунок 9 . ADO . NET
ADO.NET отличается от предыдущих технологий доступа к данным тем, что она позволяет взаимодействовать с базой данных автономно, с помощью кеша базы данных.
Автономный доступ к данным необходим, когда невозможно удерживать открытое физическое подключение к базе данных каждого отдельного пользователя или объекта.
Основные преимущества использования технологии ADO.NET:
· использование разъединенной модели доступа к данным;
· хранение данных в объектах DATASET;
· глубокая интеграция с XML.
·
3.6 Пользовательский интерфейс
3.6.1 Интерфейс приложения
Для удобства понимания информации пользователем, весь функционал программы привязан к карте Москвы, взятой из Яндекса. Интерфейс позволяет просматривать расположения образовательных центров, места жительства клиентов, число распределенных и нераспределенных учеников в каждом ОЦ. Также пользователю в любой момент доступна статистика, которая содержит в себе информацию о текущем значении прогнозируемой прибыли, предыдущем её значении, числе распределенных и нераспределенных клиентов, числе набранных групп, числе нераспределенных клиентов, записанных на конкретный курс.
3.6.2 Интерфейс веб-приложения
Мастер - страницы
Пользовательский интерфейс веб-приложения был построен на использовании мастер-страниц, что позволило нам достичь разделения между разметкой верстки и разметкой содержимого нашего сайта. Используя мастер-страницы, мы можем с легкостью обновить весь сайт иным стилем. Мастер-страница, которую будут видеть пользователи сайта, представлена на рисунке 10.