Создание картографического веб-сервиса с использованием API Яндекс.карт и Google

Возможности интерфейса программирования приложений ARI крупных картографических веб-сервисов в процессе создания двух картографических веб-сервисов. Анализ существующих веб-сервисов. Карты Яндекса и Google, пользовательские карты. Выбор среды разработки.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 24.09.2012
Размер файла 4,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

"Кубанский государственный университет"

(ФГБОУ ВПО "КубГУ")

Кафедра геоинформатики

ДИПЛОМНАЯ РАБОТА

СОЗДАНИЕ КАРТОГРАФИЧЕСКОГО ВЕБ-СЕРВИСА С ИСПОЛЬЗОВАНИЕМ API ЯНДЕКС. КАРТ И GOOGLE

Работу выполнил

Ю.А. Сухинина

Факультет географический

Специальность080801 "Прикладная информатика в географии"

Нормоконтролер,

доц., канд. геогр. наук

А.Н. Пелина

Краснодар 2012

Содержание

  • Введение
  • 1. Анализ существующих веб-сервисов
  • 1.1 Карты Яндекса и пользовательские карты
  • 1.2 Карты Google
  • 2. Выбор среды разработки
  • 2.1 Система управления веб-содержимым WordPress
  • 2.2 Система управления веб-содержимым Drupal
  • 2.3 Система управления веб-содержимым Joomla
  • 2.4 HTML-редактор AdobeDreamweaver
  • 3. Создание веб-сервиса
  • 3.1 Веб-сервис с использованием Яндекс. Карт
  • 3.2 Веб-сервис с использованием карт Google
  • 4. Размещение веб-сервисов в сети интернет
  • Заключение
  • Список использованных источников
  • Приложение А

Введение

Интернет-услуги в области геоданных постоянно расширяются и технологически совершенствуются, затрагивая все более глубокие пласты геоинформационной деятельности: производство и распространен ие цифровых геоданных, их стандартизацию и классификацию, создание ГИС с возможностями удаленного доступа для широкого круга пользователей посредством "открытых" сетей (то есть не требующих создания особых информационно-технологических инфраструктур), осуществление комплексных научно-исследовательских ГИС-проектов, подготовку профессиональных кадров в области ГИС. Можно говорить о формировании в сети Интернет мощного геоинформационного "пласта", который уже сейчас оказывает существенное влияние на развитие ГИС и геоинформационных наук в мире [3].

Веб-картография ознаменовала собой демократизацию доступа широких слоев компьютерных пользователей к географическим данным. С момента своего зарождения в середине 90-х гг. и до настоящего времени данные технологии прошли значительный путь развития. Сегодняшнего пользователя Интернета невозможно представить без использования картографических веб-сервисов (webmaps). В сети каждый день растет число сайтов, использующих технологию картографических сервисов (интерактивных карт) для распространения и популяризации данных и сопутствующей информации, а также предлагающих за плату разнообразные электронные карты вместе с наборами данных.

Целью данной работы является изучить возможности интерфейса программирования приложений (ApplicationProgrammingInterface - API) крупных картографических веб-сервисов в процессе создания двух картографических веб-сервисов. Первый из них будет отображать информацию о наличии товаров в компьютерных магазинах города Краснодара на картах компании "Яндекс". Второй будет подбирать для пользователя на основе введенной им информации номера в гостиницах, отелях, санаториях, пансионатах или в частном секторе курортного города Анапа с отображением полученной информации на картах Google.

Для реализации проекта необходимо выполнить следующие задачи:

выбрать платформу разработки веб-сервисов;

собрать необходимую информацию для заполнения базы данных;

разработать быстрый способ обновление информации в базе;

разработать алгоритм выбора объектов, соответствующих потребностям пользователя;

выбрать хостинг для размещения полученных сервисов в сети Интернет.

1. Анализ существующих веб-сервисов

Существует два важнейших типа современных веб-карт: распределенные картографические веб-сервисы и коллективные веб-карты.

Если взглянуть на полный спектр доступных сервисов такого типа, сразу заметны несколько явных лидеров:

Google Maps;

Yahoo! Maps;

MicrosoftLiveSearchMaps;

YandexMaps.

Эти сервисы выделяются широким спектром предоставляемых функциональных возможностей, хорошим географическим покрытием и удобством для конечных пользователей. К числу их сильных сторон можно отнести развитые навигацию по карте и масштабирование (zooming), наличие специализированных информационных ресурсов (карты улиц крупных городов, транспортных потоков в режиме реального времени и прочее).

Все ведущие картографические сервисы поддерживают последние версии популярных браузеров (IE, MozillaFirefox, Safari, Opera, Chrome). При этом GoogleMaps доступен для пользователей наибольшего числа версий браузеров, включая уже вышедшие из употребления - благодаря своей давней истории (первая версия сервиса была опубликована в 2005 г.) и изначально кросс-браузерному дизайну, заложенному в его клиентское программное обеспечение.

Если говорить об источниках картографических данных, то общей чертой этих сервисов является сотрудничество со специализированными организациями, у которых они закупают данные.

Безусловно, сервисы различаются функциональностью. Например, картографическая служба "Microsoft" предоставляет возможность навигации по трехмерным картам улиц крупнейших городов США и некоторых других стран [17], в то время как Google дает уникальный инструмент для разработчиков, желающих разместить ту или иную прикладную информацию на картах, - GoogleMaps API.

Также эти сервисы отличаются по степени покрытия различных районов земного шара и актуальностью картографических данных. Например, карты Яндекса для территорий стран СНГ отвечают последнему требованию. Актуальность карт в "GoogleMaps" и "MS LiveSearchMaps" для разных регионов - 1-3 года. Отстает от всех Yahoo! Maps - его данные в среднем устарели на 4-5 лет.

Существенным минусом также является закрытиеYahoo! Maps своего API 13 сентября 2011 г. [24].

Каждый сервис имеет свои преимущества и недостатки. В зависимости от поставленной задачи можно применять разные веб-сервисы.

Современные картографические веб-сервисы, несомненно, предоставляют массу возможностей, как специалистам, так и пользователям интернета. Однако у них имеется целый ряд недочетов, связанных с применением коммерческих данных (недостаточное или отсутствующее покрытие в определенных регионах земного шара, устаревшая картографическая информация и так далее).

Именно это послужило толчком для развития альтернативных картографических веб-решений - коллективных веб-карт. Их отличительной чертой является возможность для пользователей самим создавать и обновлять данные на картах. В результате получается достаточно достоверная и совершенно бесплатная карта региона и мира в целом.

Среди наиболее ярких решений данного класса - проект "OpenStreetMaps" (OSM).

Он был создан в 2004 г. молодым выпускником одного из лондонских университетов Стивом Костом после того, как тот разочаровался в качестве и доступности электронных карт Великобритании. С тех пор проект развился и на сегодняшний день превратился в достаточно массовое движение GPS-картографирования (сейчас он насчитывает свыше 50 тысяч зарегистрированных пользователей, из которых около 5 тысяч - активные картографы).

Одна из важных особенностей OSM - развитие набора инструментов для автоматического ввода данных, полученных пользователями с помощью GPS-картографирования, в централизованное хранилище. Именно благодаря этому в системе появляются и обновляются карты различных участков земного шара.

Популяризации данных OSM способствовало создание основателями OSM компании "Клаудмейд", которая разрабатывает линейку коммерческих продуктов, использующих данные OSM (а именно, картографические Web API иMobileAPI [18].

Другим примером успешной коллективной веб-карты является проект WikiMapia, созданный россиянами Александром Корякиным и Евгением Савельевым в 2006 г. По сути, это надстройка над GoogleMaps, в которой применяется wiki-подобный интерфейс для ввода пользовательских данных.

Бурный расцвет и разнообразие современных картографических веб-систем является индикатором все более массового использования электронных картографических данных в различных прикладных областях. Именно поэтому так актуальная тема этой работы.

Для дипломной работы были выбраны картографические сервисы Google, так как API этой компании дает наиболее разнообразный инструмент для создания собственных карт, и APIЯндекс. Карт, так как карты этой компании наиболее актуальны для территории России. Подробное сравнение картографических веб-сервисов отображено в приложении А.

картографический интерфейс программирование яндекс

1.1 Карты Яндекса и пользовательские карты

Яндекс. Карты - это поисково-информационный сервис, предоставляющий пользователям карты крупных городов России, Украины, Белоруссии, Казахстана и других стран СНГ, актуальные данные о пробках, схемы метро и другие возможности [8].

Пользователи имеют возможность размещать карты Яндекса или собственные карты на своих веб-страницах. Для этого существует бесплатный инструментарий - API Яндекс. Карт и соответствующая документация.

API Яндекс. Карт позволяет манипулировать любыми картами - то есть изображениями местности или любых объектов, каждой точке которых соответствуют определённые двумерные координаты.

Пользователи, которых интересует территория нашей планеты и, в особенности России и республик бывшего СССР, могут воспользоваться изображениями местности, предоставляемыми Яндексом. Яндекс предоставляет три набора изображений поверхности земного шара: схема, спутниковая карта и гибридное представление.

На схеме местность представлена в нарисованном виде без лишних деталей, на географические объекты нанесены обозначения и названия.

Спутниковая карта составлена из спутниковых и аэрографических снимков местности.

В гибридном представлении на спутниковую карту нанесены границы государств и регионов, дорожная сеть и названия географических объектов.

API Яндекс. Карт позволяет формировать карты двух типов - интерактивные и статические.

Интерактивные карты предполагают взаимодействие с пользователем в виде реакции на определенные управляющие воздействия, например, нажатие кнопок мыши или клавиш клавиатуры. Так, пользователь может "перемещаться" по карте, изменять масштаб, размещать метки и так далее.

Интерактивность электронных карт подразумевает их реакцию на действия, совершаемые пользователем, например, на нажатие кнопки изменения масштаба. Когда пользователь совершает какие-либо действия в активной области карты, генерируются события. API Яндекс. Карт позволяет отслеживать эти события и программировать реакцию на их возникновение.

События возникают не только как реакция на действия пользователя, но и во время программного обращения к электронной карте посредством API, например, при размещении на ней объектов или их удалении.

Реализованный в API Яндекс. Карт механизм обработки событий является хорошей базой для создания интерактивных картографических веб-приложений.

Для взаимодействия с пользователем в области карты может быть размещён набор специальных элементов управления - как стандартных ("лупа", "линейка" и пр.), так и определённых пользователем.

Интерфейс интерактивных карт, как программный, так и пользовательский реализован на JavaScript.

API Яндекс. Карт поддерживает возможность формирования карт определённых участков местности в виде обычных изображений - так называемых статических карт. Статические карты генерируются с помощью HTTP-запросов. Так, изображение карты можно получить, введя определённый адрес в адресной строке браузера.

API Яндекс. Карт позволяет получать статические изображения карт Яндекса, но не поддерживает формирование изображений пользовательских карт, созданных с помощью JavaScript API.

При работе с картами часто используется такой приём как размещение на изображении местности различных графических объектов. Это могут быть метки, "всплывающие" подсказки, линии, многоугольники и другие элементы.

API Яндекс. Карт содержит набор программных компонентов, реализующих отображение наиболее часто используемых графических объектов. Причём объекты могут размещаться как на интерактивных картах с помощью JavaScript, так и на статических изображениях местности с помощью обычных HTTP-запросов.

Чаще всего на карте изображена крупная территория с большим количеством расположенных на ней географических объектов. В таких случаях поиск интересующего местоположения может оказаться довольно затруднительным.

API Яндекс. Карт значительно упрощает задачу поиска объектов на местности. Для этого разработаны инструменты, позволяющие выполнять следующие действия:

определение координат объекта по его адресу или названию - геокодирование (JavaScript API и HTTP-запрос);

определение адреса объекта по географическим координатам - обратное геокодирование (JavaScript API и HTTP-запрос);

поиск станций метро, находящихся наиболее близко к точке с заданными координатами (JavaScript API).

API Яндекс. Карт использует программные компоненты, разработанные для поискового сервиса Яндекса. Это позволяет находить нужные места даже по таким запросам как "маскваулмоголя" или "питер манежная".

Также существенным плюсом является наличие в API Яндекс. Карт инструментов, позволяющих автоматически прокладывать маршрут перемещения между заданными пунктами и получать различную информацию о проложенном маршруте. При этом путь прокладывается не только для автомобилей, но и для общественного транспорта. Сервис предлагает до четырех вариантов проезда к нужному месту с учетом различных критериев: например, количества пересадок или расстояния, которое нужно пройти пешком. В настоящее время построить автобусный, трамвайный или троллейбусный маршрут на Яндекс. Картах могут жители 31 города России (а это почти все крупные города). Причём вычисление маршрута может производиться как с учётом пробок, так и без [7].

Инструментарий этой компании наиболее точен, так как карты компании "Яндекс" создавались для России, имеют высокую частоту обновления и свою собственную информацию о ситуации на дороге.

APIЯндекс. Карт активно развивается.18 апреля 2012 года была выпущена новая версия JavaScript API Яндекс. Карт 2.0. Она имеет большое количество отличительных особенностей от предыдущей версии. Можно сказать, что это полноценный релиз практически нового продукта [9].

1.2 Карты Google

Google Maps - картографический сервис, работающий в режиме web-страницы. Разработчикам предоставляется возможность свободно размещать окно карты на своих страницах и осуществлять некоторую ее настройку [28].

API Карт Google позволяет встраивать карты Google на веб-страницы при помощи JavaScript. API предоставляет ряд служебных программ для управления картами (как на веб-странице [16]) и добавления содержания на карту при помощи множества служб, что позволяет создавать на веб-страницах приложения, использующие карты [14].

API Карт Google - это бесплатная служба, доступная для любого веб-сайта, доступ к которому предоставляется бесплатно.

Для использования API Карт во внутренней сети или в приложении с ограниченным доступом нужно использовать APIPremier Карт Google.

API Карт Google предоставляет разработчикам несколько способов встраивать Карты Google в веб-страницы с возможностью их настройки. На данный момент предлагается несколько видов API:

Google Maps JavaScript API;

API Карт Google для Flash;

API статических карт Google.

В зависимости от стоящих перед разработчиком задач можно использовать различные API.

Служба Google Maps API предоставляет веб-службы как интерфейс для запроса данных Maps API из внешних служб и использования их в приложениях Maps. Эти службы разработаны для использования в сочетании с картой. Они используют HTTP-запросы к определенным URL, передавая службам параметры URL в качестве аргументов. Обычно после запроса возвращаются данные приложению в HTTP-запросе в формате JSON или XML для синтаксического анализа и обработки.

Запрос к веб-службе обычно имеет следующий вид: "http://maps. googleapis.com/maps/api/service/output? parameters", где serviceуказывает на запрашиваемую службу, а output указывает формат ответа (обычно json или xml).

Доступ к веб-службам Maps API также можно осуществлять по протоколу HTTPS. Для этого следует изменить протокол в URL запроса на https: "https: // maps. googleapis.com/maps/api/service/output? parameters". Этот протокол рекомендуется для работы с конфиденциальными данными пользователей, например, с данными об их местоположении.

В настоящее время при использовании Google Maps API во всех запросах к его библиотекам и службам нужно указывать, используется ли в приложении датчик (например, устройство GPS) для определения местонахождения пользователя. Это особенно актуально для мобильных устройств. Если в приложении Google Maps API используется какой-нибудь датчик для определения местонахождения устройства, на котором выполняется приложение, нужно объявить этот датчик, установив значение sensor параметра true.

APIGoogleMapsпредоставляет доступ к 5 основным веб-службам:

directions API;

distance Matrix API;

elevation API;

geocoding API;

places API.

Google Directions API - это служба, которая вычисляет маршруты между пунктами с помощью HTTP-запроса. В службеDirections пункты отправления и назначения могут указываться в виде текстовых строк (например, "Чикаго, Иллинойс" или "Дарвин, Новый Южный Уэльс, Австралия") либо как координаты широты и долготы. СлужбаDirections API может возвращать составные маршруты в виде последовательности путевых точек.

Эта служба должна вычислять маршруты для статичных (заранее известных) адресов для размещения содержания приложения на карте. Например, она не может отвечать на ввод пользователя в реальном времени.

Использование службы Google Directions API ограничено предельным дневным количеством запросов маршрута - 2 500. Отдельные запросы маршрутов могут содержать до 8 промежуточных путевых точек. Пользователи Google Maps Premier могут запрашивать до 100 000 маршрутов в день с количеством путевых точек в каждом запросе до 23.

Запрос к Directions API имеет следующий вид:

http://maps. googleapis.com/maps/api/directions/output? parameters,

где параметр output может принимать одно из следующих значений:

значение json (рекомендуется) - задает вывод в формате JavaScript ObjectNotation (JSON);

значение xml - задает вывод в формате XML.

Для доступа к Directions API по HTTPS:

https: // maps. googleapis.com/maps/api/directions/output? parameters.

Google DistanceMatrix API - это служба, предоставляющая информацию о расстоянии и времени пути для матрицы исходных и конечных точек. Информация предоставляется на основе данных о рекомендуемом маршруте между начальными и конечными точками, рассчитанном с помощью Google Maps API, и представляет собой строки, содержащие значения duration и distance для каждой пары точек.

Эта служба не возвращает подробные данные о маршруте. Чтобы получить информацию о маршруте, следует передать одну исходную и одну конечную точку вDirections API.

Количество элементов, передаваемых в запросе к DistanceMatrix API, ограничено. Оно вычисляется путем умножения количества исходных точек на количество конечных точек.

В отношении использованияDistanceMatrix API накладываются следующие ограничения:

элементов на запрос: 100;

элементов за 10 секунд: 100;

элементов за 24 часа: 2 500.

Для пользователей Google Maps API Premier установлены более высокие квоты:

элементов на запрос: 625;

элементов за 10 секунд: 1 000;

элементов за 24 часа: 100 000.

Пользователи Maps API Premier могут запросить увеличение квоты на платной основе, связавшись с менеджером по продажам Google Enterprise.

Количество символов в URL, передаваемых в Matrix API, не должно превышать 2048 (до кодирования URL).

Запрос кDistanceMatrix API имеет следующий формат:

http://maps. googleapis.com/maps/api/distancematrix/output? parameters.

Запросы от приложений, работающих с конфиденциальными данными пользователей, например, с данными об их местоположении, рекомендуется отправлять по протоколу HTTPS:

https: // maps. googleapis.com/maps/api/distancematrix/output? parameters.

В обоих случаях output может иметь следующие значения:

json (рекомендуется) - задает вывод в формате JavaScriptObjectNotation (JSON);

xml - задает вывод в формате XML.

Служба Elevation API обеспечивает данные о рельефности во всех точках на поверхности земли, включая глубины океана (в этом случае возвращаются отрицательные значения). Если у Google нет данных о высоте над уровнем моря в интересующей вас точке, служба использует интерполяцию и возвращает усредненное значение по четырем ближайшим точкам.

С помощью службыElevation API можно разрабатывать приложения для пешего и велосипедного туризма, приложения мобильного позиционирования или геодезические приложения низкого разрешения.

На использование GoogleElevation API накладываются ограничения в отношении количества запросов: не более 2500 в день (для пользователейPremier - не более 100 000 в день). В каждом запросе допускается указывать не более 512 местоположений, но не более 25 000 в день (1 000 000 - для пользователейPremier). Это ограничение предотвращает злоупотребление службойElevation API и использование этой службы в иных целях. В будущем ограничение может меняться без предварительного уведомления. Кроме того, для предотвращения злоупотреблений службой существует ограничение на количество запросов. В случае превышения суточного (24 часа) предела или иного злоупотребления службаElevation API может временно прекратить обслуживание. При неоднократных нарушениях этой квоты доступ к службеElevation API может быть заблокирован.

Для запросов по одной точке службаElevation API возвращает данные с максимальной точностью. Пакетные запросы по нескольким точкам могут возвращать данные с меньшей точностью, особенно если эти точки удалены друг от друга, так как происходит сглаживание данных.

Задать точки можно двумя способами:

как набор из одного или нескольких местоположений locations;

как последовательность соединенных точек вдоль пути path.

Каждый из этих методов использует координаты широты и долготы для определения местоположения или точек маршрута.

URL для службы GoogleElevation API должен иметь следующий формат: http://maps. googleapis.com/maps/api/elevation/outputFormat? parameters.

GoogleGeocoding API. Геокодирование - процесс преобразования адресов (таких как 1600AmphitheatreParkway,MountainView, CA) в географические координаты (такие как широта 37,423021 и долгота - 122,083739), которые можно использовать для размещения маркеров или позиционирования карты. Служба GoogleGeocoding API предоставляет прямой доступ к геокодеру посредством HTTP-запроса. Также эта служба позволяет выполнять обратное действие (перевод координат в адреса). Этот процесс называется "обратное геокодирование".

Использование службы Google Geocoding API ограничено. Максимальное количество запросов геопозиционирования в день - 2500. Количество запросов для пользователей Google Maps API Premier - 100 000.

Запрос к службеGeocoding API должен выглядеть следующим образом:

http://maps. googleapis.com/maps/api/geocode/output? parameters,

где параметр output может принимать одно из следующих значений:

значение json (рекомендуется) - задает вывод в формате JavaScriptObjectNotation (JSON);

значение xml - задает вывод в формате XML.

Для доступа кGeocoding API по HTTPS:

https: // maps. googleapis.com/maps/api/geocode/output? parameters.

В обоих случаях часть параметров указывать обязательно, а часть - нет. Параметры разделяются амперсандами (&), что является стандартом для всех URL. Ниже представлен список параметров и их допустимых значений.

СлужбаGeocoding API определяет запрос на геокодирование при помощи следующих параметров URL:

address (обязателен) - адрес, который нужно геокодировать;

latlng (обязателен) - текстовое значение широты/долготы, для которого следует получить ближайший понятный человеку адрес;

bounds (необязателен) - квадрат поиска для области просмотра, внутри которого должно быть более четкое предпочтение результатов геокодирования;

region (необязателен) - код региона, указанный в виде двузначного числа ccTLD (домен верхнего уровня);

language (необязателен) - язык, на котором следует возвращать результаты. Список языков постоянно пополняется и не является исчерпывающим. Если определенный language не поддерживается, геокодер попробует использовать базовый язык домена, из которого запрос можно отправить куда угодно;

sensor (обязателен) - указывает, исходит ли запрос на геокодирование от устройства с датчиком местоположения. Допустимые значения - true или false.

GooglePlaces API - это служба, которая возвращает информацию о местах (этим термином в рамках данного API обозначаются организации, географические местоположения или достопримечательности) с помощью HTTP-запросов. Местоположения в запросах указываются с помощью координат широты и долготы.

Существует четыре основных вида запросов мест:

поиски места возвращают список близлежащих мест на основе местоположения пользователя;

запросы описаний мест возвращают более подробную информацию об отдельных местах;

запросы посещения места позволяют сообщить, что пользователь отметился в определенном месте. Посещения используются для расчета популярности места. Чем чаще пользователи отмечаются в определенных местах, тем выше рейтинг этих мест в результатах поиска адресов в приложении;

отчеты о местах позволяют добавлять новые места в службу адресов и удалять добавленные местоположения.

Если приложение отображает данные изPlaces API на странице или в представлении, где отсутствует карта Google, обязательным условием является показ логотипа "Poweredby Google" рядом с этими данными. Так, если на одной вкладке приложения отображается список мест, а на другой - карта Google с маркерами этих мест, то на первой вкладке должен также отображаться логотип "Poweredby Google". Рекомендуется размещать логотип над результатами на одном уровне с правой границей списка мест.

Ответы на запросы кPlaces API могут содержать информацию о поставщике списков данных. Эту информацию необходимо показывать пользователям. Рекомендуется размещать ее под результатами поиска или под описанием места.

Places API позволяет осуществлять два типа поиска: поиск мест, при котором возвращается список мест, расположенных поблизости от указанного пользователем местоположения, а также искатьописание места, при котором возвращается более подробная информация о конкретном местоположении.

Запрос поиска места - это HTTP URL в следующем формате:

https: // maps. googleapis.com/maps/api/place/search/output? parameters,

где параметр outputможет принимать одно из следующих значений:

значение json (рекомендуется) - задает вывод в формате JavaScriptObjectNotation (JSON);

значение xml - задает вывод в формате XML.

Для инициации запроса поиска места необходимо задать определенные параметры. Параметры разделяются амперсандами (&), что является стандартом для всех URL. Ниже представлен список параметров и их допустимых значений.

location (обязательный) - широта и долгота местоположения, в окрестностях которого следует искать места. Эта информация должна быть указана как объектgoogle. maps. LatLng.

radius (обязательный) - расстояние в метрах, в пределах которого должны быть получены результаты для мест. Значение для radius рекомендуется задавать в зависимости от точности сигнала о местонахождении, передаваемого датчиком местоположения. Следует учесть, что при заданном значенииradiusотдается предпочтение результатам в указанной области, однако строгое ограничение отсутствует, и могут отображаться также результаты за пределами этой области.

types (необязательный) - ограничивает результаты местами, тип которых соответствует хотя бы одному из указанных. Типы следует разделять вертикальной чертой (type1|type2|etc).

language (необязательный) - код языка, указывающий, на каком языке следует по возможности возвращать результаты. Список языков постоянно пополняется и не является исчерпывающим.

name (необязательный) - ключевое слово, которое должно присутствовать в названии места. Результаты будут ограничены только теми местами, которые содержат переданное значение name. При использовании элементаnameрекомендуется расширить область поиска для получения достаточного количества результатов.

sensor (обязательный параметр) - указывает, поступил ли запрос места от устройства, использующего датчик местоположения (например, GPS) для определения местоположения, отправленного в этом запросе. Допустимые значения - true или false.

key (обязательный) - ключ API вашего приложения. Этот ключ служит для идентификации вашего приложения с целью управления квотами. Помимо этого он позволяет сразу же делать доступными для вашего приложения места, которые были добавлены в нем. Чтобы создать проект API и получить ключ необходимо посетить консоль API.

В примере ниже демонстрируется поиск мест с типом "food" в радиусе 500 метров от точки в Сиднее, Австралия, в названии которых содержится слово "harbour": https: // maps. googleapis.com/maps/api/place/search/json? location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyAiFpFd85eMtfbvmVNEYuNds5TEF9FjIPI.

Запрос описания места - это HTTP URL в следующей форме: https: // maps. googleapis.com/maps/api/place/details/output? parameters, где параметр output может принимать одно из следующих значений:

значение json (рекомендуется) - задает вывод в формате JavaScriptObjectNotation (JSON);

значение xml - задает вывод в формате XML.

Для инициации запроса поиска места необходимо задать определенные параметры. Параметры разделяются амперсандами (&), что является стандартом для всех URL. Ниже представлен список параметров и их допустимых значений.

reference (обязательный) - текстовый идентификатор, который уникальным образом обозначает место, возвращенное по запросу поиска места.

language (необязательный) - код языка, указывающий, на каком языке следует по возможности возвращать результаты.

sensor (обязательный) - указывает, исходит ли запрос описания места от устройства, использующего датчик местоположения (например, GPS). Допустимые значения - true или false.

key (обязательный) - ключ API приложения. Этот ключ служит для идентификации приложения с целью управления квотами. Помимо этого он позволяет сразу же делать доступными для вашего приложения места, которые были добавлены в нем.

APIGoogleMapsпредоставляет широкий спектр возможностей и продолжает развиваться. В ближайшее время появится два новшества: во-первых, карты могут работать в новом трехмерном режиме, а во-вторых, пользователи смогут скачивать карты и использовать их без доступа к интернету [11].

2. Выбор среды разработки

Система управления веб-содержимым (WebContentManagementSystem или WCMS) - программный комплекс, предоставляющий функции создания, редактирования, контроля и организации веб-страниц. WCMS часто используются для создания блогов, личных страниц и интернет-магазинов и нацелены на пользователей, мало знакомых с программированием.

Для получения навыков программирования и практического опыта использования WCMS один из сайтов будет создан "вручную" в программеAdobe Dreamweaver, а второй с использованием WCMS.

В мире существуют тысячи CMS для самых разных целей, самого разного качества, самой разной перспективы, стоимости, распространённости и так далее. Выбрать одну из них очень сложно. Преимущество отдаётся бесплатным проектам. Основные типы CMS [10]:

CMS общего назначения. Информационные сайты, визитки, блоги;

многофункциональные системы;

галереи;

социальные сети;

форумы;

Интернет-магазины.

Так как создаваемые сайты требуют широких возможностей, то ниже будут подробно рассмотрены многофункциональные CMS.

Многофункциональность этих систем заключается в том, что к ним существует огромное количество плагинов, за счёт чего можно построить портал, мультиблог, магазин, галерею, социальную сеть, либо всё это в совокупности.

Существует три тесноконкурирующих бесплатных системы создания сайтов: WordPress, Joomla и Drupal.

Если попытаться дать краткую обобщенную характеристику и попытаться выстроить системы по простоте освоения (именно освоения, а не пользования), то с одного края будет стоять WordPress, для освоения которого практически не надо прикладывать никаких усилий, а с другого края Drupal, для работы с которым требуется не только изучение документации, но и определенные навыки разработки. Но при этом круг задач, которые можно реализовать на WordPress будет довольно ограничен, а сфера применения Drupal будет ограничена не возможными задачами, а только нагрузкой, которую сможет выдержать сайт.

Joomlaявляется наиболее универсальным инструментом. С ней нельзя начать работать как с WordPress без подготовки, придется потратить определённое время на изучение принципов работы. Но при этом от пользователя не потребуется никаких специфических знаний, а круг задач, которые можно реализовать на Joomla, практически так же неограничен, как в случае Drupal.

Сказанное можно проиллюстрировать следующим примером. Если необходимо создать на сайте каталог компакт дисков или онлайн магазин, то в Drupal эта задача может быть решена средствами самого Drupal, в Joomla она решается только установкой внешнего компонента, а вот в WordPress эта задача разумными средствами уже не реализуется. В то же время, если необходимо создатьчастный блог, то трудоемкость создания такого блога на WordPress будет чуть ли не на порядок ниже, нежели в Joomla или Drupal.

Разумеется, для каждой из систем существует множество расширений, позволяющих реализовывать огромное количество функций. Однако ни одно из этих расширений не позволяет обойти ограничения архитектуры, которая заложена в систему.

Так, например, в Joomlaпредусмотрена только двухуровневая организация материалов: разделы и категории, и большеможно получить лишь установив дополнительные плагины - например, плагин "К2". В Drupalже можно выстроить многоуровневую архитектуру, а вот в WordPress никакой организации структуры для публикуемых материалов не предусмотрено, все приходится организовывать только через ключевые слова (тэги).

2.1 Система управления веб-содержимым WordPress

WordPress - это не столько CMS, сколько система управления онлайновым дневником - блогом. Но огромное количество бесплатных расширений-плагинов позволяет создать на WordPress достаточно крупные сайты, возможности которых выходят далеко за возможности обычного блога. Главным достоинством WordPress является простота освоения. Это дополняется простотой создания шаблонов дизайна и простотой установки дополнений. WordPress - крайне дружественная система, как по отношению к пользователю, так и к разработчику.

Главный же недостаток ее является оборотной стороной простоты - это архитектура функционально ограниченная под публикацию именно блогов - даже никой рубрикации размещаемых материалов не предусматривается, не говоря уже о наличии инструментов для создания меню и генерации полноценных оглавлений. А простота интеграции расширений оборачивается проблемами совместимости и возникновением внутренних системных конфликтов между расширениями.

WordPress очень хорош, и порой даже не имеет альтернатив, когда нужно создать однопользовательские или многопользовательские блоги или сайт, на который просто выкладывается поток материалов. Но если необходимо, чтобы эти материалы были органично организованы по рубрикам и датам, иметь возможность автоматически генерировать оглавления или какие-то иные дополнительные возможности, то следует сразу обратить внимание на две другие системы, потому что наращивать функциональность WordPress при помощи внешних расширений имеет смысл лишь до каких-то пределов. По мере установки новых плагинов в какой-то момент можно столкнуться с ситуацией, когда от простоты работы с WordPress не осталось и следа, а хостинг перестал справляться с нагрузкой. WordPress предназначен для установки на собственном веб-сервере или на сервере хостера, который предоставляет полный контроль над блогом [30].

2.2 Система управления веб-содержимым Drupal

Drupalв какой-то мере является полной противоположностью WordPress. Даже без установки внешних расширений можно расширять функциональность сайта на нем в очень широких пределах, а при установке расширений - практически беспредельно. В то же время для работы с Drupalне только придется тщательно изучить документацию, но и обладать хорошими навыками веб-разработки.

Существенным плюсом системы является поддержка ApacheorIIS, Unix, Linux, BSD, Solaris, Windows, MacOSX. Drupal является мульти-платформенной системой. Он не поддерживает только Apache или только Microsoft IIS, его можно запустить на различных ОС: Linux, BSD, Solaris, Windows и Mac OS X.

Еще одни плюс - это независимость от базы данных. Большинство людей использует базу данных MySQL, но такое решение подходит не для всех. Drupal может работать с разными базами данных. Существуют решения для использования Drupal с MySQL и PostgreSQL, но можно написать код для использования Drupal и с другими базами данных [27].

На системе Drupal создано много корпоративных сайтов известных фирм и множество известных СМИ (например, сайт [26]), что способствует закреплению за этой системой репутации профессионального инструмента сверхвысокой надежности. Drupal лишен специфических особенностей, необходимых профессиональным CMS (прежде всего отсутствие средств оптимизации под высокие нагрузки и работы с профессиональными базами данных), а его широкое использование для "серьезных" проектов обусловлено в первую очередь широкой популярностью этой CMS в среде разработчиков "среднего звена".

По большому счету Drupalимеет смысл использовать тогда, когда нужно сделать сайт "на перспективу", с запасом, такой, который предполагается развивать, расширять, дополнять новыми функциями. В этом случае будет наименьший риск столкнуться с ситуацией, когда нужно добавить на сайт новую опцию, а готового расширения для реализации такой функции нет. В этом случае всегда можно найти специалиста, который за относительно небольшие средства расширит сайт на Drupalв нужном направлении. В случае с Joomlaподобная доработка будет проблематична, а в случае с WordPress будет вообще невозможна.

2.3 Система управления веб-содержимым Joomla

Joomlaпредставляет собой разумный компромисс, между двумя крайностями: WordPress и Drupal. Подобно Drupal, функциональность сайта на Joomlaможно расширять практически бесконечно за счет внешних расширений, причем, в отличие от WordPress, сколько бы этих расширений не устанавливалось, они никак не утяжеляют систему. Сильной стороной Joomlaявляется огромное количествопрофессиональныхшаблонов дизайна. Причем внешний вид этих шаблонов можно регулировать из контрольной панели, так что даже два сайта с одним и тем же дизайном могут быть внешне совершенно непохожи.

Подобно WordPress, Joomlaне требует от создателя сайта каких-либо знаний в области веб-разработок и какой-либо специфической квалификации.

Но в то же время, в отличие от WordPress, пользователю придется потратить несколько часов на изучение архитектуры Joomla.

Если установив WordPress можно сразу же нажать кнопку "опубликовать материал" и работать на интуитивном уровне, то в Joomlaпрежде необходимо задать для этого материала раздел и категорию. Для привязки к менюнужно прежде разобраться с системой меню, их созданием и настройкой. Добавляя в меню пункт, ведущий на оглавление материалов рубрики, придется выбрать тип такого оглавления: делать ли его в виде блога или в виде таблицы [22].

2.4 HTML-редактор AdobeDreamweaver

Dreamweaver - WYSIWYG HTML-редактороткомпании Adobe. Изначально разработан и поддерживался компанией Macromedia, вплоть до 8-й версии (2005 г.). Следующие версии, начиная с Dreamweaver CS3 (2007 г.), выпускаетAdobe [25].

Dreamweaver включает в себя много инструментов и средств для редактирования и создания профессионального сайта: HTML, CSS, JavaScript, отладчик JavaScript, редакторы кода (просмотр кода и инспектор кода), что позволяет редактировать JavaScript, XML и другие текстовые документы, которые поддерживаются в Dreamweaver. ТехнологияRoundtrip HTML импортирует документы HTML без переформатирования кода [23].

3. Создание веб-сервиса

3.1 Веб-сервис с использованием Яндекс. Карт

Огромное количество магазинов, предоставляющих широкий ассортимент товаров, могут сбить с толку покупателей при выборе места покупки. Обойти их все для выбора оптимальной конфигурации и выгодной цены займет не один час. Поэтому в качестве первой части дипломного проекта было принято решение создать единую легко обновляемую базу товаров города Краснодара. Для доступа пользователей к базе создать веб-сервис с нанесением результатов поиска товаровна карты компании "Яндекс" для лучшей визуальной оценки.

В качестве исходных данных использовались прайс-листы крупных магазинов города в формате MicrosoftExcel (рисунок 1).

Рисунок 1 - Прайс-лист магазина "Владос"

Для хранения всей собранной информации необходимо создать базу данных. База данных была создана в СУБД MySQL, для администрирования базы данных использовалось веб-приложение с открытым кодом "phpMyAdmin" (рисунок 2).

Рисунок 2 - База данных в MySQL

СУБД - это программный комплекс, который управляет базой данных, то есть берет на себе все низкоуровневые операции по работе с файлами, благодаря чему программист при работе с базой данных может оперировать лишь логическими конструкциями при помощи языка программирования, не прибегая к низкоуровневым операциям [1].

В базе данных были созданы две таблицы: магазины и продукты. В таблице с информацией о магазинах хранится название, адрес, а также координаты xи y. Для точного отображения магазинов на карте и в виду их относительно небольшого количества, координаты определялись с помощью сервиса Яндекс (рисунок 3).

Рисунок 3 - Определение координат в "Яндексе"

После заполнения таблицы магазинов нужно внести информацию о товарах. Так как наименований продуктов несколько тысяч, то вносить их вручную каждый раз, когда происходит обновление ассортимента магазина, не рационально. Поэтому для заполнения базы данных использовалась программа "TotalExcelConverter" (рисунок 4).

Рисунок 4 - Программа "TotalExcelConverter"

В результате обработки файла прайс-листа получался файл в формате csv, данные из которого можно импортировать в базу данных MySQL. Структура файла показана на рисунке 5.

Рисунок 5 - Подготовленный для импорта прайс-лист

Для импорта необходимо открыть таблицу в phpMyAdmin, перейти на вкладку "Импорт" и выбрать полученный ранее csvфайл (рисунок 6).

Рисунок 6 - Импорт данных в базу данных

После создания и заполнения базы данных можно переходить к написанию приложения.

Внешний вид и структура сайта были написаны на HTML.

HTML (HyperTextMarkupLanguage) - это язык разметки документа, описывающий форму отображения информации на экране компьютера [2].

Код приложения написан на двух языках программирования: PHP и JavaScript.

JavaScript - это интерпретируемый язык программирования с объектно-ориентированными возможностями. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Когда интерпретатор JavaScript встраивается в веб-браузер, результатом является клиентский JavaScript, который исполняется на клиентском компьютере, а не на веб-сервере [4]. Именно на этом языке программирования написаны все функции APIЯндекс. Карт, что и объясняет его использование в работе. Однако, так как сценарии, написанные на нем, касаются только клиентской части, то его невозможно использовать для доступа к базе данных, которая находится на сервере. Для выборки данных был использован язык PHP.

PHP - скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. Этот язык создан специально для Web и может внедряться в HTML.

PHP отличается от других подобных языков, в особенности от клиентского JavaScript, тем, что код выполняется на сервере. Если есть скрипт на сервере, то клиент получит результат работы этого скрипта, не имея возможности определить, каков был исходный код [15].

В итоге был создан веб-сервис "Карта товаров" (рисунок 7).

Рисунок 7 - Главная страницавеб-сервиса "Карта товаров"

Для поиска нужного товара нужно ввести запрос в поле, расположенное в левом верхнем углу и нажать кнопку "Найти".

После этого в левой части экрана отобразится список найденных товаров, а на карте будут отмечены все магазины, в которых он есть в наличии (рисунок 8).

Рисунок 8 - Результаты поиска

При нажатии на пункт списка происходит центрирование карты на магазине, где есть данный товар (рисунок 9). При этом отображается название магазина и цена товара.

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

При переходе по ссылке на сайт магазина, можно посмотреть более подробную информацию о товаре, а также сделать предварительный заказ.

3.2 Веб-сервис с использованием карт Google

Во всех районах Краснодарского края построено множество гостиниц самых разных уровней. Миллионам отдыхающих каждый год непросто подобрать жилье по их требованиям и уровню дохода. Именно поэтому был создан веб-сервис, на котором собрана информация о гостиницах, отелях и пансионатах самого популярного курорта края - Анапы.

В качестве платформы разработки была выбрана бесплатная CMSJoomla. База данных была создана с помощью СУБД MySQL, ее администрирование проводилось с помощью "phpMyAdmin" (рисунок 12).

Рисунок 12 - Веб-приложение "phpMyAdmin"

Для удобства работы и создания сайта были установлены следующие плагины и модули:

"PHP Module". Любой сторонний код, добавляемый при создании материалов, будет удален редакторомJoomla. Это особенность работы визуального редактора, введённая в целях обеспечения безопасности. Модуль "PHP Module" позволяет добавлять любой HTML, JavaScript, CSS и PHP код, как модуль сайта Joomla.

"mavikThumbnails". Этот плагин генерирует иконки для изображений. Нужно вставить в текст большое изображение и уменьшите его до необходимого размера. Плагин автоматически создаст иконку нужного размера и поставит ссылку на оригинальное изображение.

"WysiwygPro 3". Редактор для статей в Joomla.

"yvtransliterate". Плагин транслитерирует псевдонимы статей и других элементов Joomla, что используется при поисковой оптимизации (Searchengineoptimization, SEO) для автоматического создания ссылок, "дружественных" для поисковых сервисов (Searcheenginefriendly, SEF) [21].

K2 - это система построения контента сайта, которая позволяет создавать любой тип контента на сайте Joomla [20].

На основе модуля "PHP Module" был создан модуль "Карта" (рисунок 13).

Рисунок 13 - Модуль "Карта"

4. Размещение веб-сервисов в сети интернет

После анализа возможностей популярных бесплатных хостингов был выбран вариант от компании"Freewebhostingarea" [5]. Плюсы их предложения:

учетная запись никогда не будет удалена, если в течение месяца на сайт будет заходить хотя бы один человек;

бесплатный хостинг работает на мощных серверах (от 8 до 24 Гб оперативной памяти);

1500 Мб бесплатного дискового пространства для сайта;

12 Мб ограничение на размер файлов;

поддержка собственного доменного имени;

неограниченное количество поддоменов;

бесплатное доменное имя третьего уровня;

разрешено загружать файлы любого типа;

ежемесячный трафик без ограничений;

резервное копирование данных каждый день и каждую неделю;

без рекламы для сайтов с малой посещаемостью;

бесплатно PHP версии 5.2.13;

функции mail (), curl, magickwand, sockets, xml, xsl, soap, pdo;

библиотека GD2;

поддержка ImageMagick;

возможность включать или выключать параметр register_globals;

параметр safe_mode по умолчанию выключен;

поддержка Zend Optimizer и Ioncube;

бесплатная поддержка баз данных MySQL версии 5.1.46;

неограниченный объем дискового пространства для базы данных;

управление базой данных с помощью phpMyAdmin;

3 базы данных MySQL;

файловый менеджер;

HTML редактор WYSIWYG;

возможность задавать права доступа для файлов, создавать папки, создавать файлы, переименовывать файлы, добавлять файлы в архив и распаковывать архивы;

предустановленные CMS и форумы: Joomla, phpBB3, SMF, WordPress, Drupal, Mambo;

mod_rewrite (apache 2.2);

возможность редактировать файлы. htpasswd и. htaccess;

возможность обнулять настройки хостинга;

готовые страницы ошибок 403.html и 404.html;

полный FTP доступ к бесплатному хостингу;

доступ к FTP через web-приложения;

динамическая сборка страниц на стороне сервера (SSI);

автоматическое создание учетной записи (хостинг доступен сразу после регистрации);

бесплатная 24/7 техническая поддержка;

поддержка POP3/IMAP почтовых протоколов [19].

При создании нового сайта многие разработчики сначала устанавливают Joomla на локальную машину, настраивают все необходимые дополнения (компоненты, модули и так далее.), а уже потом переносят на удаленный сервер.

Для переноса сайта с локальной машины на удаленный сервер нужно выполнить следующие действия:

На локальной машине, нужно экспортировать таблицы базы данных с локального сервера с помощью, например, "phpMyAdmin" в файл типа. sql (рисунок 16).

Рисунок 16 - Экспорт базы данных

На удаленном сервере произвести импорт таблиц из полученного файла (рисунок 17).

Рисунок 17 - Импорт базы данных

Загрузить все файлы (кроме директории "installation") с локального компьютера на сервер через FTP. Файлы из папки "Cache" также переписывать не надо, просто создать такую папку на сервере.

FTP - это протокол передачи файлов (в английском варианте - FileTransferProtocol), который позволит подключиться к FTP-серверу хостинга. После подключения появляется возможность производить различные действия с хранящимися у хостера файлами и папками сайта:

загружать файлы или папки посредством FTP-клиента как с сервера хостера на компьютер, так и наоборот;

редактировать файлы, находящиеся на сервере, просто открыв их в редакторе, установленном на клиентском компьютере (например, при помощи "Notepad++");


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

  • Идеи по использованию сервисов поисковой системы Google для совместной работы с учащимися в блоге "Учимся с Google". Организация коллективной деятельности с помощью сервисов Google. Характеристика функций основных сервисов, их достоинства и недостатки.

    реферат [24,5 K], добавлен 27.11.2012

  • Изучение истории и выявление ключевых точек развития сервисов Google. Определение назначения и функциональных возможностей Google Docs. Демонстрация возможностей приложения "Документ" сервиса Google Docs на примере разработки поздравительной открытки.

    курсовая работа [3,0 M], добавлен 22.05.2013

  • Разнообразие сервисов и инструментов от компании Google - крупнейшей поисковой системы сети Internet: Web-интерфейс почтовой службы Gmail, картографический сервис Google Maps, универсальность переводчика Google Translate, видеохостинг от YouTube.

    доклад [15,9 K], добавлен 21.05.2012

  • Анализ возможностей поисковых систем Яндекс и Google, их сравнение с точки зрения полезности. История создания поисковых систем, характеристика их интерфейса, поисковых инструментов и алгоритмов. Формирование вопроса и критерий к ответу на него.

    реферат [30,0 K], добавлен 07.05.2011

  • Рассмотрение эффективности корпоративной сервисной шины и веб-сервисов. Ознакомление со стеком технологий веб-сервисов. Исследование и характеристика процесса взаимодействия между потребителем и провайдером сервиса, который задается с помощью интерфейса.

    дипломная работа [596,0 K], добавлен 22.08.2017

  • История термина энергия, ее виды. Исследование потенциальных источников энергии в Казахстане: производство, потребители, энергетические компании. Назначение картографического сервиса Google Map. Создание интерактивной карты размещения источников энергии.

    курсовая работа [69,7 K], добавлен 10.12.2014

  • Актуальность, полнота и корректность предоставляемой информации как показатели эффективности использования пользовательских картографических сервисов. Методы повышения актуализации и корректности информации, находящейся в веб-сервисах картографии.

    курсовая работа [1,5 M], добавлен 02.12.2017

  • Эволюция облачных сервисов. Характеристики и классификация облачных сервисов. Анализ возможностей облачных сервисов, предлагаемых для использования в малом бизнесе. Анализ стоимости владения локальным решением по автоматизации деятельности бухгалтерии.

    курсовая работа [2,7 M], добавлен 10.05.2015

  • Исследование организационно-управленческой структурной схемы СевКавГТУ. Пути реализации интерактивных сервисов доступа к телефонному справочнику учреждения. Выбор среды разработки Eclipse, СУБД и языка программирования Python для разработки базы данных.

    дипломная работа [6,5 M], добавлен 29.06.2011

  • Особенности создания набора web-сервисов, учитывающих функцию кредитоспособности покупателя. Учет возможности управления статусом заказа. Анализ функциональной декомпозиции системы. Использование разработанных сервисов и технологий, их эффективность.

    курсовая работа [2,0 M], добавлен 24.02.2012

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