Сучасні інформаційні технології/3. Програмне забезпечення
Колотілкін А.В.
Дніпропетровський національний
університет ім. О.Гончара
Розробка
програмного забезпечення для розв’язування транспортної задачі в сучасних
геоінформаційних системах
Загальна постановка задачі.
Транспортна
задача (класична) - задача про оптимальний план перевезень однорідного продукту
з однорідних пунктів наявності в однорідні пункти споживання на однорідних
транспортних засобах (визначеної кількості) з статичними даними та лінеарним
підходом (це основні умови задачі).
Для класичної
транспортної задачі виділяють два типи завдань:
1.
критерій вартості (досягнення мінімуму витрат на перевезення) або
відстаней;
2.
критерій часу (затрачається мінімум часу на перевезення).
Модифікуємо
класичну транспортну задачу, для того щоб вона задовольняла потребам населення
сучасного міста. Буде стояти задача знаходження оптимального плану перевезення
людини з пункту А в пункт Б. При цьому будемо враховувати критерій часу, тобто
швидкості перевезення, та вартості, тобто кількості транспортних засобів, якими
можна скористатися для перевезення.
Умовами
вирішення задачі будемо вважати наявність одного чи декількох запропонованих
маршрутів між пунктами А та Б, які є оптимальними по одному з двох критеріїв.
Метою роботи є створення механізму побудови і пошуку таких оптимальних
маршрутів для вирішення транспортної задачу в умовах сучасного міста. Механізм
буде використовувати існуючі геоінформаційні системи, та буде створений на базі
сучасних Інтернет технологій.
Пропонується
використання існуючих інтернет сервісів, що надають супутникові зображення
міста високої деталізації, а також інші картографічні сервіси.
Розроблювана система має відповідати існуючим
веб-стандартам, бути крос-браузерною та використовувати новітні технології,
такі як AJAX.
Огляд існуючих технологій.
Для виконання роботи було зібрано
інформацію про основні веб-картографічні сервіси, які можуть використовуватися
для побудови геоінформаційної системи. Такими сервісами є:
-
Google Maps
-
Yahoo Maps
-
Microsoft Maps
-
Яндекс Карти
-
Карти Візіком
-
Карти Рамблеру
Як бачимо
вибір є доволі великим. Усі ці сервіси значно відрізняються один від одного,
мають свої сильні та слабкі сторони, а також унікальні особливості. Треба
зазначити, що у більшості зарубіжних провайдерів картографічних даних (Yahoo, Microsoft) відсутня інформація про адреси в містах України, Росії,
Білорусії та інших країн СНД (на щастя, Google нещодавно вийшов з цього
списку). Це робить неможливим використання деяких функцій, які вони надають,
такі як пошук конкретної адреси, побудова маршруту між двома точками на карті та
інше. В свою чергу вітчизняні провайдери ще не мають достатньо технологічних
пристроїв для створення високо деталізованих супутникових знімків місцевості, і
в цьому плані зарубіжні сервіси мають велику перевагу. Супутникові знімки на
картах Яндексу та Рамблеру мають низьку чіткість, а сервіс від компанії Візіком
зовсім не має можливості показу супутникової карти.
За більшістю
переваг засобом розробки був обраний сервіс від Google.
Головними
критеріями обрання Google стали:
1.
Більш повна, локалізована та підтримувана документація по API та велика кількість навчальних прикладів роботи з сервісом;
2.
Супутникові знімки високої чіткості;
3.
Високі перспективи розвитку, поява нового функціоналу та можливостей;
4.
Гарантія свободи та безкоштовності використання сервісу у майбутньому.
Майже повна
відсутність недоліків цього сервісу, які б перешкоджали подальшій роботі і
розвитку системи, робить продукт від Google лідером картографічних сервісів на
даний момент.
Деталі реалізаціїї.
Як відомо
технологія AJAX підтримує декілька форматів передачі даних між сервером та
клієнтом, серед яких є XML та JSON. Спочатку сайт використовував автоматично
генеровані XML-файли, які містили в собі інформацію про географічні об’єкти,
але розмір таких файлів та час потрібний для їх завантаження з серверу змусив
відмовитися від такої реалізації. Натомість був використаний більш легкий та
багатообіцяючий формат JSON.
Формат JSON -
це дуже легкий формат представлення даних, що ґрунтується на підмножині
синтаксису JavaScript, а саме на літералах масивів і об'єктів. Як й XML, читабельний, не
залежить від платформи і має широкі можливості застосування. Дані, сформовані у
відповідності зі стандартом JSON, є спрощеними і можуть легко аналізуватися із
застосуванням JavaScript, що робить цей стандарт ідеальним форматом обміну
даними для веб-додатків AJAX.
На
сервері за допомогою php-функції json_encode($output) формується JSON-строка,
яка має вигляд:
{
"ID" : "8016",
"AddressName" : "10",
"StreetName" : "Карла Маркса просп.",
"Longtitude" :
"35.0452",
"Latitude" :
"48.4548"
}
Далі
ці дані оброблюються клієнтом та відображаються на карті за допомогою
власно-написаної функції, що використовує внутрішні функції Google Maps API та
створює окремий об’єкт структури DOM з власними методами та атрибутами. Цей об’єкт
використовує callback-функції Google Maps API для того, щоб змінювати своє
відображення на карті зі зміною масштабу карти.
Результати.
В процесі
виконання роботи було зроблено порівняльний аналіз більшості існуючих інтернет-сервісів, які надають у вільне
використання власні картографічні дані, оцінено їх сильні та слабкі сторони та
створено продукт, який комбінує переваги декількох сервісів, тим самим
компенсуючи існуючі недоліки сучасних ГІС.
Було вивчено
та використано на практиці концепцію AJAX. В рамках цього вивчення розглянуто
та досліджено два формати передачі даних: XML та JSON. За результатами дослідів
було визначено, що передавати дані зручніше за допомогою JSON, так як дані,
сформовані у відповідності зі стандартом JSON, є спрощеними і можуть легко
аналізуватися із застосуванням JavaScript, що робить цей стандарт ідеальним
форматом обміну даними для веб-додатків Ajax.
В результаті
виконання роботи був розроблений веб-сайт, що пропонує наступні функції:
1.
Пошук по адресній базі міста та міських об’єктів. Адресна база є досить
актуальною. Реакція на дії користувача відбувається швидше, за рахунок
часткової передачі даних на сервер, і цим самим зникає потреба у повному
перевантаженні усієї сторінки;
2.
Знаходження оптимального маршруту пересування дорогами міста між пунктами А
та Б. Маршрут розраховується по одному з заданих критеріїв – найкоротший шлях
пересування або найменші витрати на пересування.
Отримані
результати можуть бути використані для надання актуальних даних користувачам,
що проводять пошук по адресній базі міста та потрібних їм міських об’єктах.
Джерела інформації:
1.
Дарі К., Бринзаре Б., Через-Тоза Ф., Бусика М. AJAX і PHP: розробка
динамічних веб-додатків. – СПб.: Символ-Плюс, 2006. – 336 с., іл.
2.
Паскарелло Д., Даррен Е. AJAX в дії. Пер с англ.. – М.: Видавничий дім
«Вільяме», 2006. – 640 с. іл.
3.
Вайк Аллен JavaScript. Енциклопедія користувача: Пер. з англ./Аллен Вайк. –
К.: ТОВ «ТИД» ДС, 2001. – 480 с.
4.
Мердок, Келли Л JavaScript: Наочний курс створення динамічних веб-сторінок.
Пер. з англ..: навч. Пос. – М.: Видавничий дім «Вільямс», 2001. – 288 с. : іл.
5.
Вільямсом Х. Універсальний Dynamic HTML. Бібліотека програміста. – СПб.:
Пітер, 2001. – 304 с.: іл..
6.
Велихов С. Довідник по HTML 4.0. Серія книг «Посібник по роботі: поради,
хитрощі, трюки та секрети»- М.: Бук-прес, 2006. – 412 с.
7.
Наварро Е. XHTML: навчальний курс. – СПб.: Питер, 2001. – 336 с.: іл.
8.
Петюшкін А.В. HTML. Експрес-курс. – СПб.: БХВ-Петербург, 2003. – 256с.: іл.
9.
http://googis.info/ – сайт популярних
геосервісі.
10.
http://gis-lab.info/ – неформальне
некомерційне співтовариство фахівців в області ГІС та ДЗЗ.
11.
http://code.google.com/apis/maps/documentation/ – документація та опис
роботи карт Google Maps.
12.
http://api.yandex.ru/maps/doc/ – документація та опис роботи
карт Яндекс Карти.
13.
http://maps.visicom.ua/api-docs/vmapi/ - документація та опис роботи
карт Візіком.
14.
http://wikipedia.org/ – Вікіпедія, вільна
енциклопедія.