Renderizando o estilo OpenStreetMaps personalizado (terra = branco, água = preto): preciso de um computador dedicado apenas para fazer isso?


10

EDIT: meu objetivo não é usar o OpenStreetMap ou cloudmade como um mapa da web. Descrevi exatamente o que eu quero ("um conjunto completo e rasterizado de ladrilhos para o mundo inteiro com zoom = 10 (cerca de 68 Gigapixels, água = preto, terra = branco, sem etiquetas"). Eu só pretendia usar o cloudmade.com como um exemplo para ilustrar o que estou fotografando. (Como é, o estilo cloudmade fica a apenas 90% do caminho.) Preciso dos ladrilhos off-line. Preciso da imagem (68 Gpix) que descrevi como uma máscara em uma tarefa maior de mapa raster para um mapa personalizado que estou construindo usando dados da NASA e USGS.


Como uma ilustração

Eu criei um estilo personalizado que mostra o que eu quero:

(Sem rótulos, sem estradas, sem características de qualquer tipo, exceto todas as características da água (rios, lagos, oceanos, assim por diante) como pretas, com a terra sendo branca e o agradável antialiasing de valores do Mapnik no meio.)


O que eu realmente quero

Gostaria de um conjunto completo e rasterizado de peças para o mundo inteiro com zoom = 10 (cerca de 68 Gigapixels).

Eu considerei baixar e instalar o Planet.osm (11 GB compactado) e executar o Mapnik (por dias / semanas?) Para obter esses dados. No entanto, o Planet.osm parece que vai demorar 100 GB ou talvez 1 TB depois que o banco de dados e o índice forem construídos. Não tenho esse tipo de espaço em disco no meu laptop e, como não preciso do conjunto de dados completo, existe um subconjunto menor dos dados que eu poderia baixar ( aqui diz que os dados do polígono são de apenas 700 MB)? Na verdade, pelo que sei, os dados dobraram de tamanho no ano passado, então eu precisaria de uma máquina robusta para lidar com isso.

Existe uma maneira mais fácil e direta de obter esses blocos (nível 10, preto e branco, basta pousar na água) em lotes, ou eu basicamente preciso de um computador dedicado para fazer isso?


esse mapa na nuvem parece muito bom. Simples, mas agradável. O branco no preto com o azul claro funciona muito bem.
Nathan W

Acompanhamento (com alguns resultados preliminares bem-sucedidos de naturalearthdata.com): gis.stackexchange.com/questions/1917/…
Jared Updike

Respostas:


7

Você precisa usar o OSM? ou um conjunto de dados vetoriais semelhante, porém menor, funcionaria para você? Em caso afirmativo, considere a Terra Natural ( http://naturalearthdata.com ), que possui um belo litoral na escala 1: 10M, área de terra, oceano, rio e camadas de lago. Em seguida, você pode usar o GeoServer ou o MapServer localmente (ou em um servidor remoto) para criar seus blocos a qualquer profundidade que precisar com qualquer um dos caches de blocos habituais (TileCache, GeoWebCache etc.)

Da sua pergunta, não está claro para mim que você precisa de blocos - se tudo o que você quer é uma máscara, provavelmente você pode fazer isso usando GRASS - v.toRaster () (eu acho).


Eu acho que você quer dizer naturalearthdata.com
Jared Updike

você está certo - eu consertei isso.
Ian Turton

4

Você não precisa baixar o conjunto de dados inteiro.

Você pode apenas baixar os arquivos de polígono em

http://downloads.cloudmade.com/

ou

Um pouco mais atualizado (31/08/2010) http://download.geofabrik.de/osm/

hack sujo (não recomendado)

Um bloco padrão (256x256px)

http://b.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/ 1 /256/15/17599/10746.png

Observe o 1 = StyleID, portanto, se você substituir o estilo pelo seu ID

http://maps.cloudmade.com/?styleId= 22688 #

http://b.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/ 22688 /256/15/17599/10746.png, obtenha o bloco 256x256px em formato png com seu estilo. Um script pode ser usado para baixar todos os requisitos.

Embora eu me inscrevesse na chave da API Lite da Web e usasse a API para incorporar um iframe. (como recomendado pela cloudmade)

fonte: http://developers.cloudmade.com/projects/tiles/documents


3

Não entendo por que o Mapperz acha que o uso da API documentada é um "truque sujo", mas de qualquer maneira - você pode usá-lo livremente, sem limites, para baixar todos os blocos necessários. Definitivamente será mais fácil fazer do que:

  • baixar os dados
  • instalar e configurar o Mapnik
  • escreva o XML estilo Mapnik
  • tente executar generate_tiles.py
  • definitivamente com problemas obscuros com qualquer uma dessas etapas

Portanto, a resposta para a pergunta do OP é: basta escrever o script que usará a API HTTP do CloudMade para baixar os blocos.

EDIT: Se você realmente deseja fazer a renderização por conta própria, sugiro que comece com a leitura da instalação do Mapnik e dos guias XML . Para gerar os blocos, você precisará usar esse utilitário no repositório OpenStreetMap.

Para qualquer dúvida sobre o Mapnik, use a lista de discussão mapnik-users ou visite o canal #mapnik IRC no FreeNode.


2
Os termos: cloudmade.com/terms_conditions Você deve usar a API - em vez de 'raspagem de bloco' direta. Os mesmos termos se aplicam à API do Google Maps Importante: A raspagem das imagens de bloco dos servidores do Google por qualquer motivo é contra os termos de serviço e não é aconselhável.
Mapperz

Eu acho que seria muito legal configurar o Mapnik e lançar o Planet.osm nele, mas parece que meu computador / disco rígido atual é inadequado. Mas vou mantê-lo na minha lista de opções. Pensando bem, pode ser possível obter alguém com o Planet.osm já importado para o Mapnik para fazer um despejo do OSM apenas das camadas (água / terra) de que preciso. Eu deveria pelo menos perguntar no canal de IRC. Isso pode ser proveitoso.
Jared Updike

3

Se tudo o que você precisa são as costas, elas podem ser adquiridas por apenas 260 MB: http://hypercube.telascience.org/~kleptog/

Eu segundo a sugestão da Terra Natural acima; você achará melhor e mais rápido para renderizar nos níveis mais baixos. Você só precisa se preocupar com o OSM nos zooms 8 e acima, mais ou menos (tente alguns testes para ver)


Isso tem água doce? (Lagos, reservatórios, rios?) Posso calcular minha própria costa a partir dos conjuntos de dados de elevação SRTM de 50m / 500m. Na verdade, eu esperava reunir peças rasterizadas de toda a água (fresca e sal), porque funcionaria de maneira uniforme na minha configuração atual (personalizada). O estilo Cloudmade que mostrei está a centímetros de ser perfeito, mas não é - não é realmente preto e branco (não sei como consertar isso) e, por alguma razão, existem rótulos aleatórios aqui e ali, o que eu realmente não quero e não consigo descobrir como remover.
Jared Updike
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.