Pergunta

Eu estou procurando uma biblioteca Java para dados de mapa de exibição de várias fontes, incluindo shapefile, WMS, WFS, Google Maps, possivelmente ArcIMS, etc. Parece que OpenLayers é a coisa mais próxima que eu quero, exceto que é um JavaScript biblioteca, e eu estou escrevendo um aplicativo swing.

GDAL parece promissor, mas tanto quanto eu posso dizer que não haverá ligações Java até que "em algum momento" no futuro.

Só para ficar claro, eu estou olhando para uma única API Java que eu possa usar para mapas de exibição de um número de mapa servidores / fontes.

Alguém sabe se qualquer coisa como este existe, e se não, para onde ir a partir daqui? Devo construir esta API em cima de GeoTools? Ou ...

Foi útil?

Solução

GeoTools é uma boa aposta para isso. Os Google Maps Termos de Serviço proíbem acessando telhas Google Maps, exceto através do (JavaScript ) Google Maps API, portanto, não é provável que você vai encontrar uma base de código disponível gratuitamente para acessá-los em uma aplicação Java. restrições semelhantes provavelmente se aplicam a outras camadas comerciais.

Outras dicas

Este é um caso onde você tem muita escolha. GeoTools é realmente uma biblioteca de nível baixo e uma excelente escolha para algumas mãos sobre o trabalho. Nós recentemente começou a utilizar balanço para o nosso código de exemplo, a fim de fazer tutoriais mais visual . Disse que eles são códigos tutorial somente e não representam um sistema multi threaded, como uDig.

Se você está procurando aplicações Swing para começar a forma não é a família Jump (infelizmente espalhados através de um processo de desenvolvimento fechado - OpenJUMP representa uma coleção dos vários garfos), gvSIG que tem excelente apoio financeiro em Span, e assim por diante.

Você também pode querer olhar para o lado da biblioteca do projeto Deegree (que eu me lembro produzida uma aplicação desktop também?).

Eu também recomendo a olhar para alguns dos espectadores mapa de azulejos produzidos em torno de conjuntos de dados NASA World Wind and Open Street Map. Estes serão mais semelhante à experiência OpenLayers.

Disclaimer estou no comité de direcção para GeoTools e uDig.

uDig provavelmente satisfazer as suas necessidades muito bem se você pode trabalhar no âmbito RCP. Eu não tenho nenhuma experiência com uDig ou NASA World Wind, mas se você precisa colocar os recursos de mapas em um aplicativo existente, da NASA World Wind Java SDK é outra opção. É padrões da indústria extensível e oferece suporte para dados geoespaciais. Eles têm um informativo wiki aqui . Vi pela primeira vez a NASA World Wind no JavaOne 2007 e que se parece com o Java SDK realmente decolou nem parecido com a versão .Net está vendo um monte de novos lançamentos, mas poderia atender às suas necessidades, se eles são básicos .

OpenMap é supostamente muito bom.

Aviso: a licença "aberto" que eles usam é considerado não-livre pelo Fedora e GNU.

Eu usei MapXtreme para Java , que era muito bom e suportados vários formatos. Não é barato, mas oferece.

Ele é voltado para prestação de formatos de dados vetoriais.

Você pode usá-lo lado servidor ou cliente.

MapScript tentar java www.mapserver.org

CU

Tenha um olhar em uDig

http://udig.refractions.net/

É baseado nas obras eclipse RCP com Geotools e pode exibir a maioria dos tipos de dados espaciais.

que é open source e parece ter um pouco de atividade

Java ArcGIS Engine vai fazer o que você precisa. Ele se integra em uma plataforma GIS totalmente integrado. Existem ferramentas para criar mapas de qualidade cartográficos, publicá-los, anfitrião-los para fora, ou para aplicativos personalizados de construção.

Ele não trata todos os formatos que você mencionou, mas eu estava bem sucedida exibindo Web mapeia usando modestmaps para Processamento (encontrá-lo aqui ). A PApplet processamento pode ser incorporado em uma GUI balanço como explicado aqui .

Você pode usar o Google Maps, se você pode incorporar um navegador da Web em seu aplicativo Java Swing, tente JDIC ou Projeto DJ. Veja também Existe uma maneira de incorporar um navegador em Java ? tenho vindo a trabalhar com essa solução em C # - incorporação de IE. No entanto, você deve incorporar um navegador web boa, geralmente algum web browser nativo e isso limita a sua solução desse tipo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top