Crear una capa de mosaico de Bing y Google para el folleto

8

Quiero usar la biblioteca Javascript de folleto para mostrar tanto la capa de mosaico de Google como la de Bing, aunque no estoy seguro de cómo construir la url. La documentación muestra un ejemplo usando OSM:

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

Pero por alguna razón no puedo duplicar esto para Bing o Google. ¿Algunas ideas?

Gracias.

Duncan Rager
fuente

Respuestas:

11

mapas de Google

Google Maps prohíbe tales usos. El único acceso permitido a su contenido es a través de su API de Maps (consulte la sección 10.1 de los ToS).

Servicios web de Bing Maps

Bing Maps es el único proveedor comercial que conozco que permite tales usos, a través de su función de servicios web . Sin embargo, necesitará una clave API.

Bing será un poco molesto, ya que usan quadkeys (un índice único para cada mosaico) en lugar de las coordenadas {x, y} (buena comparación allí). Por lo tanto, deberá crear una nueva L.ILayerimplementación que se ajuste a este esquema de URL.

Como, por supuesto, no es el primero en tener esta solicitud;), algunos otros ya han codificado tales implementaciones. Una es una solicitud de extracción pendiente para el repositorio de folletos, la otra está directamente disponible como Gist . Pruebe lo que prefiera y agregue su peso a la solicitud de extracción para que se fusione más rápido :)

MattiSG
fuente
MattiSG, ¿las restricciones de Google implican que OpenLayers está fuera de línea? La API proporciona una clase para una capa de Google dentro de su mapa OpenLayers: dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/… ¿Está bien retratar los datos del mapa de Google usando OpenLayers o Leaflet, siempre que el solicitud para obtener los datos se realizan utilizando la API de Maps?
Ryan Clark
@RyanClark Bueno, de Google ToS 10.1.1: "Por ejemplo, no debe acceder a mosaicos de mapas o imágenes a través de interfaces o canales que no sean las API de Maps". Por lo tanto, siempre que OpenLayers proporcione una capa de abstracción sobre la API oficial de Maps , está bien. No estaría bien si accediera a los mosaicos directamente. Al menos, así es como lo entiendo;)
MattiSG
Google ha dado permiso por escrito a OpenLayers (no puedo encontrar la publicación en este momento para vincular), por lo que está claro si usa OpenLayers.
Devdatta Tengshe
2

Sé que Google Maps lo prohíbe, pero si usa este complemento, puede hacerlo.

Verifique el google.htmlarchivo debajo de la examplescarpeta.

Cambie la línea 15 a:

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

Entonces debería funcionar para ti :)

Sin embargo, no sé si esto cumple con los TOS de Google.

tUrG0n
fuente
2

Puede intentar usar los mosaicos de mapas de Bing directamente. Creo que esto no cumple con Bing TOS, pero registre la clave en Microsoft, bríndeles el enlace de copyright de la implementación de mapas, y no debería haber ningún problema. Consulte, por ejemplo, Maps of All para ver mosaicos de Bing en vivo dentro de la API de Google Maps. Si luego verifica http://www.mapsofall.com/public/js.js , hay una URL concreta de los mosaicos de Bing.

Blazinec
fuente