Dung lượng đĩa và số lượng gạch cho lớp thế giới


9

Tôi đang suy nghĩ về việc thử nghiệm tạo ra một lớp thế giới cho sơ đồ web.

Trong bối cảnh này, tôi muốn biết làm thế nào tôi có thể tính toán số lượng gạch (256x256 cho tilecache nếu tôi nhớ) tôi sẽ cần cho n cấp độ trong tọa độ WGS84.

Có thể tôi sẽ sử dụng một giải pháp tổng hợp với các ô được tạo sẵn và trên thế hệ bay nhưng tôi phải biết ở cuối không gian đĩa có sẵn nếu mỗi ô được tạo và số lượng tệp sẽ đại diện.

Có hai mục tiêu, thời gian cần thiết và dung lượng đĩa cần thiết.

Mọi thông tin đều được chào đón

Biên tập:

Tôi đã tìm thấy tập lệnh này để tính toán số lượng gạch cần tạo tùy thuộc vào mức thu phóng và phạm vi dữ liệu của bạn. Xem ý chính này https://gist.github.com/1675606


Câu trả lời:



5

Tôi đã tạo một bảng cheat liệt kê tổng số ô cho các mức thu phóng cụ thể.

Nó có hai bảng. Một hiển thị số lượng mức thu phóng cần thiết để hiển thị mọi thứ ở một tỷ lệ nhất định, bắt đầu từ một ô hiển thị cho mọi người.

level 1: 1 # Person
level 2: 5 # Car
level 3: 21 # House building
level 4: 85 # Square
level 5: 341 # Small neighbourhood
level 6: 1,365 # Football stadium
level 7: 5,461 # Small farm
level 8: 21,845 # Central park New York
level 9: 87,381 # Entire airport
level 10: 349,525 # Small city (Copenhagen)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Large city (London)
level 13: 22,369,621 # Medium Island (Mallorca)
level 14: 89,478,485 # Large Island (Sicily)
level 15: 357,913,941 # Small country (Denmark, Estonia, Taiwan)
level 16: 1,431,655,765 # Medium Country (Korea, Greece)
level 17: 5,726,623,061 # Region (Southern Europe, Arabian Peninsula)
level 18: 22,906,492,245 # Small continent or large country (China)
level 19: 91,625,968,981 # Medium continent (Africa) or huge country (Russia) 
level 20: 366,503,875,925 # Asia
level 21: 1,466,015,503,701 # The World

Một cái khác hiển thị số mức thu phóng cần thiết nếu bắt đầu bằng bản đồ thế giới và các mức chi tiết lũy tiến:

level 1: 1 # The World
level 2: 5 # Large contenents
level 3: 21 # Medium continents, huge countries
level 4: 85 # Small continents, large countries
level 5: 341 # Region (Southern Europe, Arabian Peninsula)
level 6: 1,365 # Medium Country (Korea, Greece)
level 7: 5,461 # Small country (Denmark, Estonia, Taiwan)
level 8: 21,845 # Large Island (Sicily)
level 9: 87,381 # Medium Island (Mallorca)
level 10: 349,525 # Large city (London)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Small city (Copenhagen)
level 13: 22,369,621 # Entire airport
level 14: 89,478,485 # Central park New York
level 15: 357,913,941 # Small farm
level 16: 1,431,655,765 # Football stadium
level 17: 5,726,623,061 # Small neighbourhood
level 18: 22,906,492,245 # Square
level 19: 91,625,968,981 # House building 
level 20: 366,503,875,925 # Car
level 21: 1,466,015,503,701 # Person

1

Đây là câu hỏi rất cũ, nhưng có (ít nhất) hai cảnh báo quan trọng, tùy thuộc vào nhiệm vụ trong tay.

  1. Tác vụ có thể dẫn đến kết xuất một số lượng lớn các ô trống mà không có sự quản lý cụ thể của quy trình tạo ô.
  2. Kích thước trên đĩa của hình chóp gạch có thể lớn hơn (hơn 100%) so với dự kiến ​​từ tổng kích thước tệp thành phần của nó, do kích thước cụm tối thiểu 4KB (còn gọi là kích thước khối) trên hầu hết lưu trữ.

(2) đã được giải thích khá nhiều, nhưng như một ví dụ tôi có một kim tự tháp trong đó tổng kích thước tệp là 168MB, nhưng kích thước của nó trên đĩa là hơn 600 MB. Nó làm cho nó quan trọng hơn nhiều để có được (1) đúng.

Theo (1): xem xét nếu công việc 'tệp thế giới' của bạn chỉ liên quan đến ranh giới quốc gia.

Bất kỳ ô nào không phải là ranh giới đều có thể được phục vụ bằng một trong hai ô 'alt' - ô 'biển' (màu xanh) cho bất kỳ nơi nào không nằm trong một quốc gia hoặc lát 'khối' (tô) cho các ô hoàn toàn nằm trong một biên giới quốc gia. Chỉ các ô bao gồm một đoạn đường viền cần được hiển thị - phần còn lại có thể được 'mặc định' đi.

Tại sao lại thế này? Bởi vì tất cả các khối gạch của một loại cụ thể (loại trong (biển, đất) hoặc loại trong (biển, quốc gia a, quốc gia b, v.v.)) sẽ giống hệt nhau.

Ngói 'khối' có thể là một màu cho mỗi quốc gia hoặc một màu cho toàn thế giới hoặc một ô trống (nếu bạn phủ lên các đường viền quốc gia trên nền).

Gạch 'Khối' chỉ cần được hiển thị một lần (ví dụ: 1 lát 256x256, được lấp đầy hoàn toàn với màu mong muốn).

Khi gạch đang được tạo, bạn có thể kiểm tra

(a) nếu 'cha mẹ' của nó - lát ở một mức thu phóng nhỏ hơn - tồn tại; và

(b) nếu nó là một khối 'khối' (nghĩa là nó được lấp đầy hoàn toàn với một màu).

Trong trường hợp (a) gạch không cần phải được kết xuất; nếu cha mẹ không tồn tại thì đó là vì cha mẹ hoàn toàn là một khối và đã bị xóa.

Trong trường hợp (b) (nơi tồn tại cha mẹ nên gạch cần được kiểm tra), nếu đó là khối hình khối thì nó có thể bị xóa khỏi kim tự tháp một cách an toàn. .

Xóa các ô này trong quá trình tạo sẽ thêm thời gian tối thiểu vào vòng kết xuất ô, nhưng tiết kiệm được dung lượng đĩa lớn. Cách khác là kết xuất mọi thứ và sau đó tìm kiếm đệ quy kim tự tháp cho khối gạch và xóa chúng: việc này mất nhiều thời gian hơn.

Khi kim tự tháp được xây dựng, quy trình gọi ô có thể mặc định thành ô 'khối' nếu nó tìm kiếm các ô / z / x / y và nhận được 404.

Để xem tại sao lại như vậy, hãy xem xét kết xuất zoom 256x256 = 1 trong đó góc phần tư trên cùng hoàn toàn trống. Bạn biết chắc chắn rằng 4 ô ở mức thu phóng = 2 bao phủ cùng một khu vực cũng sẽ trống. Tương tự, 16 ô ở mức thu phóng = 3 và cứ thế.

Vì vậy, bất cứ lúc nào trong quá trình ốp lát trong đó ô có màu khối (hoặc trống), tất cả các lần ở mức thu phóng cao hơn đều có thể bị bỏ qua.

Điều này giúp tiết kiệm lượng lớn dung lượng lưu trữ và rất nhiều thời gian trong quy trình ốp lát.

Một cảnh báo cho những cảnh báo này: một công việc ốp lát phức tạp hơn sẽ chuyển sang các lớp khác nhau ở các mức thu phóng khác nhau. Nếu đây là trường hợp, phải hết sức cẩn thận để đảm bảo rằng thử nghiệm 'cha mẹ' không được thực hiện khi mức thu phóng là một trong đó một lớp mới được bao gồm trong bộ kết xuất.

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.