Набори навичок веб-розробки GIS [закрито]


12

Які технології та набори навичок повинен той, хто хоче займатися веб-розробкою ГІС?

Один навик / технологія на відповідь, будь ласка.


4
Поговоріть про широке запитання ... чи можете ви звузити його до певного пакету програм? Есрі? FOSS? Просто шукаєте робити розстановку даних google / point?
Дерек Свінглі

Моє ліжко. ESRI чи FOSS, чи не можна мати обоє? Я сподіваюся, що щось складніше, ніж точкове розміщення. Достатньо вмінь робити щось подібне. opengeohost.com/maps/stlawrence
RK

1
Чудове запитання. Давайте мати один навик на відповідь.
Адам Матан

Дякую. Чудова ідея. Чи варто це поставити на запитання? Я щойно зрозумів, що питання може бути широким. Чи було б краще як вікі спільноти?
РК

Відповіді:


17

Я можу розповісти вам про мій досвід, який розпочав як простий географ, намагаючись використовувати продукти ГІС для просторового аналізу.

Як я вже говорив, я географ, і з самого початку в коледжі я почав працювати з ГІС як користувач. Після цього я почав досліджувати, як автоматизувати нудні завдання, які мені доводилося часто робити. Це стало захопленням, і через 3 три роки я працюю в багатонаціональному домі програмного забезпечення, яке працює з багатьма системами ГІС та розробляє власні рішення.

Мої кроки :

  • Навчіться ГІС добре. Не починайте вивчати програмування, не маючи основного права. Проекції та перетворення, просторовий аналіз, відмінності між растровою та векторною моделлю тощо.

  • Вивчіть основи бази даних: Вступ до систем баз даних , Основи систем баз даних . Дві книги трохи відрізняються. Перший важкий для теорії, другий - більш практичний підхід.

  • Вивчіть SQL. Це насправді друга частина до першої. Це дуже допоможе вам, якщо ви почнете мислити "складно". SQL змінюється від постачальника до постачальника. Я можу порекомендувати вам PostgreSQL, який є самим постачальником, який найбільше відповідає стандарту. Якщо вам потрібно вивчити конкретні діалекти, робіть це пізніше, коли вам це справді потрібно.

  • Об'єктно-орієнтоване програмування. Це здається викликом, але це досить просто, коли ви зрозумієте основи. Виберіть просту мову для цього. Python на сьогоднішній день найпростіший. Навчання Python є відмінною відправною точкою. Є відкриті джерела / безкоштовні книги Python, як-от занурення в Python . Після Python цікавими є варіанти .NET, Java та C / C ++.

  • Вивчення програмування. Читати код, писати код. Прочитайте геопросторовий код. Напишіть геопросторовий код. Вивчіть класичні API: GEOS, JTS, GDAL, ArcObjects (якщо ви любитель ESRI - і це великий плюс на ринку) тощо.

    - Візьміть геопросторову проблему та напишіть код для її вирішення. Я не можу підкреслити, наскільки це корисно. Це зведе з розуму, але це дуже хороший спосіб підтвердити, що ви вивчили сторону програмування та переконатися, що ваші геопросторові навички актуальні. У моєму випадку я написав невелику програму PostgreSQL для геокодування дорожньо-транспортних пригод.

  • Продовжуйте вчитися. Стандарти OGC - приємний вибір тут.


4

Знайте свій шлях навколо баз даних. Будь-який розробник ГІС буде широко використовувати їх.

Дуже помітно:

  • СУБД та реляційна модель . Ці теми мають вирішальне значення для розуміння основ зберігання даних.
  • Принаймні одне рішення БД ГІС . Я віддаю перевагу PostGIS , але існують і інші рішення .
  • Добре знання SQL та GIS SQL : Як ефективно витягувати, вставляти, сортувати та маніпулювати даними.
  • Класичні компроміси з DB : Як різні операції впливають на пам'ять, дисковий простір, процесор та використання мережі.
  • Індексація. Це досить важливо для окремої кулі, адже її найпоширеніша DB Lacuna серед початківців.
  • Деякі знання про кластеризацію та масштабованість .
  • Основні знання NOSQL .

Навіть якщо ви не використовуєте бази даних, ви все ще використовуєте дані - і, як правило, це безпечна ставка, що SQL (або один із його двоюрідних братів) буде використаний для запиту даних.
mwalker

Я погоджуюсь, що все вищезазначене - це добре знати, але вони є наверху списку щодо розвитку веб-сайтів?
Саймон

Що з CQL? Це теж потрібно?
РК

1
@simon - недостатня здатність БД є однією з найпоширеніших проблем серед розробників ГІС. IMHO - це одне з найважливіших навичок (поряд із HTML / CSS, JavaScript та візуалізацією карт). @rk - CQL?
Адам Матан

Загальна мова запитів? Я стикався з ним один раз під час роботи з GeoServer.
РК

3

Якщо припустити, що у вас вже є речі, що стосуються ГІС (картографічні принципи тощо), спершу я б поїхав на сторінку 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 - для цього достатньо ресурсів / навчальних посібників.


Ого. Дякуємо за огляд: DI трохи більше схиляйтесь до FOSS, хоча, перебуваючи в країні третього світу, продукти ESRI недоступні більшості людей тут.
РК

Зауважте, що веб-API ArcGIS (та багато інших) веб-API проводять більшу частину їх обробки на стороні клієнта, але всі вони сильно покладаються на опубліковані сервіси та / або обробку на стороні сервера. Отже, якщо ви хочете зробити набагато більше, ніж збирати існуючі ресурси (наприклад, геопроцесори), можливо, вам доведеться дослідити технології на стороні сервера або зробити кілька обтяжливих досліджень, щоб з'ясувати, як це зробити на стороні клієнта.
mwalker

Помічено. Дослідження відкритої геотеки зараз.
РК

3

Javascript, HTML DOM, CSS, HTTP

Якщо ви освоїте їх, ви можете робити все, що завгодно в Інтернеті. Додавання таких приємних API, як SVG, можливо, полегшить вашу роботу та веб-додатки, але IMO ви ніколи не зможете обійти чотири перераховані вище.


Javascript, HTML DOM, CSS, HTTP Чи є певне замовлення, щоб я повинен їх вивчити? :)
РК

2
Я б запропонував такий порядок: HTML, CSS, HTTP, DOM, JavaScript, додатково PHP та або Python / Ruby для сценаріїв на стороні сервера.
нижній план

3

Якщо припустити, що вам вдалося розібратися у вашому просторовому БД та сервері карт [описано в інших відповідях тут] та підтвердити свої знання щодо HTML, CSS та JavaScript, ви можете почати спілкуватися з клієнтськими бібліотеками, які будуть споживати та відображати компоненти карт у веб-браузері користувача.

Напевно, OpenLayers - це найбільше посилається та використовувана бібліотека. У ньому є досить хороша документація та приклади, і ви можете знайти кілька навчальних посібників, наприклад тут . Сторінки BostonGIS також будуть корисні для вас тут, не тільки для матеріалів OpenLayers.

Залежно від ваших знань / бажання вивчити Python MapFish також дуже витончене рішення. Або ви можете зануритися в GeoDjango , однак я не можу багато коментувати це рішення.

Крім того, ви можете подивитися на рішення веб-картографічних систем OSGeo , звернутися до Flash або використовувати щось комерційне, наприклад, веб-API ESRI .


3

Я погоджуюся з Адамом, що просторові БД і SQL повинні бути вихідною точкою.

Після цього, можливо, варто переглянути другий рівень майбутнього веб- геостака . Вам потрібно буде щось діяти як міст, що "обслуговує" ваші дані від просторової БД до клієнта у браузері користувачів.

Переконайтеся, що ви розумієте поняття WFS та WMS .

Встановіть та почніть грати локально із власним сервером. Два добре відомі проекти, які охоплені Фондом геопросторів з відкритим кодом, - це GeoServer та MapServer . QGIS mapserver, можливо, варто також переглянути. Сервер ArcGIS був би [дорогим!] Комерційним еквівалентом тут.

Після того як ви розберете цю частину, ви можете почати грати з клієнтськими бібліотеками.


2

Mapnik або будь-який інший інструмент візуалізації карти для створення плиток карти.

Практично будь-якому веб-розробнику GIS потрібно було б використовувати засоби візуалізації карт або хоча б зрозуміти основні поняття шарів та плиток.


Дякую. Я думаю, що я чудово розумію шари та плитку. Це проблема, з якою я маю проблеми.
РК

2

Знайте ОС Вашого сервера, свій веб-сервер (IIS, Apache, що завгодно) та як захистити свої речі - навіть якщо хтось робить це за вас.


2

Ви можете попрацювати з моїм курсом (https://www.e-education.psu.edu/geog585/), який (я думаю) дає хороший вступ і повинен підвести вас до роботи.


1

Я не можу наголосити на другому останньому коментарі Джорджа. Виберіть геопросторову та / або веб-проблему, яка вас цікавить, і дізнайтеся про необхідні технології під час її вирішення.

Якщо ви знайдете час, щоб проникнути в усі сфери, перелічені вище, це буде назавжди, перш ніж ви насправді розпочнете створення проекту, який чухає ваш свербіж.

Я б запропонував почати зі створення програми, використовуючи OpenLayers, щоб створити додаток, зіставляючи дані з деяких існуючих служб даних. Потім можна перейти до створення власних джерел даних або послуг. Якщо ви будете дотримуватися технологій FLOSS, ви зможете створювати та використовувати свої програми в будь-якому місці без проблем з ліцензією.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.