Які технології та набори навичок повинен той, хто хоче займатися веб-розробкою ГІС?
Один навик / технологія на відповідь, будь ласка.
Які технології та набори навичок повинен той, хто хоче займатися веб-розробкою ГІС?
Один навик / технологія на відповідь, будь ласка.
Відповіді:
Я можу розповісти вам про мій досвід, який розпочав як простий географ, намагаючись використовувати продукти ГІС для просторового аналізу.
Як я вже говорив, я географ, і з самого початку в коледжі я почав працювати з ГІС як користувач. Після цього я почав досліджувати, як автоматизувати нудні завдання, які мені доводилося часто робити. Це стало захопленням, і через 3 три роки я працюю в багатонаціональному домі програмного забезпечення, яке працює з багатьма системами ГІС та розробляє власні рішення.
Мої кроки :
Навчіться ГІС добре. Не починайте вивчати програмування, не маючи основного права. Проекції та перетворення, просторовий аналіз, відмінності між растровою та векторною моделлю тощо.
Вивчіть основи бази даних: Вступ до систем баз даних , Основи систем баз даних . Дві книги трохи відрізняються. Перший важкий для теорії, другий - більш практичний підхід.
Вивчіть SQL. Це насправді друга частина до першої. Це дуже допоможе вам, якщо ви почнете мислити "складно". SQL змінюється від постачальника до постачальника. Я можу порекомендувати вам PostgreSQL, який є самим постачальником, який найбільше відповідає стандарту. Якщо вам потрібно вивчити конкретні діалекти, робіть це пізніше, коли вам це справді потрібно.
Об'єктно-орієнтоване програмування. Це здається викликом, але це досить просто, коли ви зрозумієте основи. Виберіть просту мову для цього. Python на сьогоднішній день найпростіший. Навчання Python є відмінною відправною точкою. Є відкриті джерела / безкоштовні книги Python, як-от занурення в Python . Після Python цікавими є варіанти .NET, Java та C / C ++.
Вивчення програмування. Читати код, писати код. Прочитайте геопросторовий код. Напишіть геопросторовий код. Вивчіть класичні API: GEOS, JTS, GDAL, ArcObjects (якщо ви любитель ESRI - і це великий плюс на ринку) тощо.
- Візьміть геопросторову проблему та напишіть код для її вирішення. Я не можу підкреслити, наскільки це корисно. Це зведе з розуму, але це дуже хороший спосіб підтвердити, що ви вивчили сторону програмування та переконатися, що ваші геопросторові навички актуальні. У моєму випадку я написав невелику програму PostgreSQL для геокодування дорожньо-транспортних пригод.
Продовжуйте вчитися. Стандарти OGC - приємний вибір тут.
Знайте свій шлях навколо баз даних. Будь-який розробник ГІС буде широко використовувати їх.
Дуже помітно:
Якщо припустити, що у вас вже є речі, що стосуються ГІС (картографічні принципи тощо), спершу я б поїхав на сторінку http://www.w3schools.com/ - Пробігте підручники в HTML, Javascript, XML тощо
Тоді у вас є кілька різних платформ на вибір. Я трохи упереджений до ESRI, і я б рекомендував почати, граючи про API
http://resources.arcgis.com/content/web/web-apis
- Пробігши поняття / зразки, ви справжнє розумієте, що ви можете досягти.
Я вважаю, що завантажувати зразки коду та інвертувати їх для роботи з власними службами (якщо припустити, що у вас є екземпляр ArcGIS Server, інакше ви можете використовувати зразки серверів ESRIs) - хороший спосіб навчитися.
Також є безліч відео, погляньте на це відео на відео конференції. Я рекомендую Огляд API ArcGIS для JavaScript, кращі практики проектування ефективних сервісів карт, перепроектування настільних додатків для Інтернету та використання API REST ArcGIS Server.
Яку веб-платформу ви б обрали? Я ігнорую, дивлячись на WebADF (Java / NET), оскільки це буде поступово припинено.
Хто ваші клієнти? якими браузерами вони користуватимуться? Чи можуть вони встановити плагіни Silverlight або Flash? У вас є якісь ІДЕ, які можна розвивати? наприклад, Flex найкраще в FlashBuilder ($$), але ви також можете використовувати FlashDevelop, який є альтернативою з відкритим кодом.
Вам зручніше із усталеними технологіями чи новими технологіями? Зважте ризики.
- .NET / Java існують впродовж віків - Silverlight & Flex є досить новими, і існує певна дискусія щодо того, чи HTML 5 знищить ці платформи
І Silverlight, і Flex мають більшу інтерактивність поза межами коробки, оскільки Javascript доповнює цю прогалину, спираючись на Dojo.Framework.
Велика різниця у функціональності між веб-ADF та веб-API полягає в тому, що веб-API ArcGIS є повністю клієнтськими.
Я залишу когось іншого, щоб дати відповідь менш ESRI, але очевидний вибір - почати грати з API Карт Google - для цього достатньо ресурсів / навчальних посібників.
Javascript, HTML DOM, CSS, HTTP
Якщо ви освоїте їх, ви можете робити все, що завгодно в Інтернеті. Додавання таких приємних API, як SVG, можливо, полегшить вашу роботу та веб-додатки, але IMO ви ніколи не зможете обійти чотири перераховані вище.
Якщо припустити, що вам вдалося розібратися у вашому просторовому БД та сервері карт [описано в інших відповідях тут] та підтвердити свої знання щодо HTML, CSS та JavaScript, ви можете почати спілкуватися з клієнтськими бібліотеками, які будуть споживати та відображати компоненти карт у веб-браузері користувача.
Напевно, OpenLayers - це найбільше посилається та використовувана бібліотека. У ньому є досить хороша документація та приклади, і ви можете знайти кілька навчальних посібників, наприклад тут . Сторінки BostonGIS також будуть корисні для вас тут, не тільки для матеріалів OpenLayers.
Залежно від ваших знань / бажання вивчити Python MapFish також дуже витончене рішення. Або ви можете зануритися в GeoDjango , однак я не можу багато коментувати це рішення.
Крім того, ви можете подивитися на рішення веб-картографічних систем OSGeo , звернутися до Flash або використовувати щось комерційне, наприклад, веб-API ESRI .
Я погоджуюся з Адамом, що просторові БД і SQL повинні бути вихідною точкою.
Після цього, можливо, варто переглянути другий рівень майбутнього веб- геостака . Вам потрібно буде щось діяти як міст, що "обслуговує" ваші дані від просторової БД до клієнта у браузері користувачів.
Переконайтеся, що ви розумієте поняття WFS та WMS .
Встановіть та почніть грати локально із власним сервером. Два добре відомі проекти, які охоплені Фондом геопросторів з відкритим кодом, - це GeoServer та MapServer . QGIS mapserver, можливо, варто також переглянути. Сервер ArcGIS був би [дорогим!] Комерційним еквівалентом тут.
Після того як ви розберете цю частину, ви можете почати грати з клієнтськими бібліотеками.
Mapnik або будь-який інший інструмент візуалізації карти для створення плиток карти.
Практично будь-якому веб-розробнику GIS потрібно було б використовувати засоби візуалізації карт або хоча б зрозуміти основні поняття шарів та плиток.
Я не можу наголосити на другому останньому коментарі Джорджа. Виберіть геопросторову та / або веб-проблему, яка вас цікавить, і дізнайтеся про необхідні технології під час її вирішення.
Якщо ви знайдете час, щоб проникнути в усі сфери, перелічені вище, це буде назавжди, перш ніж ви насправді розпочнете створення проекту, який чухає ваш свербіж.
Я б запропонував почати зі створення програми, використовуючи OpenLayers, щоб створити додаток, зіставляючи дані з деяких існуючих служб даних. Потім можна перейти до створення власних джерел даних або послуг. Якщо ви будете дотримуватися технологій FLOSS, ви зможете створювати та використовувати свої програми в будь-якому місці без проблем з ліцензією.