Tutorial para OpenLayers? [fechadas]


12

Preciso criar um mapa da web mostrando muitas camadas de varredura. Estou usando o mapserver e quero usar o Openlayers, mas não consigo encontrar nenhum bom tutorial sobre isso. Vejo algumas perguntas antigas ( 1 e 2 ) dizendo que não havia boa documentação. As coisas mudaram recentemente?

Gostaria de encontrar um tutorial de ensino básico para coisas bastante complicadas, com boas explicações do código e imagens / exemplos dos resultados. Por enquanto, consegui fazer apenas o mapa da Web mais simples com o meu arquivo .map , mas preciso personalizá-lo (adicionar legendas, agrupar camadas, adicionar mais controles, incorporar etc.).

Respostas:


7

Enquanto os outros sugeriram bons tutoriais on-line, deixe-me contar sobre o livro que me deu uma base sólida muito necessária no OpenLayers.

O livro é: OpenLayers 2.10 de Erik Hazzard, guia para iniciantes. Está disponível nos Packt Publishers.

Eu recomendaria fortemente o livro, porque ele lida com todas as principais partes da Biblioteca. Começa do básico e ajuda lentamente a crescer em direção a partes complicadas da API.


2
Está disponível como um E-Book daqui por £ 14.44 parece excelente.
precisa

O preço depende do país de onde você o acessa. Está me mostrando um preço de aproximadamente US $ 3;
Devdatta Tengshe

Uau, acho que nas Filipinas estamos sendo penalizados. deve levá-lo a comprá-lo para mim :-)
Mark Cupitt

Obrigado pelo conselho, só tenho o livro de um amigo, vamos ver ...
Nadya

você não pode usar algo como o PirateBrowser para esconder seu país e comprá-lo pelo menor preço?
Abaixo do radar

13

Além das excelentes respostas acima, deixe-me adicionar minha própria experiência. Há um ano e meio, decidi que queria usar o OpenLayers (OL) no projeto do meu mestre e parti para aprendê-lo. Faço programação e criação de mapas digitais como parte de meu trabalho como arqueólogo desde o início dos anos 80 e sou usuário do ArcGIS há 15 anos. Estou feliz por ter escolhido OL para o meu projeto, mas nem sempre foi um caminho tranquilo para aprendê-lo. Algumas coisas não eram óbvias e aprendidas apenas por tentativa e erro. Então, eu tenho alguns conselhos para iniciantes.

Minha jornada para aprender OL realmente começou quando me inscrevi em uma conta de estante de cinco slots no Safari Books Online por US $ 10 / mês. Eu queria revisar livros antes de comprar, e poucas lojas que podemos visitar levam livros de computador relacionados ao GIS. Atualmente, existem três livros no OL 2. Um livro mais recente de 58 páginas chamado Instant OpenLayers Starter de Di Lorenzo e Allegri (abril de 2013) é um bom começo rápido, mas os dois primeiros livros e suas amostras de código (disponíveis na web do editor site, juntamente com um capítulo de amostra grátis de cada livro) foram bons recursos:

  • OpenLayers 2.10: Guia do Iniciante por Erik Hazzard (março de 2011)
  • Livro de receitas OpenLayers de Antonio Santiago Perez (agosto de 2012)

Devido a frustrações ocasionais sobre a compatibilidade com o CSS e o navegador, acabei aprendendo uma estrutura JavaScript também. Eu escolhi Dojo porque é isso que Perez usou em seu livro. O Dojo moderno (Dojo 1.7 +) é uma abordagem significativamente diferente das versões anteriores, usando um formato Asynchronous Module Definition (AMD). A maneira de fazer tudo mudou. Não entendi que este livro excelente, de outra forma, usa uma versão pré-1.7 do Dojo que ficou obsoleta 9 meses antes da publicação do livro em agosto de 2012. Esri continuou usando o Dojo pré-1.7 em sua API ArcGIS JavaScript até a modernização em junho de 2012 , e essa foi uma mudança dolorosa para muitos desenvolvedores do ArcGIS Javascript.

Para entender como o Dojo é pouco suportado, além de um livro escrito em 2010 sobre o Dojo 1.3, a maioria dos livros foi escrita em 2007 e 2008. Não há livros publicados para o Modern Dojo - você deve aprender com recursos on-line, quase todos os que estão no site deles. Basicamente, para trabalhar com os exemplos no livro de Perez, você precisa saber o suficiente sobre JavaScript para ignorar os bits do Dojo e mover os exemplos para JavaScript simples ou sua estrutura de escolha.

Em retrospecto, eu gostaria de ter ido com a estrutura ExtJS e GeoExt. O ExtJS é gratuito se o seu projeto for de código aberto e, como muitas empresas pagam com prazer por uma versão suportada, elas podem gastar tempo com documentação e tutoriais abrangentes do site.

Aprendo melhor trabalhando com exemplos / hacking separados. Os desenvolvedores do OpenLayers têm essa mesma filosofia que a documentação principal que eles apontam para o aprendizado está examinando os exemplos. No entanto, alguns exemplos de OL em seu site e em outros lugares têm problemas que podem fazer os iniciantes tropeçarem. (Ver abaixo.)

A dependência de exemplos como documentação também significa que o usuário não tem um bom fluxo de trabalho para desenvolver um mapa da web. Isso pode levar à criação de mapas incompletos - por exemplo, eles podem não ter personalizações de css na interface do usuário dos mapas e "aparência e comportamento". Substituir o css OL com personalizações parece assustador para o iniciante, mas o Firebug pode ajudá-lo a encontrar os nomes dos elementos que você precisa substituir. A falta de uma sensação de um fluxo de trabalho aceito também pode levar à criação do Frankencode, pois os usuários calçam os recursos em seu código conforme acham que desejam.

Isso me leva ao último item que sinto falta na documentação do site OL, uma sensação de "práticas recomendadas" para mapas OL. Existe uma maneira melhor de organizar meu código para torná-lo modular e robusto? Quais são as armadilhas dos fechamentos JavaScript e dos objetos OL? Onde devo declarar meus estilos? E assim por diante.

Além dos vários arquivos desatualizados no Wiki, há dois problemas gerais que um iniciante deve estar ciente ao aprender com os exemplos oficiais de OL e os documentos da API. Primeiro, não há organização na página dos exemplos de desenvolvimento de OL no site da OL. É simplesmente apresentar o feed do arquivo xml nesse diretório (exemplo-list.xml) dos exemplos (207 deles em 13 de fevereiro de 2014) e classificar as linhas em ordem alfabética por nome de arquivo em uma grade. Exemplos mais avançados são misturados com os básicos. Você pode pesquisar os exemplos por palavra-chave, mas muitos dos exemplos não possuem palavras-chave e o recurso de pesquisa inclui conteúdo e título da página na pesquisa, não apenas palavras-chave. Os resultados são retornados com o maior número de termos de pesquisa correspondidos primeiro, seguidos pela frequência das palavras. Apenas um dos termos de pesquisa precisa ser uma correspondência para aparecer nos resultados. A página UserRecipes no OL Wiki lista cerca de 90 exemplos organizados por categoria, e essa categorização é uma ajuda. Desses, 66 são links ao vivo para os exemplos na página de exemplos e o restante são links ruins para exemplos removidos.

Segundo, existem basicamente duas versões da documentação da API que parecem ser as mesmas à primeira vista. A API oficial está em um diretório chamado / apidocs e a biblioteca de desenvolvedores mais avançada, porém volátil, em um diretório chamado / docs. Os URLs são os mesmos. (Também existem versões de tronco.) Apenas edite o endereço da página para ver a outra versão. O Wiki observa que a biblioteca do desenvolvedor não deve ser invocada, pois propriedades, funções etc. podem ser removidas da biblioteca a qualquer momento. Com o OpenLayers 3 próximo da realidade (ele está disponível na versão beta e já existe um livro), eu suspeito que pouco mudará no OL 2 no futuro. O foco agora está no OL 3.

Em geral, acho que as páginas da API OL são excessivamente esqueléticas, geralmente sem explicações ou exemplos ilustrativos, especialmente para alguém usado para bibliotecas com documentação API mais completa. Da maneira como é apresentado, você não obtém uma imagem clara do objeto que está herdando.

Dos exemplos de OL na Web em geral, muitos usam objetos ou sintaxe que foram descontinuados porque foram substituídos por versões aprimoradas. Por exemplo, o Layer.Vector agora é a maneira preferida de desenhar marcadores, pois o Layer.Marker está obsoleto na versão 3. Examine o arquivo deprecated.js para garantir que você não esteja usando objetos que estão saindo. Ou, pelo menos, esteja ciente de que, se você atualizar seu código para OL 3, precisará alterar isso.

Além do workshop Boundless OpenLayers vinculado por Julien-Samuel Lacroix acima, a IBM possui um tutorial interessante, embora com três anos de idade, que usa OpenLayers, MapServer, Google Gears e jQuery para criar um aplicativo Web GIS completo: reunir dados com o OpenLayers : Usando dados de várias fontes divergentes em mapas da web

Além disso, confira este post útil sobre o estilo do switcher de camada

Pesquise no Google as palavras OpenLayers e jsFiddle para obter alguns exemplos de violações de OL. O resultado do site techslides é uma página listando alguns deles.

Por fim, lembre-se de que as imagens do mapa na maioria dos exemplos são de servidores OpenStreetMap (OSM) e estas caem de vez em quando, planejadas ou não, e você terá blocos cor-de-rosa no lugar. Às vezes, você pensa que estragou o seu código. Você pode verificar o status da plataforma no wiki do OpenStreetMap.


2
Esta é uma boa resposta detalhada. É uma pena que não tenhamos tantas respostas desse tipo no site.
Devdatta Tengshe 14/02

Leta, obrigado pela resposta ao longo! Agora eu estou lutando com GeoExt (e ExtJS), e tem ainda mais problemas com tutoriais que OL, seus exemplos ficar bonita como esta :)
Nadya


4

O Open Layers é um pacote fantástico, incrivelmente flexível, mas carece de documentação para iniciantes, mas possui uma tonelada de documentação detalhada do desenvolvedor.

O que fiz quando comecei foi olhar para todos os exemplos , escolher os que tinham a funcionalidade que eu queria, analisar o código e construir a funcionalidade passo a passo, testando à medida que avançava. Eu descobri que tentar muita funcionalidade em um hit dificultava a compreensão dos conceitos e dos problemas de depuração.

Então encontrei o GIS @ SE, que tem sido uma grande ajuda em questões específicas, pesquisando perguntas de outras pessoas ou perguntando as minhas.

Além disso, o @Julian provavelmente deu a você a melhor opção em termos de tutoriais, eles são muito bons.


Obrigado pela resposta, eu já vi esses exemplos, mas não consegui encontrar o que preciso. Então, eu vou ter que codificar ... #
27913 nadya

2

Apenas para mencionar, esta página da OpenGeo também foi útil para mim. Eles começam do básico e têm um bom exemplo de eventos GetFeatureInfo com a remoção de pop-ups.

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.