Criando uma camada de mosaico do Bing e do Google para folheto


8

Desejo usar a Biblioteca Javascript do Leaflet para exibir uma camada de mosaico do Google e do Bing, embora não tenha certeza de como construir o URL. A documentação mostra um exemplo usando o OSM:

var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/YOUR-API-KEY/997/256/{z}/{x}/{y}.png',
cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18});

Mas, por alguma razão, não posso duplicar isso para o Bing ou o Google. Alguma ideia?

Obrigado.

Respostas:


11

Google Maps

O Google Maps proíbe esses usos. O único acesso permitido ao conteúdo é por meio da API do Google Maps (consulte a seção 10.1 dos ToS).

Serviços da Web do Bing Maps

O Bing Maps é o único provedor comercial que conheço que permite esses usos, por meio do recurso de Serviços da Web . Você precisará de uma chave de API.

O Bing será um pouco chato de se obter, pois eles usam quadkeys (um índice exclusivo para cada bloco) em vez das coordenadas {x, y} (boa comparação lá). Portanto, você precisará criar uma nova L.ILayerimplementação que esteja em conformidade com esse esquema de URL.

Como você obviamente não é o primeiro a receber essa solicitação;), alguns outros já codificaram essas implementações. Uma é uma solicitação de recebimento pendente para o repositório do Leaflet, a outra está diretamente disponível como um Gist . Tente o que você preferir e adicione seu peso à solicitação pull para torná-la mais rápida :)


MattiSG, as restrições do Google implicam que o OpenLayers esteja fora de linha? A API fornece uma classe para uma camada do Google no seu mapa do OpenLayers: dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/… É certo retratar dados do mapa do Google usando OpenLayers ou Leaflet, desde que o A solicitação para obter os dados é feita usando a API do Google Maps?
22612 Ryan Clark

@RyanClark Bem, do ToS 10.1.1 do Google: “Por exemplo, você não deve acessar mosaicos ou imagens de mapas por meio de interfaces ou canais que não sejam a API do Google Maps.”. Portanto, desde que o OpenLayers forneça uma camada de abstração sobre a API oficial do Google Maps , tudo bem. Não seria bom se ele acessasse os blocos diretamente. Pelo menos, é assim que eu entendo;)
MattiSG

O Google concedeu permissão por escrito ao OpenLayers (não consigo encontrar a postagem no momento para vincular o link), portanto, você estará livre se usar o OpenLayers.
Devdatta Tengshe

2

Eu sei que o Google Maps proíbe, mas se você usar este plugin, poderá fazê-lo.

Verifique o google.htmlarquivo na examplespasta.

Mude a linha 15 para:

var ggl = new L.Google("ROADMAP);

Deve funcionar para você :)

No entanto, não sei se isso obedece aos Termos de Serviço do Google!


2

Você pode tentar usar os blocos de mapas do Bing diretamente. Eu acho que isso não é compatível com os Termos de Serviço do Bing, mas registre a chave na Microsoft, forneça o link de direitos autorais da implementação de mapas e não deverá haver problemas. Confira, por exemplo, Mapas de todos para ver blocos do Bing ao vivo na API do Google Maps. Se você verificar http://www.mapsofall.com/public/js.js , haverá um URL concreto dos blocos do Bing.

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.