Conjuntos de habilidades de desenvolvimento de GIS da Web [fechado]


12

Que tecnologias e conjuntos de habilidades deve ser estudado / adquirido por um desenvolvedor de GIS na Web?

Uma habilidade / tecnologia por resposta, por favor.


4
Fale sobre uma pergunta ampla ... você pode reduzi-la a uma pilha de software específica? Esri? FOSS? Só quer fazer mashups de dados do google / point?
Derek Swingley 7/08

Foi mal. ESRI ou FOSS, não é possível ter os dois? Algo mais complexo do que os mashups de pontos, espero. Habilidades suficientes para fazer algo assim. opengeohost.com/maps/stlawrence
RK

1
Ótima pergunta. Vamos ter uma habilidade por resposta.
21810 Adam

Obrigado. Boa ideia. Devo postar isso na pergunta? Acabei de perceber que a pergunta pode ser ampla. Seria melhor como wiki da comunidade?
RK

Respostas:


17

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.


4

Conheça o seu caminho em bancos de dados. Qualquer desenvolvedor de GIS os utilizará extensivamente.

Mais notavelmente:

  • DBMS e o modelo relacional . Esses assuntos são cruciais para entender o básico do armazenamento de dados.
  • Pelo menos uma solução GIS DB . Eu prefiro o PostGIS , mas também existe outra solução .
  • Bons conhecimentos de SQL e GIS SQL : Como extrair, inserir, classificar e manipular dados com eficiência.
  • Compensações clássicas de banco de dados : como as diferentes operações afetam o uso de memória, espaço em disco, CPU e rede.
  • Indexação. Isso é importante o suficiente para um marcador separado, porque é o DB Lacuna mais comum entre iniciantes.
  • Algum conhecimento sobre cluster e escalabilidade .
  • Conhecimento básico do NOSQL .

Mesmo se você não estiver usando bancos de dados, ainda estará usando dados - e geralmente é uma aposta segura que o SQL (ou um de seus primos) seja usado para consultar os dados.
precisa saber é o seguinte

Concordo que todas as opções acima são boas para saber, mas elas estão no topo da lista em relação ao desenvolvimento da WEB?
21710 Simon

E o CQL? Também é necessário?
RK

1
@simon - A capacidade insuficiente de banco de dados é um dos problemas mais comuns entre os desenvolvedores de GIS. IMHO é uma das habilidades mais importantes (juntamente com HTML / CSS, JavaScript e renderização de mapa). @rk - CQL?
Adam Matan

Linguagem de consulta comum? Eu o encontrei uma vez enquanto trabalhava com o GeoServer.
RK

3

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.


Uau. Obrigado pela visão geral: apesar de eu estar em um país do terceiro mundo, os DI se inclinam um pouco mais para o software livre e os produtos ESRI estão fora do alcance da maioria das pessoas aqui.
RK

Observe que as APIs da Web do ArcGIS (e muitas outras) fazem a maior parte de seu processamento no lado do cliente, mas todas elas dependem muito dos serviços publicados e / ou do processamento no lado do servidor. Portanto, se você deseja fazer muito além da montagem dos recursos existentes (por exemplo, geoprocessamento), pode ser necessário investigar as tecnologias do lado do servidor ou fazer algumas pesquisas pesadas para descobrir como fazê-lo no lado do cliente.
precisa saber é o seguinte

Notado. Investigando a pilha geográfica aberta agora.
RK

3

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.


Javascript, HTML DOM, CSS, HTTP Existe uma ordem específica que devo aprendê-los? :)
RK

2
Sugiro a seguinte ordem: HTML, CSS, HTTP, DOM, JavaScript, adicionalmente PHP e / ou Python / Ruby para scripts no servidor.
underdark

3

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 .


3

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.


2

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.


Obrigado. Eu acho que entendo bem camadas e azulejos. É a parte de renderização com a qual estou tendo problemas.
RK

2

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ê.


2

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.


1

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.