2015-02-20 20 views
5

Tôi đang cố gắng thêm bản đồ tờ rơi vào trang web của mình và tôi đang sử dụng ô Mapbox. Tôi không thể có được bản đồ trong hướng dẫn cơ bản để làm việc, tất cả những gì tôi thấy là một màn hình màu xám. Tôi có một id mp từ mapbox và tôi đã thêm nó vào mã của tôi. Đính kèm mã liên quan bên dưới.Rắc rối với bản đồ tờ rơi (TẢI ô cửa bản đồ không được phép 401)

var map = L.map('map').setView([51.505, -0.09], 13); 
    L.tileLayer('http://{s}.tiles.mapbox.com/v3/rakshak.l937n12c/{z}/{x}/{y}.png', { 
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>', 
    maxZoom: 18 
    }).addTo(map); 

và đây là những gì tôi nhìn thấy trong giao diện điều khiển:

GET http://a.tiles.mapbox.com/v4/rakshak.l937n12c/13/4093/2723.png 401 (Unauthorized) 

Trong css Tôi có chỉ cần đặt chiều cao bản đồ để height: 100vh.

Tất cả những gì tôi thấy trên màn hình là bộ điều khiển thu phóng bản đồ và màn hình màu xám. Tôi có thiếu một bước quan trọng không?

Sửa 1: Cập nhật mã JS:

var map = L.map('map').setView([51.505, -0.09], 13); 
L.tileLayer('http://api.tiles.mapbox.com/v4/rakshak.l937n12c/{z}/{x}/{y}.{format}?access_token=pk.eyJ1IjoicmFrc2hhayIsImEiOiJ5cHhqeHlRIn0.Vi87VjI1cKbl1lhOn95Lpw', { 
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>', 
maxZoom: 18 
}).addTo(map); 
+1

Mã thông báo được yêu cầu: xem https://www.mapbox.com/developers/api/maps/. Yêu cầu của bạn sẽ trông giống như: http://api.tiles.mapbox.com/v4/{mapid}/{z}/{x}/{y}.{format}?access_token= '. Bạn chỉ đặt 'mapid' – slaur4

+0

Xin cảm ơn vì đã trả lời, tôi đã thêm mã thông báo truy cập từ màn hình mopbox và tôi vẫn thấy màn hình màu xám và thông báo lỗi tương tự trong bảng điều khiển. Tôi đã thêm mã cập nhật js vào câu hỏi của mình. – DrkStr

Trả lời

9

Thiết lập tileLayer bạn để bao gồm id của bản đồ của bạn và mã thông báo người dùng của bạn:

var tileLayer = L.tileLayer('https://{s}.tiles.mapbox.com/v4/{mapId}/{z}/{x}/{y}.png?access_token={token}', { 
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>', 
    subdomains: ['a','b','c','d'], 
    mapId: <YOUR MAPID HERE>, 
    token: <YOUR TOKEN HERE> 
}); 

Dưới đây là một ví dụ làm việc trên Plunker: http://plnkr.co/edit/Kf3f8h?p=preview

+0

Đã cố gắng này, bây giờ tôi nhận được lỗi "Uncaught TypeError: undefined không phải là một chức năng" trong dòng leaflet.js: 7. – DrkStr

+1

Vâng, mã tôi đưa cho bạn, công trình, bạn có thể kiểm tra ví dụ. Tôi có thể nói gì? Đây là một Plunker khác sử dụng MapID và Token của bạn: http://plnkr.co/edit/kzA9Vw?p=preview, nó hoạt động. Những gì bạn đang làm sai tôi không thể nhìn thấy dựa trên mã bạn cung cấp. Bạn có thể chia sẻ một Plunker hoặc JSfiddle có vấn đề của bạn? – iH8

+0

Không bao giờ sử dụng plnkr trước vì vậy không chắc chắn nếu tôi đã làm nó đúng. Đây là liên kết: http://plnkr.co/edit/9TLUXY9zutATHHBdCdMk?p=preview – DrkStr

Các vấn đề liên quan