Наборы навыков разработки веб-ГИС [закрыто]


12

Какие технологии и навыки должен изучать / приобретать тот, кто хочет заниматься разработкой веб-ГИС?

Один навык / технология за ответ, пожалуйста.


4
Разговор о широком вопросе ... Вы можете сузить его до определенного программного стека? Esri? FOSS? Просто хотите сделать гугл / точка данных гибридные приложения?
Дерек Суингли

Виноват. ESRI или FOSS, разве невозможно иметь оба? Надеюсь, что-то более сложное, чем точечные мэшапы. Достаточно навыков, чтобы сделать что-то подобное. opengeohost.com/maps/stlawrence
РК

1
Отличный вопрос Давайте иметь один навык на ответ.
Адам Матан

Благодарю. Отличная идея. Должен ли я опубликовать это по вопросу? Я просто понял, что вопрос может быть широким. Будет ли это лучше для сообщества вики?
РК

симилар проблема: stackoverflow.com/questions/1054480/…
radek

Ответы:


17

Я могу рассказать вам о своем опыте, который начинал как простой географ, пытаясь использовать ГИС-продукты для пространственного анализа.

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

Мои шаги были:

  • Изучите ГИС хорошо. Не начинайте изучать программирование, не имея фундаментального права. Проекции и преобразования, пространственный анализ, различия между растровой и векторной моделями и т. Д.

  • Изучите основы базы данных: введение в системы баз данных , основы систем баз данных . Две книги немного отличаются. Первый сложный в теории, второй - более практичный.

  • Изучай SQL. На самом деле это вторая часть первой. Это очень поможет вам, если вы начнете мыслить "sqlish" образом. SQL меняется от поставщика к поставщику. Я могу порекомендовать вам PostgreSQL, который является поставщиком, который больше всего следует стандарту. Если вам нужно выучить определенные диалекты, делайте это позже, когда вам это действительно нужно.

  • Объектно-ориентированного программирования. Это кажется сложной задачей, но это довольно легко, когда вы освоите основы. Выберите легкий язык, чтобы сделать это. Питон, безусловно, самый простой. Изучение Python является отличной отправной точкой. Существуют открытые / бесплатные книги по Python, такие как Dive into Python . После Python интересны следующие варианты: .NET, Java и C / C ++.

  • Изучай программирование. Прочитайте код, напишите код. Прочитайте геопространственный код. Написать геопространственный код. Изучите классические API: GEOS, JTS, GDAL, ArcObjects (если вы поклонник ESRI - и это большой плюс на рынке) и т. Д.

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

  • Продолжайте учиться. Стандарты OGC - хороший выбор здесь.


4

Знай свой путь вокруг баз данных. Любой разработчик ГИС будет широко их использовать.

Наиболее заметно:

  • СУБД и реляционная модель . Эти предметы имеют решающее значение для понимания основ хранения данных.
  • Как минимум одно решение ГИС БД . Я предпочитаю PostGIS , но существуют и другие решения .
  • Хорошее знание SQL и GIS SQL : Как эффективно извлекать, вставлять, сортировать и манипулировать данными.
  • Классические компромиссы БД : Как различные операции влияют на память, дисковое пространство, ЦП и использование сети.
  • Индексирование. Это достаточно важно для отдельной пули, потому что это самый распространенный DB Lacuna среди начинающих.
  • Некоторые знания о кластеризации и масштабируемости .
  • Базовые знания по NOSQL .

Даже если вы не используете базы данных, вы все равно используете данные - и, как правило, можно с уверенностью сказать, что SQL (или один из его двоюродных братьев) будет использоваться для запроса данных.
mwalker

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

Как насчет CQL? Это тоже необходимо?
РК

1
@simon - Недостаточные возможности БД - одна из самых распространенных проблем среди разработчиков ГИС. ИМХО это один из самых важных навыков (наряду с 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, в противном случае вы можете использовать примеры серверов ESRI) - хороший способ обучения.

Существует также множество видео, посмотрите на эти видео конференции для разработчиков. Я рекомендую обзор API-интерфейсов ArcGIS для JavaScript, рекомендации по разработке эффективных картографических сервисов, редизайн настольных приложений для Интернета и использование ArcGIS Server REST API.

Какую веб-платформу вы бы выбрали? Id игнорировать просмотр WebADF (Java / NET), поскольку это будет постепенно прекращено.

Кто ваши клиенты? какие браузеры они будут использовать? Могут ли они установить плагины Silverlight или Flash? Есть ли у вас какие-либо IDE для разработки? Например, Flex лучше всего подходит в FlashBuilder ($$), но вы также можете использовать FlashDevelop, который является альтернативой с открытым исходным кодом.

Вам больше нравится устоявшиеся технологии или новые технологии? Взвесьте риски.
- .NET / Java существует уже давно - Silverlight и Flex довольно новы, и есть некоторые споры о том, удалит ли HTML 5 эти платформы

Как Silverlight, так и Flex обладают большей интерактивностью, а Javascript восполняет этот пробел, полагаясь на Dojo.Framework.

Большая разница в функциональности между Web ADF и Web API заключается в том, что ArcGIS Web API полностью на стороне клиента.

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


Вау. Спасибо за обзор: DI немного больше склоняется к FOSS, хотя, поскольку я нахожусь в стране третьего мира, и продукты ESRI недоступны для большинства людей здесь.
РК

Обратите внимание, что веб-API ArcGIS (и многие другие) выполняют большую часть своей обработки на стороне клиента, но все они в значительной степени зависят от опубликованных сервисов и / или обработки на стороне сервера. Поэтому, если вы хотите сделать гораздо больше, чем собирать существующие ресурсы (например, геообработку), вам, возможно, придется исследовать технологии на стороне сервера или провести серьезное исследование, чтобы выяснить, как это сделать на стороне клиента.
mwalker

Отметил. Исследование открытого геостека прямо сейчас.
RK

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 или использовать что-то коммерческое, например, ESRI Web API .


3

Я согласен с Адамом, что пространственная БД и SQL должны быть отправной точкой.

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

Убедитесь, что вы понимаете концепции WFS и WMS .

Установите и начните играть локально с вашего собственного сервера. Два хорошо известных проектов , охватываемые Open Source Geospatial Foundation являются GeoServer и MapServer . Также стоит посмотреть на QGIS mapserver . ArcGIS сервер будет [дорогостоящим!] Коммерческим эквивалентом здесь.

Разобравшись с этой частью, вы можете начать играть с клиентскими библиотеками.


2

Mapnik или любой другой инструмент рендеринга карты для создания листов карты.

Практически любой веб-разработчик ГИС должен использовать инструменты рендеринга карты или, по крайней мере, понимать базовые концепции слоев и плиток.


Благодарю. Я думаю, что хорошо понимаю слои и плитки. У меня проблемы с рендерингом.
RK

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.