Какие технологии и навыки должен изучать / приобретать тот, кто хочет заниматься разработкой веб-ГИС?
Один навык / технология за ответ, пожалуйста.
Какие технологии и навыки должен изучать / приобретать тот, кто хочет заниматься разработкой веб-ГИС?
Один навык / технология за ответ, пожалуйста.
Ответы:
Я могу рассказать вам о своем опыте, который начинал как простой географ, пытаясь использовать ГИС-продукты для пространственного анализа.
Как я уже сказал, я географ, и с самого начала в колледже я начал работать с ГИС как пользователь. После этого я начал исследовать, как автоматизировать утомительные задачи, которые мне приходилось делать часто. Это стало страстью, и через три года я работаю в многонациональной фирме, которая работает со многими ГИС-системами и разрабатывает индивидуальные решения.
Мои шаги были:
Изучите ГИС хорошо. Не начинайте изучать программирование, не имея фундаментального права. Проекции и преобразования, пространственный анализ, различия между растровой и векторной моделями и т. Д.
Изучите основы базы данных: введение в системы баз данных , основы систем баз данных . Две книги немного отличаются. Первый сложный в теории, второй - более практичный.
Изучай SQL. На самом деле это вторая часть первой. Это очень поможет вам, если вы начнете мыслить "sqlish" образом. SQL меняется от поставщика к поставщику. Я могу порекомендовать вам PostgreSQL, который является поставщиком, который больше всего следует стандарту. Если вам нужно выучить определенные диалекты, делайте это позже, когда вам это действительно нужно.
Объектно-ориентированного программирования. Это кажется сложной задачей, но это довольно легко, когда вы освоите основы. Выберите легкий язык, чтобы сделать это. Питон, безусловно, самый простой. Изучение Python является отличной отправной точкой. Существуют открытые / бесплатные книги по Python, такие как Dive into 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, в противном случае вы можете использовать примеры серверов 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. Существует множество ресурсов / учебных пособий для изучения этого.
Javascript, HTML DOM, CSS, HTTP
Если вы справитесь с этим, вы можете сделать что-нибудь в Интернете. Добавление хороших API-интерфейсов, таких как SVG, возможно, облегчит и сделает ваши веб-приложения более привлекательными, но IMO вы никогда не сможете обойти четыре перечисленных выше.
Предполагая, что вам удалось разобраться в вашей пространственной БД и картографическом сервере [описано в других ответах здесь] и улучшить ваши знания HTML, CSS и JavaScript, вы можете начать работать с клиентскими библиотеками, которые будут использовать и отображать компоненты карты в веб-браузере пользователя.
OpenLayers, похоже, является наиболее используемой библиотекой. Он имеет довольно хорошую документацию и примеры, и вы можете найти некоторые учебники, например, здесь . Страницы BostonGIS будут вам полезны и здесь, не только для материалов OpenLayers.
В зависимости от ваших знаний / готовности изучать Python MapFish также является очень изящным решением. Или вы можете погрузиться в GeoDjango , однако я сам не могу комментировать это решение.
В качестве альтернативы вы можете посмотреть на решения OSGeo для веб-картографирования, обратиться к Flash или использовать что-то коммерческое, например, ESRI Web API .
Я согласен с Адамом, что пространственная БД и SQL должны быть отправной точкой.
После этого, возможно, стоит взглянуть на второй уровень вашего будущего веб- геостака . Вам понадобится что-то, что послужит мостом, «обслуживающим» ваши данные из пространственной БД для клиента в браузере ваших пользователей.
Убедитесь, что вы понимаете концепции WFS и WMS .
Установите и начните играть локально с вашего собственного сервера. Два хорошо известных проектов , охватываемые Open Source Geospatial Foundation являются GeoServer и MapServer . Также стоит посмотреть на QGIS mapserver . ArcGIS сервер будет [дорогостоящим!] Коммерческим эквивалентом здесь.
Разобравшись с этой частью, вы можете начать играть с клиентскими библиотеками.
Mapnik или любой другой инструмент рендеринга карты для создания листов карты.
Практически любой веб-разработчик ГИС должен использовать инструменты рендеринга карты или, по крайней мере, понимать базовые концепции слоев и плиток.
Я не могу выделить второй комментарий Джорджа к последнему. Выберите интересующую вас геопространственную и / или веб-проблему и узнайте о необходимых технологиях по мере ее решения.
Если вы потратите время, чтобы стать опытным во всех областях, перечисленных выше, это будет навсегда, прежде чем вы действительно начнете строить проект, который царапает ваш зуд.
Я бы предложил начать с создания приложения с использованием OpenLayers для создания приложения, отображающего данные из некоторых существующих служб данных. Затем вы можете перейти к созданию собственных источников данных или услуг. Если вы будете придерживаться технологий FLOSS, вы сможете создавать и использовать свои приложения в любом месте без затрат на лицензию.