Que tecnologias e conjuntos de habilidades deve ser estudado / adquirido por um desenvolvedor de GIS na Web?
Uma habilidade / tecnologia por resposta, por favor.
Que tecnologias e conjuntos de habilidades deve ser estudado / adquirido por um desenvolvedor de GIS na Web?
Uma habilidade / tecnologia por resposta, por favor.
Respostas:
Posso contar sobre minha experiência, que começou como um geógrafo simples, tentando usar produtos GIS para fazer análises espaciais.
Como eu disse, sou geógrafo e, desde o início da faculdade, comecei a trabalhar com o GIS como usuário. Depois disso, comecei a pesquisar sobre como automatizar tarefas tediosas que costumava fazer com frequência. Isso veio como uma paixão e, após três e três anos, sou contratado por uma multinacional de software, que trabalha com muitos sistemas GIS e desenvolve soluções personalizadas.
Meus passos foram:
Aprenda bem GIS. Não comece a aprender programação sem ter o direito fundamental. Projeções e transformações, análise espacial, diferenças entre o modelo raster e o vetor, etc.
Aprenda os fundamentos do banco de dados: Introdução aos sistemas de banco de dados , Fundamentos dos sistemas de banco de dados . Os dois livros são um pouco diferentes. O primeiro é pesado em teoria, o segundo adota uma abordagem mais prática.
Aprenda SQL. Esta é realmente uma segunda parte para a primeira. Isso o ajudará bastante se você começar a pensar de uma maneira "sqlish". O SQL muda de fornecedor para fornecedor. Posso recomendar você com o PostgreSQL, que é o fornecedor que mais segue o padrão. Se você precisar aprender dialetos específicos, faça-o mais tarde, quando realmente precisar.
Programação Orientada a Objetos. Parece um desafio, mas é bastante fácil quando você entende o básico. Escolha um idioma fácil para fazê-lo. Python é de longe o mais fácil. Aprender Python é um excelente ponto de partida. Existem livros de código-fonte aberto / gratuitos, como Dive into Python . Após o Python, opções interessantes são: .NET, Java e C / C ++.
Estude programação. Leia o código, escreva o código. Leia o código geoespacial. Escreva código geoespacial. Estude as APIs clássicas: GEOS, JTS, GDAL, ArcObjects (se você é um fã da ESRI - e é uma grande vantagem no mercado), etc.
- Pegue um problema geoespacial e escreva um código para resolvê-lo. Não posso enfatizar o quão útil isso é. Isso o deixará louco, mas é uma maneira muito boa de confirmar que você aprendeu o lado da programação e garantir que suas habilidades geoespaciais estejam atualizadas. No meu caso, escrevi um pequeno aplicativo PostgreSQL para geocodificar acidentes de trânsito.
Continue estudando. Os padrões OGC são uma boa escolha aqui.
fonte
Conheça o seu caminho em bancos de dados. Qualquer desenvolvedor de GIS os utilizará extensivamente.
Mais notavelmente:
fonte
Supondo que você já tenha o lado GIS das coisas cobertas (princípios cartográficos, etc.), eu primeiro faria uma viagem a http://www.w3schools.com/ - Percorrer os tutoriais em HTML, Javascript, XML, etc.
Então você tem um número de plataformas diferentes para escolher. Sou um pouco tendencioso em relação à ESRI e recomendo começar jogando sobre as APIs http://resources.arcgis.com/content/web/web-apis - A execução dos conceitos / amostras fornece uma sensação real do que você pode conseguir.
Acho que o download das amostras de código e a engenharia reversa para trabalhar com seus próprios serviços (supondo que você tenha uma instância do ArcGIS Server, caso contrário, você pode usar os servidores de amostra ESRIs) é uma boa maneira de aprender.
Também há muitos vídeos, veja estes vídeos da conferência. Recomendamos uma visão geral das APIs do ArcGIS para JavaScript, práticas recomendadas para projetar serviços eficazes de mapas, redesenhar aplicativos de desktop para a Web e usar a API REST do ArcGIS Server.
Qual plataforma da web você escolheria? Id ignorar olhando para o WebADF (Java / NET), pois isso será eliminado.
Quem são seus clientes? Quais navegadores eles estarão usando? Eles podem instalar plugins Silverlight ou Flash? Você tem algum IDEs para desenvolver? por exemplo, o Flex é melhor no FlashBuilder ($$), mas você também pode usar o FlashDevelop, que é uma alternativa de código aberto.
Você se sente mais à vontade com tecnologias estabelecidas ou tecnologias emergentes? Pesar os riscos.
- O .NET / Java existe há muito tempo - o Silverlight & Flex é relativamente novo e há um debate sobre se o HTML 5 vai acabar com essas plataformas
O Silverlight e o Flex têm mais interatividade pronta para uso, enquanto o Javascript compensa essa lacuna contando com o Dojo.Framework.
A grande diferença na funcionalidade entre os ADFs da Web e as APIs da Web é o fato de as APIs da Web do ArcGIS serem totalmente do lado do cliente.
Deixarei alguém para dar uma resposta específica menos ESRI, mas a escolha óbvia é começar a brincar com a API do Google Maps - existem muitos recursos / tutoriais para aprender isso.
fonte
Javascript, HTML DOM, CSS, HTTP
Se você os dominar, poderá fazer qualquer coisa na web. Adicionar APIs agradáveis como o SVG talvez facilite e seus aplicativos da Web sejam mais agradáveis, mas na IMO você nunca será capaz de contornar as quatro listadas acima.
fonte
Supondo que você tenha conseguido classificar seu banco de dados espacial e servidor de mapas [descrito em outras respostas aqui] e aprimorando seu conhecimento de HTML, CSS e JavaScript, poderá começar a mexer nas bibliotecas clientes que consumirão e exibirão os componentes do mapa no navegador da web do usuário.
O OpenLayers parece ser de longe a biblioteca mais referenciada e usada. Possui boa documentação e exemplos, e você pode encontrar alguns tutoriais, por exemplo aqui . As páginas do BostonGIS também serão úteis para você aqui, não apenas para as coisas do OpenLayers.
Dependendo do seu conhecimento / vontade de aprender, o Python MapFish também é uma solução muito elegante. Ou você pode mergulhar no GeoDjango , no entanto, eu não posso comentar muito sobre essa solução.
Como alternativa, você pode procurar as soluções de mapeamento da Web da OSGeo, acessar o Flash ou usar algo comercial como as APIs da ESRI .
fonte
Concordo com Adam que DB e SQL espaciais devem ser um ponto de partida.
Depois disso, pode valer a pena examinar o segundo nível do seu futuro geo-pacote da web . Você precisará de algo para atuar como uma ponte 'servindo' seus dados do banco de dados espacial para o cliente no navegador de seus usuários.
Certifique-se de entender os conceitos WFS e WMS .
Instale e comece a jogar localmente com seu próprio servidor. Dois projetos bem conhecidos adotados pela Open Source Geospatial Foundation são GeoServer e MapServer . O servidor de mapas QGIS também pode valer uma olhada. O servidor ArcGIS seria o equivalente comercial [caro!] Aqui.
Depois de resolver essa parte, você pode começar a jogar com as bibliotecas do cliente.
fonte
Mapnik ou qualquer outra ferramenta de renderização de mapa para criar blocos de mapa.
Quase todo desenvolvedor de GIS da Web precisaria usar ferramentas de renderização de mapa ou, pelo menos, entender os conceitos básicos de camadas e blocos.
fonte
Conheça o sistema operacional do servidor, o servidor Web (IIS, Apache, o que for) e como proteger suas coisas - mesmo que alguém esteja fazendo tudo isso por você.
fonte
Você pode trabalhar no meu curso (https://www.e-education.psu.edu/geog585/), que (eu acho) fornece uma boa introdução e deve colocá-lo em funcionamento.
fonte
Não posso enfatizar o segundo ao último comentário de George o suficiente. Escolha um problema geoespacial e / ou da Web que lhe interesse e aprenda sobre as tecnologias necessárias à medida que o soluciona.
Se você dedicar algum tempo para se tornar proficiente em todas as áreas listadas acima, levará uma eternidade para começar a criar um projeto que coça sua coceira.
Sugiro começar com a criação de um aplicativo usando o OpenLayers para criar um aplicativo mapeia dados de alguns serviços de dados existentes. Você pode então criar suas próprias fontes ou serviços de dados. Se você aderir às tecnologias FLOSS, poderá criar e usar seus aplicativos em qualquer lugar, sem problemas de licença.
fonte