Como desenhar e visualizar mapas personalizados com base nos dados do OSM?


35

Eu gostaria de poder usar os dados do openstreetmap para uma região específica como fonte e "extrair" desse mapa as melhorias de infraestrutura - principalmente estradas.

Eu quero que ele seja auto-hospedado (sem estragar nenhum dado nos servidores OSM reais), quero ter uma flexibilidade e um nível de detalhes bastante grandes no processo de edição e seria bom renderizá-lo de uma maneira bonita.

Não estou familiarizado com muitos softwares GIS. Na verdade, não é tão importante ter dados OSM como fonte, também pode ser uma imagem de satélite. O importante: desenho flexível vinculado a coordenadas reais e visualização do mapa.

Por onde eu poderia começar?

Espero que esta pergunta faça sentido aqui :)


Em qual plataforma você está olhando? Você pode usar o Google Maps para desenhar formas?
Jared Updike

Jared, você quer dizer a interface simples "Meus Mapas" do Google Maps? Isso não é o suficiente para mim :) Eu preciso de um nível de detalhe muito maior. Ou você quer dizer outra coisa?
Arconaut

Para que parte do mundo você quer fazer isso? Existem muitos dados de estradas em domínio público, em algumas partes do mundo.
DJQ

Respostas:


16

O tipo de dados XML do OpenStreetMap .osm pode ser analisado e renderizado em vários pacotes de software. Para uma gaveta de blocos de mapa personalizada um pouco pronta para uso, sugiro: http://tiledrawer.com --- um produto que usa o EC2 da Amazon e por Michal Migurski - que fornece outros ponteiros neste segmento :)

Você também pode verificar "Construa seu próprio servidor OpenStreetMap" http://weait.com/content/build-your-own-openstreetmap-server Ele usa uma pilha do Ubuntu 10.04 / PostGIS / Mapnik.

Obviamente, verifique a licença do OpenStreetMap antes de compilar. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .


Obrigado, me deparei com o TileDrawer uma vez, mas, pelo que entendi, preciso ter uma instância do Amazon EC2 para isso. Eu não quero fazer isso, por agora, talvez eu sou muito preguiçoso :)
arconaut

Eu li que você pode executar a imagem do EC2 em sua própria máquina usando o VirtualBox.
James

Site da Tiledrawer foi abandonded, o repo Github ainda está lá, mas também inativo: github.com/migurski/Tile-Drawer (ver também na OSM Wiki )
chrki

11

Encontrei exatamente o que precisava: maperitivo . Este aplicativo pode carregar dados OSM (* .osm pode ser salvo pelo JOSM fi) e renderizar imagens agradáveis ​​com base em regras muito flexíveis e personalizáveis.


Descobri que o Maperitive trava se tentar carregar um arquivo .osm.bz2 ou mesmo um arquivo .osm.pbf. Os arquivos que eu tentei tinham cerca de 185 MB, então nada perto do tamanho do arquivo planet.osm.bz2 (19 GB!) Que eu realmente preciso. Como você carregou os arquivos?
de Drew Noakes

Drew, acho que tentei apenas áreas muito menores.
Arconaut

O Maperitive é de código fechado, construído sobre o .Net, não funciona no Linux. Mas definitivamente tem uma vantagem sobre o Mapnik: estilo mais fácil.
Vanuan

3
Sugiro o TileMill como uma alternativa de código aberto.
Vanuan

9

Duas possibilidades, dependendo da quantidade de dados do OSM em si que você deseja editar.

Uma é hospedar seu próprio servidor OSM, com uma cópia dos dados que você pode editar livremente. O software para isso é conhecido como "The Rails Port", pode ser encontrado aqui: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Outra é usar a cartografia lado a lado do OSM como pano de fundo para seus próprios dados. Não estou realmente qualificado para responder a essa pergunta, mas você pode achar que ferramentas como o QGIS (http://www.qgis.org) podem fornecer o rastreamento de novas formas com base em um mapa base do OSM.


8

A criação do mapa é dividida em várias etapas:

  • inserir os dados geográficos (que são pontos, linhas e polígonos com tags apropriadas)
  • estilo (especifique a aparência do recurso no mapa)
  • renderização em uma imagem raster (transforme dados geográficos e estilo em uma imagem usando o software de renderização)

Você deseja uma ferramenta que faça todas as suas peculiaridades por trás de uma interface de usuário fácil de usar. Mas, infelizmente, não existe essa ferramenta (espero que exista). Portanto, você precisa escolher uma ferramenta dedicada para cada etapa.

Eu uso a seguinte combinação de ferramentas / fluxo de trabalho:

Inserindo / fazendo download dos dados geográficos

  • Editor JOSM :
    • faça o download de um mapa do servidor osm
    • editar um mapa
    • faça o upload de suas alterações no servidor osm (por que você não compartilha seu trabalho?)
    • salve um mapa em um arquivo * .osm
  • PostGIS / osm2pgsql
    • atualize o arquivo de estilo de importação, se necessário
    • importar um mapa para o servidor local

Se você não quiser compartilhar seu trabalho, poderá configurar o servidor OSM local e fazer com que o JOSM funcione com ele (tornando desnecessário salvar um mapa em um arquivo * .osm e usar osm2pgsql). Ainda assim, esteja ciente da licença se você usar partes dos dados OSM.

Styling

O estilo consiste em duas etapas:

  • camadas de configuração / fonte de dados
  • personalizar linhas / polígonos / pontos / saída de texto.

Existem dois formatos para estilizar um mapa: arquivo de estilo mapnik "bruto" e CartoCSS.

  • Mapnik é uma biblioteca de renderização que alimenta o site OSM.
    • Configurar e editar o arquivo de estilo mapnik
    • abra o arquivo de estilo no visualizador de mapnik

Um arquivo de estilo Mapnik "bruto" é complicado de editar e o CartoCSS é uma alernativa mais simples. O CartoCSS (anteriormente Cascadenik) é convertível em arquivo no estilo mapnik. Tilemill é uma ferramenta que eu uso para editar / visualizar o CartoCSS.

  • Tilemill .
    • Estilize / visualize seu mapa no tilemill
    • exportar para o arquivo mapnik * .xml.

Renderização

  • Script python personalizado para mapnik
    • Atualizar caixa delimitadora / nível / tamanho do zoom
    • renderize o mapa no arquivo * .png.

[Opcional] Coloque seu mapa on-line

Obviamente, você pode usar um arquivo * .png grande para o seu mapa, mas imagine quanto tempo levaria para fazer o download! Então, você divide seu mapa em blocos com diferentes níveis de zoom.

  • Mapa -> Mapnik -> MBTiles -> Mapbox

    • Você pode colocar seu mapa on-line usando o Tilemill e o MapBox.

Infelizmente, para atualizar seu mapa de acordo com as novas edições do OSM, você ainda precisará fazer o download e renderizá-lo localmente.

Portanto, há uma solução melhor: CartoDB. O CartoDB suporta o CartoCSS. Com ele, você não precisa instalar nada localmente. Basta importar seus dados para ele, estilizar com CartoCSS e clicar no botão Compartilhar. Há um limite de tamanho de db grátis. Mas como é de código aberto, você pode hospedá-lo por conta própria. Há outra limitação: você só pode visualizar pontos, linhas ou polígonos.

PS

Toda ferramenta tem suas próprias limitações, então tente experimentar.



3

Se você está procurando um bom editor de mapas personalizado, dê uma olhada no OCAD , é um software profissional de desenho de mapas. Existe uma versão mais antiga disponível gratuitamente na página de download.

Ele não possui nenhum suporte especial para OSM, mas você sempre pode usar uma imagem exportada do OSM como plano de fundo.


3

Existe uma opção mais simples para você brincar com os dados do Open Street Map no formato OSM. Você pode experimentar o FME no Software Seguro (www.safe.com)

Para obter mais informações, você pode ler sobre o suporte OSM aqui: http://blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

Eu usei o FME algumas vezes para criar conjuntos de dados de demonstração para treinamento em minha região usando dados FME e OSM

~ SRG



2

Você pode usar o The Style Editor da Cloudmade (braço comercial da OSM)

Livre para se inscrever e usar como indivíduo.

Com uma interface de usuário muito boa, você poderá criar seu próprio estilo de mapa. Quando você personalizar seu mapa com suas cores, etc., poderá usá-lo para incorporar ou criar um link para a página com seu mapa personalizado.

Veja a publicação do blog http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (mais atualizações lá)


Cloudmade não faz parte do OpenStreetMap: O CloudMade faz parte do OpenStreetMap?
scruss

1

Os mapas oficiais do OSM são estilizados com o TileMill e renderizados com o Mapnik. Ambas as ferramentas são extremamente poderosas e flexíveis. O que é bom para o OSM, deve ser bom para você!

Infelizmente, o procedimento de configuração do TileMill é complicado, pelo menos se você deseja renderizar dados OSM. Existem muitas descrições para o Ubuntu ou Mac , mas os comentários nos fóruns mostram que o procedimento é complicado no Windows.

Você encontra uma descrição detalhada sobre a renderização de mapa com o TileMill no Windows no Wiki do TopoMapCreator .

Segue o procedimento clássico:

  • Etapa A: Download e instalação do software necessário (principalmente um banco de dados Postgresql / PostGis)
  • Etapa B: Fazendo Download e Importando Dados OSM para o Banco de Dados
  • Etapa C: Fazendo Download e Processando Polígonos Terrestres
  • Etapa D: Criando um Projeto TileMill
  • Etapa E: Modelando e exportando o mapa com o TileMill

Mais sobre a Wiki do TopoMapCreator .


1

Outra maneira de criar mapas personalizados com dados do OSM é com a biblioteca Mapsense.js e os blocos de vetor Mapsense Earth. Há uma interface do usuário para escolher cores em http://styler.mapsense.co/ e demonstrações mostrando o css e o javascript em developer.mapsense.co/examples/

Um benefício de uma API como essa é que você pode adicionar o que quiser com javascript / d3 (imagens de satélite, outras geo / topojson, etc).

Divulgação completa: Eu trabalho no Mapsense. :)


0

Se você deseja apenas criar uma imagem de mapa estática, verifique esta maneira de criar um arquivo .svg inkscape a partir de .osm s, embora seja um pouco lento. Você pode abrir o arquivo .svg ou, se quiser convertê-lo para qualquer outro formato (png?), Ou até carregá-lo no 3d studio ou no Blender:) ...

(Além disso, o JOSM parece ter um plug-in que funciona com osmarender, mas não consegui executá-lo desta vez só que tentei ...)

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.