Уже изрядное
время я занят разработкой вьювера
(сегодня известного в узких кругах как
Картобонус)
на базе ArcGIS
Viewer for Silverlight. Когда-то наш клиент
выразил заинтересованность в таком
вьювере и мы начали работы. Клиент давно
уж соскочил, а мы до сих пор пытаемся из
этого что-то выжать. А ведь Esri предлагает
и другие
варианты для работы с веб-картами.
Сначала вобью
гвоздь в гроб Silverlight. Самая большая
проблема связанная с использованием
Silverlight, это привязка к решениям Microsoft.
Грубо говоря, сильверлайтные программы
работают только на MS Windows. С другими
недостатками можно мириться или бороться
или обходить их. Но привязку к MS Windows
побороть невозможно.
ОК, закрыли
тему Silverlight.
Посмотрим на
ArcGIS
Viewer for Flex.
Есть Application
Builder
для работы
которого нужен рантайм Adobe AIR. Этот билдер
дает возможность в несколько щелчков
мышкой сформировать папочку с
картографическим веб-приложением. Если
есть MS IIS или Apache HTTPD, то сразу получаем
рабочую веб-карту. Клиенту, кроме браузера
с плагином flash, ничего не надо.
Билдер работает
несколько глюкаво, но генерирует вполне
приличные карты с хорошим набором
функций в обвязке ArcGIS Viewer for Flex.
Сравним с
решением на Silverlight.
Достоинства:
вьювер работоспособен не только на
винде; доступен открытый исходный код
вьювера; есть виджеты отсутствующие в
сильвере. Развертывание на сервере
проще; строить веб-карту легче. В галерее
виджетов есть уже 135 полезняшек
http://www.arcgis.com/home/search.html?q=flex%20viewer%20widget&t=content
Недостатки:
нет (пока не нашел?) виджета добавления
слоев; настройка и фильтрация данных
слоя отсутствует.
Некоторые
полезные доп.виджеты из галереи: редлайн
и измерения
http://www.arcgis.com/home/item.html?id=91a0014160fc4a9caadc2c7fd7089c1b
На этом про
Flex всё.
Третий вариант
из доступных трех — ArcGIS
API for JavaScript.
Для яваскрипт
нет билдера, такого как для флекс или
сильлвера. Но есть функция публикации
в ArcGIS Online http://www.arcgis.com/home/webmap/viewer.html
которая
позволяет скачать подготовленную в их
построителе карту в виде пакета для
развертывания у себя. А еще есть набор
шаблонов в галерее
http://www.arcgis.com/home/group.html?owner=esri_en&title=Web%20Application%20Templates
Их можно
использовать для того, чтобы не писать
веб-карту с нуля.
Для теста я
сделал веб-карту
http://www.arcgis.com/home/webmap/viewer.html?webmap=91721213e3854deb8b1e17c69f64ac36
Потом сохранил;
опубликовал 'Make a web application', выбрал шаблон,
'download'. На компе образовался пакет в виде
ZIP архива. Дальше все по инструкции,
показываемой в процессе сохранения.
Распаковал в
папку веб-сервера; почитал readme.html; внес
несколько правок в яваскрипты приложения.
Наступил на грабли.
Грабли положены
вокруг переменной sharingurl. Когда она не
определена, то не грузится карта с
сообщением «Unable to load
http://hostname/sharing/content/items/dbd1c6d52f4e447f8c01d14a691a70fe?f=json»
а как ее
правильно записать - не сказано. В форуме
(http://forums.arcgis.com/threads/5357-Sample-Javascript-Viewer?p=259888&viewfull=1#post259888)
нашлось решение,
переменная должна выглядеть так
sharingurl:
"http://www.arcgis.com/sharing/content/items"
Тогда все
работает как положено. Если не считать
за грабли некоторую неактуальность
readme.html, то на этом трудности заканчиваются.
Достоинства
и недостатки, по сравнению с Silverlight.
Достоинства:
вьювер на яваскрипт работает вообще
везде; очень быстрый цикл разработки —
не надо ничего компилировать и билдить;
не нужно покупать MS Visual Studio или Adobe Flash
Builder; доступна обширная коллекция
примеров и готовых решений
http://help.arcgis.com/en/webapi/javascript/arcgis/index.html;
вокруг полно спецов по яваскрипт.
Недостатки:
нет билдера для быстрого изготовления
веб-карт; собрать полнофункциональную
веб-карту трудозатратнее, чем для флекс
или сильвера. Такой красоты как на флексе
или сильвере, в яваскрипт достичь можно,
но это будет очень непросто. Доступ к
локальным ресурсам (диски на компе
пользователя) сильно затруднен или
вообще невозможен. В этом плане вьювер
на Flex забарывает всех.
Выводы.
Заполнять сайт
заказчика картами выгоднее с использованием
ArcGIS Viewer for Flex - Application Builder.
Разрабатывать
универсальные приложения на перспективу
логичнее на JavaScript.
Silverlight должен
умереть.
Вот такой
обзорчик получился.
original post http://vasnake.blogspot.com/2013/02/arcgis-web-maps.html
original post http://vasnake.blogspot.com/2013/02/arcgis-web-maps.html
Спасибо огромное, быстро и просто разьяснили. Особенно порадовала ссылочка на виджет Identify. Уже думал самому придётся писать - пронесло
ОтветитьУдалитьА тут и свежие новости про "Сильверлайт должен умереть":
ОтветитьУдалитьhttp://blogs.esri.com/esri/arcgis/2014/02/21/esris-roadmap-for-web-developers/
Given this shift in technology, Esri will aggressively encourage the use of the ArcGIS API for JavaScript to build custom and out of the box web applications. This year, we plan on advancing our JavaScript API to version 4.x to integrate new ArcGIS platform capabilities such as 3D visualization, enhanced vector rendering, and stream layers. We do not plan to add these new capabilities to the Flex and Silverlight APIs, which will remain at version 3.x.