8 votos

Creación de una capa de azulejos de Bing y Google para Leaflet

Quiero utilizar la biblioteca Javascript de Leaflet para mostrar una capa de azulejos de Google y 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 ni para Bing ni para Google. ¿Alguna idea?

Gracias.

11voto

Mark Puntos 21

Google Maps

Google Maps prohíbe estos usos. El único acceso permitido a su contenido es a través de su API de mapas (véase sección 10.1 del ToS).

Servicios web de Bing Maps

Bing Maps es el único proveedor comercial que conozco que permite estos usos, a través de su Servicios web característica. Usted podrá Necesito una clave API, sin embargo.

Bing será un poco molesto de conseguir, ya que utilizan quadkeys (un índice único para cada baldosa) en lugar de coordenadas {x,y} (bueno comparación allí). Por lo tanto, tendrá que crear un nuevo L.ILayer que se ajusta a este esquema de URL.

Dado que, por supuesto, no eres el primero en tener esta petición ;)  algunos otros ya han codificado este tipo de implementaciones. Uno de ellos es un solicitud de extracción pendiente al repo de Leaflet, el otro está disponible directamente como a Gist . Prueba el que prefieras, y añade tu peso al pull request para que se fusione más rápido :)

0 votos

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 representar los datos de los mapas de Google utilizando OpenLayers o Leaflet, siempre y cuando la solicitud para obtener los datos se haga utilizando la API de mapas?

0 votos

@RyanClark Bueno, de las Condiciones de Uso de Google 10.1.1: "Por ejemplo, no debe acceder a los mosaicos de mapas o a las imágenes a través de interfaces o canales que no sean la(s) API de Mapas". Así que, mientras OpenLayers proporcione un capa de abstracción sobre la API oficial de Mapas está bien. No estaría bien si accediera a las baldosas directamente. Al menos, así lo entiendo yo ;)

0 votos

Google ha dado permiso por escrito a OpenLayers (no puedo encontrar el post en este momento para enlazarlo), así que estás en el claro si utilizas OpenLayers.

2voto

mattcole Puntos 494

Puedes intentar utilizar directamente los azulejos de Bing maps. Creo que esto no cumple con los TOS de Bing, pero registra la clave en Microsoft, dales el enlace de derechos de autor de la implementación de mapas, y no debería haber ningún problema. Mira por ejemplo Mapas de todo para ver los azulejos de Bing en vivo dentro de la API de Google Maps. Si a continuación comprueba http://www.mapsofall.com/public/js.js , hay una URL concreta de las baldosas de Bing.

2voto

zovits Puntos 211

Sé que google maps lo prohíbe, sin embargo si usas este plugin, puedes hacerlo.

Compruebe el google.html archivo bajo el examples carpeta.

Cambia la línea 15 por:

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

Entonces debería funcionar para ti :)

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X