Tạo một lớp gạch Bing và Google cho tờ rơi


8

Tôi muốn sử dụng Thư viện Javascript Tờ rơi để hiển thị cả Lớp Ngói của Google và Bing, mặc dù tôi không chắc cách tạo url. Tài liệu cho thấy một ví dụ sử dụng OSM:

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

Nhưng vì một số lý do, tôi không thể sao chép điều này cho Bing hoặc Google. Có ý kiến ​​gì không?

Cảm ơn.

Câu trả lời:


11

bản đồ Google

Google Maps cấm sử dụng như vậy. Quyền truy cập duy nhất được phép vào nội dung của họ là thông qua API Maps (xem phần 10.1 của ToS).

Dịch vụ web Bing Maps

Bing Maps là nhà cung cấp thương mại duy nhất mà tôi biết cho phép sử dụng như vậy, thông qua tính năng Dịch vụ web của họ . Bạn sẽ cần một khóa API, mặc dù.

Bing sẽ hơi khó chịu khi họ sử dụng các hình tứ giác (một chỉ mục duy nhất cho mỗi ô) thay vì tọa độ {x, y} ( so sánh tốt ở đó). Do đó, bạn sẽ cần tạo một L.ILayertriển khai mới phù hợp với sơ đồ URL này.

Vì tất nhiên bạn không phải là người đầu tiên có yêu cầu này;), một số người khác đã mã hóa các triển khai đó. Một là yêu cầu kéo đang chờ xử lý cho repo Leaflet, cái còn lại có sẵn trực tiếp dưới dạng Gist . Hãy thử bất cứ điều gì bạn thích và thêm trọng lượng của bạn vào yêu cầu kéo để làm cho nó được hợp nhất nhanh hơn :)


MattiSG, các hạn chế của Google có ngụ ý rằng OpenLayers không phù hợp không? API cung cấp một lớp cho một lớp Google trong vòng OpenLayers bạn bản đồ: dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/... Is it okay để miêu tả dữ liệu bản đồ của Google sử dụng OpenLayers hoặc Tờ rơi, miễn là yêu cầu lấy dữ liệu được thực hiện bằng API Maps?
Ryan Clark

@RyanClark Chà, từ Google ToS 10.1.1: Ví dụ, bạn không được truy cập các ô bản đồ hoặc hình ảnh thông qua các giao diện hoặc kênh khác ngoài (các) API của Maps. Vì vậy, miễn là OpenLayers cung cấp lớp trừu tượng trên API Bản đồ chính thức , mọi thứ đều ổn. Sẽ không ổn nếu nó truy cập trực tiếp vào gạch. Ít nhất, đó là cách tôi hiểu nó;)
MattiSG

Google đã cấp quyền bằng văn bản cho OpenLayers (Tôi không thể tìm thấy bài đăng ngay bây giờ để liên kết đến), vì vậy bạn sẽ rõ nếu bạn sử dụng OpenLayers.
Devdatta Tengshe

2

Tôi biết google maps cấm nó, nhưng nếu bạn sử dụng plugin này , bạn có thể làm điều đó.

Kiểm tra các google.htmltập tin trong examplesthư mục.

Thay đổi dòng 15 thành:

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

Nó sẽ làm việc cho bạn :)

Tuy nhiên, tôi không biết nếu điều này tuân theo ĐKDV của google!


2

Bạn có thể thử sử dụng gạch bản đồ Bing trực tiếp. Tôi nghĩ rằng điều này không tuân thủ Bing Tosh, nhưng đăng ký khóa tại Microsoft, cung cấp cho họ liên kết bản quyền từ việc triển khai bản đồ và sẽ không có vấn đề gì. Kiểm tra ví dụ Bản đồ của tất cả để xem các lát Bing trực tiếp bên trong API bản đồ của Google. Nếu sau đó bạn kiểm tra http://www.mapsofall.com/public/js.js , có URL cụ thể của gạch Bing.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.