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 :)

arconaut
fonte
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 .

Glennon
fonte
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.

arconaut
fonte
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.

Michal Migurski
fonte
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.

Vanuan
fonte
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.

Jonas
fonte
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

SRG
fonte
3

Os blocos OSM padrão estão no formato "Google lado a lado", chamados de Tile Map Service (TMS). No momento, você não pode usar o QGIS for TMS. Mas você pode acessar o WMS derivado do OSM consultando outros serviços de terceiros. Alguns estão vinculados aqui: http://wiki.openstreetmap.org/wiki/WMS#Public_WMS_Servers

maning
fonte
11
Você pode usar o plug-in OpenLayers ( github.com/sourcepole/qgis-openlayers-plugin ) no QGIS para obter blocos do OSM.
mattwigway
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á)

Mapperz
fonte
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 .

Günter Schmudlach
fonte
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. :)

jmk
fonte
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 ...)

ntg
fonte