Respostas:
Esta pergunta foi convertida em Wiki da Comunidade e a wiki bloqueada porque é um exemplo de pergunta que busca uma lista de respostas e parece ser popular o suficiente para protegê-la do fechamento. Ele deve ser tratado como um caso especial e não deve ser visto como o tipo de pergunta incentivada neste ou em qualquer site do Stack Exchange, mas se você deseja contribuir com mais conteúdo, sinta-se à vontade editando esta resposta .
Você pode escolher entre soluções com um componente de servidor de mapa ou sem. É claro que as soluções de servidor suportam mais dados e aplicativos mais sofisticados.
Se você sabe que o QGIS deseja criar visualizações únicas de dados, eu recomendaria o QGIS2Leaf ou Export to OpenLayers 3, que são plugins do QGIS que permitem exportar camadas para um mapa da web. Atualização (baseada no comentário de Tom Chadwin): qgis2leaf e qgis-ol3 agora foram mesclados no qgis2web .
Uma opção intermediária é o QGIS Cloud , uma opção hospedada do QGIS Server: você apenas prepara o projeto localmente e depois o publica na Web, onde o encontrará em um visualizador pronto. Eles têm contas gratuitas até um determinado tamanho de dados. Portanto, você não precisa de seu próprio servidor, se esse é um problema para você.
Se você deseja executar seu próprio servidor de código-fonte aberto , pode começar com esta Introdução ao Geoserver a partir do FOSS4G do ano passado: http://workshops.opengeo.org/geoserver-intro/ . As ferramentas envolvidas são geralmente Geoserver, PostGIS e OpenLayers. Os custos iniciais são o seu tempo de trabalho e a hospedagem.
É difícil estimar o tempo de implantação sem conhecer seus casos de uso.
GeoGATE
link , o GeoGATE é incrível com o PostGIS & Geoserver e inclui centenas de ferramentas prontas que você pode configurar através de um painel de controle amigável com seus dados
Penn State tem uma classe de Mapeamento da Web Aberto . Deve ser o suficiente para ensinar como o mapeamento da web funciona e também as tecnologias envolvidas. A maioria das ferramentas usadas na classe, se não todas, são gratuitas, portanto o custo não deve ser um problema. Aqui está o sumário:
Lição 0: Orientação
Lição 1: Introdução ao mapeamento da Web aberto
Lição 2: Servidores de Mapa da Web (WMS)
Lição 3: Web Feature Servers (WFS)
Lição 4: XML (Extensible Markup Language)
Lição 5: servidores avançados de mapa da Web
Lição 6: Linguagem de Marcação Geográfica (GML)
Lição 7: WFS revisitado
Lição 8: Criando um aplicativo de mapeamento da Web
Lição 9: Construindo um cliente de mapeamento da Web personalizado fino
Diverta-se :)
O Google Fusion Tables parece promissor com mapeamento e consultas espaciais
profissionais: fácil de configurar
contras: todos os seus dados estão nos servidores do Google (bom ou ruim?)
http://sites.google.com/site/fusiontablestalks/stories
Nota: Muitas empresas de mídia / notícias o estão usando - Exemplo Guardian UK Newspaper http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
Agora, existe um puro Assistente de fusão para você configurar mais rapidamente http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
Exemplos: http://www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.htmlstory
Um dos melhores: http://tinyurl.com/England-Deprivation-Mapped
Existem tantas opções por aí e muitas ótimas respostas já. Duas das minhas escolhas favoritas que ainda não foram listadas aqui são CartoDB e MapBox . Ambos oferecem hospedagem na web e visualização de dados e algumas ferramentas muito sofisticadas com preços a partir de GRÁTIS.
Você se beneficiará de ter um software de desktop para configurar seus dados. ArcMap e Quantum GIS são ótimas opções para a parte da área de trabalho.
Eu diria que a força do MapBox é criar belos mapas da web com modelos realmente ótimos, fáceis de usar e prontos para usar elementos da interface do usuário . O MapBox requer um programa de desktop chamado TileMill (também gratuito) que utiliza uma interface de estilo muito semelhante ao CSS.
O ponto forte do CartoDB é que ele expõe suas raízes PostGIS por meio de uma API SQL.
Ambos podem ser usados sozinhos ou em combinação com outras bibliotecas de mapeamento javascript (por exemplo , Leaflet , Google Maps , OpenLayers ).
Não importa quais plataformas você decida começar a usar para acessar o mapeamento da web, você certamente se beneficiará do aprendizado de javascript. Codecademy é um ótimo lugar para começar (também GRÁTIS !!).
Também participei de uma conferência onde eles apresentaram o OpenGeo Suite , que é uma pilha de OpenLayers, GeoServer, GeoExt e PostGIS. Eles oferecem as versões "Enterprise Edition" (paga pela versão com suporte) ou " Community Edition " (gratuita). (Atualização) O OpenGeo Suite agora é Boundless Suite.
Outro pacote que foi demonstrado na conferência foi o GeoMoose , que é uma pilha de MapServer e OpenLayers.
Você pode fazer o download do OSGEO Live DVD , que pode ser executado em um ambiente de máquina virtual, caso não queira instalar um monte de coisas na sua máquina durante o teste. Ele vem pré-empacotado com vários pacotes de software GIS de código aberto, incluindo ferramentas de mapeamento da web.
Editar
Devido à popularidade desta pergunta e resposta, estou adicionando edição de algum conteúdo nesta postagem devido a alterações nos provedores e APIs nos últimos meses.
A escolha da API está relacionada ao escopo e à finalidade do seu projeto, para não mencionar o seu orçamento, se você realmente deseja usar alguma funcionalidade específica. A outra grande ressalva é a sua experiência em desenvolvimento web e em qual idioma você prefere ou tem interesse.
Acho que a melhor maneira de responder sua pergunta é fornecer uma boa lista de APIs disponíveis para você. Aqui estão três que vêm à mente. Estes não são de forma alguma todos eles!
ArcGIS
APIs:
Prós:
Contras:
Resumo:
O ArcGIS tem muito a oferecer para produtos GIS da web e possui muitos recursos para ajudá-lo ao longo do caminho. Esteja ciente dos possíveis custos com os quais você deseja publicar seus próprios dados.
APIs:
Prós:
Contras:
Resumo:
O Google tem um nome forte no mercado e serviços on-line bastante confiáveis. Apenas certifique-se de entender os meandros de seus usos, para não pisar nos dedos legais. A nova página Preços e planos é bastante útil nesse sentido.
Código aberto
APIs (todas baseadas em JavaScript):
Prós:
Contras:
Resumo:
O código-fonte aberto é realmente uma ótima opção para quem deseja testar as águas do GIS da Web. Com as alterações e aprimoramentos feitos todos os dias na comunidade, o código aberto pode ser a maneira mais barata de atender às suas necessidades geoespaciais.
Como eu disse, essas não são todas as opções que você tem, mas pelo menos agora há um post com links para você e outras pessoas para se familiarizar com alguns dos principais players do mundo do SIG na Web.
Parece que você obteve as respostas de código aberto na pergunta acima. Se sua empresa tiver o orçamento, a ESRI pode ser uma opção muito boa. Para esclarecer, as APIs de mapeamento da web por si só são gratuitas, mas o ArcGIS Server e o SDE de back-end custam dinheiro. Além disso, será necessário um software de desktop para criar serviços de mapas a serem usados no aplicativo de mapeamento da web. Se você já tem acesso a esses recursos ou pode adquiri-los, eu recomendaria definitivamente procurar as soluções ESRI.
Um benefício aqui é que você pode codificar em vários idiomas. Existem APIs específicas da ESRI para Flex e Silverlight:
Flex: http://help.arcgis.com/en/webapi/flex/index.html Silverlight: http://help.arcgis.com/en/webapi/silverlight/index.html
Atualmente, parece que a tendência na programação da Web está se afastando de soluções que exigem plug-ins e são específicas do fornecedor (acima), e em direção a estruturas mais baseadas em padrões e de código aberto. A ESRI abordou isso com a API Javascript:
Javascript: http://help.arcgis.com/en/webapi/javascript/arcgis/
Se você der uma olhada nesses sites da API, a documentação é muito boa. Além disso, estão disponíveis fóruns para ajuda da comunidade em problemas específicos. O suporte técnico através da ESRI também é muito bom. Portanto, tudo se resume a preço e recursos; se você já possui esses aplicativos ou tem orçamento, esse é um caminho excelente; caso contrário, vale a pena examinar as soluções de código aberto acima.
Se você deseja simplesmente criar um protótipo de algo para um estudo de viabilidade para mostrar ao seu chefe, que é o que eu tinha que fazer há um ano, então, para o back-end, eu recomendaria o Geoserver por causa de sua interface web amigável, apoiada por alguns shapefiles simples. Para o frontend, o OpenLayers é uma escolha fantástica, com muitas amostras no site. Não sou um programador da web, mas achei fácil copiar / colar / ajustar as amostras de javascript. Coloquei tudo isso em uma VM do VirtualBox para manter tudo em um só lugar e não quebrar meu ambiente de desenvolvimento normal, usando os pacotes do repositório UbuntuGIS.
Para produção, existe uma enorme quantidade de coisas por aí que depende do seu caso de uso. Para mim, acabei optando pelo Mapserver porque não é tão inchado quanto o Geoserver, rodando como um processo fast-cgi em um servidor web lighttpd. Precisávamos do WFS-T (que o Geoserver suporta de imediato), mas o Mapserver não, por isso usamos tinyows. Também servimos coberturas (WCS), suportadas pelo Mapserver, e estamos procurando integrar o Rasdaman para seu suporte ao WCS-T. Tudo isso é apoiado por um banco de dados PostGIS.
Eu recomendo dividir seu aplicativo em back-ends, médios e front-ends, e ler os prós e contras de cada software. Pode haver apenas algumas soluções para cada camada, mas isso aumenta combinatoriamente.
Eu acredito que a ESRI faz produtos capazes de fazer tudo isso, mas isso vai custar. Se o seu tempo é pouco, a rota comercial pode ser o caminho a seguir, mas a rota de código aberto está indo em algumas direções muito interessantes e eu suspeito que acabará superando qualquer coisa que a ESRI possa inventar. Mas então eu sou um fanboi tendencioso do FOSS :)
Você pode consultar o MangoMap www.mangomap.com .
Você deve conseguir criar o mapa que deseja com as ferramentas disponíveis.
Ele é hospedado e gratuito, portanto, é necessário muito pouco tempo e esforço para implantar.
Para os recursos que você está sugerindo, eu veria qual é a pilha mais direta e fácil de instalar que atende às suas necessidades. O software dizendo "Você pode ter rápido, poderoso ou barato. Escolha dois." definitivamente se aplica aqui.
Se você planeja fazer consultas simples, como identificar recursos, o poder do PostGIS provavelmente será um exagero. É muito mais simples fazer o upload de shapefiles como um armazenamento de dados diretamente no GeoServer.
O OpenLayers mais uma vez é ótimo e possui muitas funcionalidades, como suporte para sistemas de coordenadas que não o WGS84 e o Web Mercator, mas se você não usar essa funcionalidade, eu observaria o Leaflet , na minha experiência, ele tem muito menos curva de aprendizado acentuada para novos usuários.
Além disso, se você não tiver um requisito que diga que precisa hospedar o aplicativo em seu próprio servidor, poderá dar uma olhada em algumas das opções hospedadas, pois terá muito mais retorno a partir do momento em que investir. Usando o MangoMap ou GeoCommons, você provavelmente acabará com um mapa superior para seus usuários sem precisar escrever uma única linha de código.
Se este é um projeto em que você deseja escrever algum código, também pode dar uma olhada no CartoDB e no MapBox . Se você quiser saber mais sobre todas essas plataformas hospedadas, escrevi um e-book gratuito sobre o assunto que fornece todos os detalhes necessários para selecionar uma.
Divulgação : Sou o Fundador do MangoMap
Há muitos lugares para começar ao desenvolver um mapa da web.
Se você possui experiência como desenvolvedor da Web, comece investigando os vários serviços disponíveis, que permitem publicar um mapa na Web. Há outras perguntas respondidas aqui neste site que fornecerão informações valiosas sobre as diferenças entre as plataformas disponíveis.
Se você está começando do zero e não deseja se comprometer com uma plataforma específica, atenda aos seus requisitos de negócios. Como você vai desenhar seus dados no mapa? Como os dados serão atualizados? Quem vai usar este site? O que eles farão com isso? Tomar essas decisões com antecedência o ajudará a montar as peças ou a fazer escolhas que apoiarão a expansão em direção a uma meta.
Quanto ao custo ... prefiro emprestar um provérbio moderno: "Bom, rápido, barato. Escolha dois." É formalmente definido como o Triângulo de Gerenciamento de Projetos , que descreve o equilíbrio entre custo, cronograma e escopo para oferecer qualidade.
Eu também comecei recentemente a jornada de mapeamento da web depois de muitos anos no lado do banco de dados.
O que realmente me ajudou foi aprender os princípios básicos de programação, usar o MapBasic para MapInfo (ou estou assumindo Python para a multidão esri) realmente me ajudou a entender como os computadores "pensam".
A partir daí, a CodeAcademy foi uma dádiva de Deus. É uma maneira muito divertida e intuitiva de aprender programação. Pode levá-lo dos exemplos "Hello World" até programas totalmente funcionais e interativos. A curva de aprendizado é gradual e entende que algumas pessoas são talentosas com essas coisas e outras (como eu) não são.
O segundo conselho seria instalar o GeoServer e examinar as solicitações de demonstração para ver como os serviços da Web são estruturados e como eles funcionam. Dê uma olhada nas visualizações de camada para ver como Javascript e HTML operam juntos. Você pode literalmente copiar esse código de visualização de camada (exibir a origem da página), salvá-lo em algum lugar e começar a mexer.
Escolas W3 - tem exemplos interativos com os quais você pode brincar e se adaptar ao seu novo código. Se você optar pelo JavaScript, o JS Fiddle também é muito bom.
Se você é um programador Java, dê uma olhada no Geomajas .
Existe um arquétipo automatizado que permite que você comece em minutos ( veja aqui ). Você pode adicionar camadas extras etc.
Você pode usar o OpenLayers para o lado do cliente. É estável, fácil e teve vários exemplos de como usar um WFS (no seu caso para conectar-se ao PostgreSQL) etc. Geoserver, OSM o usa para fins de renderização.
Você também pode dar uma olhada no GeoExt, que fornece o widget extJS para a construção de mapas. Novamente, o geoext usa OpenLayers para renderização de mapa.
Há também uma estrutura baseada em PHP que usa o MapServer (o OpenLayers já suporta) como GeoMoose , CartoWeb etc.
Eu voto no OpenLayers, já que você pode decidir sobre o design da página inteira, diferentemente da estrutura php executada nas ligações do MapScript que possuem um modelo padrão e não achei fácil gerenciar uma base de código tão grande.
Três habilidades necessárias para quase todo o desenvolvimento da web, incluindo o mapeamento da web, são html, css e javascript. Os recursos para aprender esses idiomas são amplos. O tópico de onde começar a aprender como desenvolver aplicativos de mapeamento da web é bastante bem abordado na questão de troca de pilhas do GIS Como iniciar o mapeamento da web?
Um recurso para analisar o desenvolvimento de aplicativos de mapeamento da web, se você tiver experiência limitada em programação, é o mapbox . Você pode produzir mapas da web sem qualquer codificação, embora eu ache que seria difícil produzir um mapa da web tão complicado e interativo quanto o que você usa no seu exemplo sem usar uma linguagem de script como javascript ou python.
Uso leafletjs e acho muito simples. É baseado em javascript e pode desenhar recursos usando várias fontes de dados. Basicamente, você insere o código do mapa em um arquivo .html e, em seguida, exibe o arquivo. Não posso comentar em outras APIs, mas acho que o google é bastante simples, assim como os Openlayers.
Além disso, existem serviços como o MapBox que não exigem que você hospede o arquivo html, mas apenas enviem seus dados para eles.
Eu acho que a maneira mais fácil de ir com o plugin qgis + qgis2leaflet. Você pode editar o que quiser no qgis do que exportar para o folheto e enviar para o seu servidor da web. Ou se você escolher a maneira mais interessante que:
Em vez do geoexplorer, eu usaria o javascript do folheto, porque parece melhor e fica mais suave ... mas leva algum tempo para copiar / colar juntos algum código. Aqui está um exemplo: http://gis.xyz
O que é importante notar é que o Web-Gis é um campo vasto e muito trabalho já foi realizado em vários projetos e bibliotecas para ajudar nesse empreendimento. Portanto, precisamos ver se há algo que você pode reutilizar, em vez de começar do zero.
A má notícia é que não existe uma biblioteca / aplicativo popular para mapeamento da web em php. A boa notícia é que você pode não precisar de um.
Eu recomendaria que você primeiro tentasse entender o WebMapping e os projetos e bibliotecas que já estão presentes. Para isso, você pode consultar estas perguntas:
Depois de entender as opções disponíveis, você deve esclarecer seus requisitos. Olhando para sua pergunta, você tem requisitos muito básicos: Mostrar encomendas no mapa Permitir consultas, obter atributos para encomendas e mostrá-las ao usuário, seja no resultado de uma consulta ou quando o usuário clica nela.
Esse tipo de trabalho é possível usando o Google Maps, mas eu não o recomendaria, pois a API do Google Maps é uma tarefa difícil de se trabalhar quando você tem grandes quantidades de dados.
Em vez disso, sugiro que você use uma solução Geoserver / OpenLayers, desde que possa trabalhar com JavaScript. Você pode nem precisar de nenhum código php, se seus dados estiverem todos nos atributos dos recursos.
Uma boa alternativa para o OpenLayers, que é a grande biblioteca javascript popular para mapeamento da web, é o Leaflet .
Eu uso o Leaflet com o GeoServer para fazer alguns mapas interessantes, incluindo alguma interatividade. Requer codificação personalizada, mas não muito, e é muito mais fácil de usar que o OpenLayers.
Antes de decidir entre o Leaflet e o OpenLayers, pode valer a pena dar uma olhada na próxima versão, que promete uma API limpa e melhor documentação:
O OpenLayers 3 é uma reescrita abrangente da biblioteca, direcionada aos mais recentes recursos do HTML5 e CSS3. A biblioteca continuará a ter amplo suporte para projeções, protocolos padrão e funcionalidade de edição do OpenLayers 2.x. A nova versão da biblioteca se concentrará em melhorias de desempenho, construções mais leves, componentes visuais mais bonitos, uma API aprimorada e muito mais. Alguns dos principais destaques são:
- - - - - - 8 <- - - - - -Uma nova base de código: oferece uma oportunidade de limpar algumas das maneiras "desajeitadas" de fazer as coisas no OpenLayers. A equipe também criará com novos designs de API, que serão mais acessíveis a todos.
Documentação de alta qualidade: A nova versão também apresentará documentação com novos exemplos e designs padrão no OpenLayers 3.0. Fazer um kit de ferramentas se destacar é mais do que o código real.
Eu começaria com a API do Google Maps . É grátis e fácil de trabalhar. Ele usa Javascript, que pode ser aprendido através de vários bons recursos. Eu recomendaria o Codecademy se você é novo no JS.
Existem muitas fontes de dados gratuitas disponíveis no mercado que podem ser incorporadas ao Google Maps de várias maneiras (KML, banco de dados, GeoRSS, etc.). A maioria dos estados e muitas universidades possui repositórios de dados gratuitos que podem ser incorporados ao seu mapa.
Um dos meus sites favoritos para exemplos do Google Maps é o Google Maps Mania . Existem ótimos exemplos de mapas que mostram o que é possível nesta API.
O GeoPHP pode valer uma olhada.
O GeoPHP é uma biblioteca PHP nativa de código aberto para realizar operações de geometria. Ele foi escrito inteiramente em PHP e, portanto, pode ser executado em hosts compartilhados. Ele pode ler e gravar uma grande variedade de formatos: WKT (incluindo EWKT), WKB (incluindo EWKB), GeoJSON, KML, GPX, GeoRSS. Ele funciona com todas as geometrias de recursos simples (Point, LineString, Polygon, GeometryCollection etc.) e pode ser usado para obter centróides, caixas delimitadoras, área e uma grande variedade de outras informações úteis.
E você pode aumentar um pouco com a extensão GEOS (supondo que você tenha privilégios de administrador para instalar o GEOS).
Com o GEOS, você obtém o conjunto completo de funções openGIS em PHP como Union, IsWithin, Touches etc. Isso significa que os aplicativos obtêm um "conjunto principal" útil de operações de geometria que funcionam em todos os ambientes e um "conjunto estendido" de operações para ambientes que possuem o GEOS instalado.
Bem, o script PHP personalizado pode ser uma solução mais robusta (e simples). Afinal, os dados espaciais são apenas linhas em um banco de dados e podem ser consultados normalmente. Não há necessidade de software GIS de servidor pesado e / ou sintaxe horrível de filtro OGC. Se eu estivesse no seu lugar, eu armazenaria os dados no banco de dados PostgreSQL com extensão PostGIS, escreveria o back-end do PHP para consultar o banco de dados e recuperar dados no formato GeoJSON (veja esta essência ) e um aplicativo da web baseado em OpenLayers - é mais flexível que a API do Google Maps, mas você ainda pode usar os mapas base do Google, se quiser.
Para obter ajuda sobre a escolha, a pergunta Alternativas ao ArcGIS Online e Quais livros, periódicos, recursos eletrônicos são mais valiosos para expandir o conhecimento de Informações Geográficas? pergunta para recursos de aprendizagem.
Os custos de mapeamento da Web incluem hospedagem (pagando por um site) e espaço de armazenamento do servidor (se você estiver usando serviços de mapeamento, consulte os preços do MapBox e do CartoDB por mês). Por fim, conhecer o desenvolvimento da Web será muito importante para criar seu mapa.
Bem, existem algumas bibliotecas de mapeamento que você pode usar.
A primeira (e provavelmente a mais conhecida) seria a API do Google Maps , no entanto, acho que isso pode ser bastante complexo se você for relativamente novo no mapeamento da web.
Sugiro dar uma olhada no Leaflet.js ou no Mapbox.js . O Mapbox.js foi criado com o Leaflet em mente e o Mapbox possui ótimos tutoriais sobre várias tarefas que você pode executar com o Mapbox.js. Folheto também tem alguns exemplos e recursos .
Aqui estão links específicos para exemplos que devem ajudar a levá-lo na direção correta.
Se você precisar de um mapa para clicar em um país e uma imagem aparecer, poderá dar uma olhada no exemplo da Mapbox para Vincular a dados externos
Você pode aprender como o código interage no JSFiddle para o projeto
Se você precisar de mais documentação no Mapbox, poderá ler os Guias do Mapbox ou mergulhar no código um pouco mais usando a seção Exemplos
Sou um novo webmapper e fui encaminhado para a Visualização de Dados de Scott Murray para a Web . Seu ebook pode ser lido aqui: http://chimera.labs.oreilly.com/books/1230000000345/ gratuitamente. É para 'não codificadores', extremamente informativo e tem muitos exemplos práticos.
Você pode usar o UMN Map Server. Lá, você pode usar scripts PHP (é chamado de scripts de mapa). Isso é baseado no servidor Apache. Se você deseja um banco de dados, pode usar o MySQL com extensões espaciais ou o PostgreSQL com o postGIS ...