Como o Google está exibindo seus Mapas com estilo?

14

Como todos sabemos, o Google mudou o mapeamento da web quando eles introduziram o Google Maps. No momento em que escrevemos isso, os mapas lado a lado agora são a norma no mapeamento da web.

Por exemplo, com o ArcGIS Server, você armazena em cache o maior número possível de camadas em serviços de mapas em cache e, se necessário, extrai qualquer uma das camadas operacionais por meio de serviços dinâmicos ou de recursos.

Depois de ter um serviço em cache, não há como ajustar a cartografia sem precisar criar um novo cache novamente.

O v3 API do Google Maps permite que você estilo o Basemap Google Azulejo. O assistente de estilo permite que você modifique quase todos os aspectos do Google Map, para atender às suas necessidades.

Entendo da perspectiva da API, como você pode enviar sua solicitação de estilo em um objeto JSON.

O que eu quero saber é: como eles estão fazendo isso no back-end? (Seria bom incluir uma referência)

Se eu olhar o Assistente de estilo com o Firebug e fazer alterações em qualquer coisa, posso ver que novas solicitações GET são feitas para retornar imagens PNG de volta ao cliente.

insira a descrição da imagem aqui

Existem variações quase infinitas que você pode aplicar, portanto elas não podem ter todos os ladrilhos pré-cozidos e prontos para servir. Portanto, posso apenas assumir que eles estão criando esses blocos sob demanda?

Simon
fonte
1
Meu palpite é que todos os diferentes tipos e rótulos de recursos são blocos PNG transparentes pré-cozidos que são recoloridos e mesclados no backend para cada solicitação.
blah238
Boa teoria. Se isso for verdade, haveria MUITOS ladrilhos pré-cozidos. Pense em quantos ladrilhos existem de qualquer maneira e, em alguns casos, apenas para mostrar o mar em todas as cores HEX.
Simon
2
Não, eu quis dizer que eles seriam coloridos novamente em tempo real. Muito mais fácil recolorir uma imagem existente do que consultar geometria real e renderizar uma nova a partir do zero. É claro que eu não tenho nenhuma idéia como ele realmente funciona, como você disse, é apenas uma teoria :)
blah238
1
Essa é uma boa teoria blah238. Eles precisariam apenas alterar a paleta no png em vez dos dados de varredura reais.
Matthew Snape

Respostas:

9

Em outras implementações (como em nossa implementação ), isso é feito com modificação de paleta; você pode recolorir rapidamente uma imagem PNG sem tocar nos dados reais, se souber a paleta original completa.

O Google não faz isso; eles provavelmente têm um banco de dados baseado em blocos e blocos de dados vetoriais que são rasterizados em tempo real.

tmcw
fonte
Obrigado tmcw. No entanto, para uma resposta correta, estou procurando uma com evidências de apoio. Pode ser que só possamos teorizar como eles fazem isso.
Simon
2
Boa sorte para encontrar evidências de suporte para detalhes que não sejam da RP da infraestrutura do Google :). Dito isso, o que me leva a essa conclusão (além dos sussurros dos Googlers) é a qualidade de suavização de serrilhado entre as cores e a capacidade de remover recursos em vários níveis, combinados com os rápidos ciclos de re-renderização.
tmcw
3

Sei que isso não é exatamente o que você está procurando, mas achei que seria útil de qualquer maneira. Você viu este exemplo de Odoe, que usa filtros de css nos mapas? Pode ser limitado fora do chrome

http://www.odoe.net/apps/mapstyler/

https://github.com/odoe/MapStyler

David Wilton
fonte
você está brincando com isso para trazer as antenas do Bing em escala de cinza. É ótimo uso de css, mas os ladrilhos ainda aparecem coloridos e depois mudam para X depois de carregados. Pode ser um pouco perturbador. Q relacionado aqui, mas para a API de gmaps stackoverflow.com/questions/13564712/…
Simon
2

Encontrei duas patentes enquanto fazia essa pergunta:

Renderização dinâmica de mapa em função de um parâmetro do usuário US8103445

e

Renderização de textura com base em demanda em um sistema de renderização com base em bloco US20110254852

Não foi possível encontrar nenhuma informação oficial sobre quem usa esses esquemas ou similares, mas acho que os desenhos do segundo artigo parecem bastante fáceis de implementar e não vejo nenhuma razão para que eles não devessem ter implementado isso ou algo ainda mais eficiente. enquanto isso.

mxfh
fonte
Patentes interessantes. Não tenho certeza de que eles cuidem completamente do estilo, mas é uma leitura interessante.
Devdatta Tengshe