Tải bản đầy đủ (.doc) (41 trang)

Luân án bản đồ dang TILE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.09 MB, 41 trang )

1. Chương 1: Giới Thiệu Hệ Thống Tile-based.
2. Chương 2: Chương Trình Tile Hợp Lý.
2.1. Giới Thiệu.
2.2. Chương Trình Tile Toàn Cầu.
2.3. Ví Dụ Blue Marble.
2.4. Mô Hình Nền Tảng Mercator.
2.5. Đề Án Bắt Đầu sơ đồ Tile.
2.6. Tiêu Chuẩn Hóa Lược Đồ.
2.7. Nguồn Tham Khảo.
3. Tile Map Client.
3.1. Tính Toán Các Tile.
3.1.1.
Quy Mô map Rời Rạc.
3.1.2.
Quy Mô map Liên Tục.
3.2. Lấy Các Tile.
3.2.1.
Lưu Trữ Tile Cục Bộ.
3.2.2.
Lấy Các Tile Từ Network.
3.3. Tổng Quan Về Map View.
3.3.1.
Quy Mô Map View Rời Rạc.
3.3.2.
Quy Mô Map View Liên Tục.
4. Các Thao Tác và Xử Lý Ảnh.
4.1. Các Khái Niệm Hình Ảnh Cơ Bản.
4.2. Hình Ảnh Không Gian Địa Lý.
4.2.1.
Các Tập Tin Có Định Dạng Đặc Biệt.
4.3. Thao Tác Với Hình Ảnh.


4.3.1.
Nội Suy 1: Nearest Neighbor.
4.3.2.
Nội Suy 2: Bilinear.
4.3.3.
Nội Suy 3: Bicubic.
4.4. Chọn Định Dạng Cho Các Tile.
4.5. Chọn Kích Thước Cho Các Tile.
4.6. Điều Chỉnh Nén Ảnh.
5. Tạo Ảnh Tile.
5.1. Tạo Ảnh Tile Từ Tập Ảnh Ngẫu Nhiên.
5.2. Chuẩn Bị Tạo Tile.
5.2.1.
Tạo Bottom-Up Tile.
5.2.2.
Chọn Mức Cơ Sở Cho Tập Ảnh Nguồn.
5.2.3.
Tạo Tile Dựa Trên Nền Pull Và Push.
5.3. Thuật Toán Tọa Tile.
5.3.1.
Mở Rộng Quy Mô Quá Trình Cho Các Cấp Độ Phân Giải Thấp Hơn


Chương 1: Giới Thiệu Hệ Thống Tile-based.
Hệ thống map Tile-based đang trở thành 1 trong những hệ thống map được sử dụng phổ biến
trong hàng loạt các công cụ tìm kiểm bán đồ trên Web. Ứng dụng map qua Internet đầu tiên được đưa
vào giữa, cuối những năm 1990 bao gồm Yahoo!Map, MapQuest, and Microsoft's TerraServer. Các
loại map trên cho phép ánh xạ tới các ứng dụng map thông qua bộ trình duyệt Web. Hệ thống định vị
map trên nói chung là rất thô sơ. Để thực hiện những chuyển động đơn giản trên map, đa số map yêu
cầu người dùng phải nhắp vào nút mũi tên chỉ dẫn xung quanh tầm nhìn map. Khi người dùng nhắp vào

mũi tên, map di chuyển một lượng xác định trước theo hướng nhắp vào. Cũng có nút để zoom to và thu
nhỏ. Số khác cho phép người dùng kéo và vẽ hộp trên map để dời đi tầm nhìn map.
Tất cả các hệ thống này có vài sự bất lợi như cung cấp và tải các map view một cách rất chậm
chạp bởi vì map view thường đã được đại diện bởi một tập tin ảnh lớn. Mỗi lần map đã được di chuyển
sang trái hoặc phải; toàn bộ hình ảnh sẽ biểu hiện lại và gửi lại đến khách hàng mặc dù chỉ một phần
hình ảnh là mới. Tuy nhiên, giao diện tương đối đơn giản và có ưu thế để phát triển giao diện .Giao
diện cơ bản thích hợp với trình duyệt Web gần đây. Giao diện map có thể được viết hoàn toàn trong
HTML hoặc với JavaScript rất rất nhỏ. Hai là, vì tất cả lệnh đã được xử lý, người dùng có thể lưu trữ
nhiều map. Cũng có các Map View được xây dựng như là một ứng dụng trên máy tính.Hệ thống này
phức tạp hơn và sử dụng nền tảng phát triển công nghệ và plugin trình duyệt như Java hay Flash.
Google Maps đã được giới thiệu vào năm 2005 và thay đổi đáng kể cách thức mọi người
xem map. Thay cho các phương pháp điều hướng map cồng kềnh và chậm chạp, Google Maps
cung cấp những gì đã được biết đến như là một giao diện kiểu "Slipp Map". Đó là giao diện cho phép
người dùng nhanh chóng di chuyển, zoom to map và được viết không hoàn toàn bằng HTML và
JavaScript. Cũng như rất nhiều các ứng dụng map Web trình diện một giao diện tương tự giao diện
map. Cuối cùng loại giao diện “Slipp Map” xuất hiện ở nhiều nơi bao gồm cả các thiết bị máy tính xách
tay và điện thoại di động. Một chìa khóa cho phép công nghệ xây dựng map dựa trên Tile. Ứng dụng
map đã được thực hiện bằng cách sử dụng map nền cái mà đã bị phá vỡ thành những Tile image.
Những Tile đã được lưu trữ, và sẵn sàng được trả lại, trên một máy chủ. Bởi vì chúng đã sẵn sàng được
trả lại, chúng có thể được gửi cho khách hàng một cách nhanh chóng. Các Tile được giải quyết một
cách rời rạc vì thế chúng có thể được lưu trữ bởi các dịch vụ bộ nhớ đệm Internet và trình duyệt của
khách hàng. Các hình ảnh map được chia thành các phần nhỏ, vì vậy khi người dùng định vị được map
view, chỉ có các phần mới của map đã được gửi lại từ máy chủ.
Hệ thống Tile-based mapping có vài điểm mấu chốt cần chú ý để phân biệt với các loại khác.
Dưới đây chúng ta sẽ đề cập tới những vấn đề đó:
1. Map View dựa trên nhiều cấp độ zoom riêng biệt, mỗi mức tương ứng với một quy mô map cố
định.
2. Nhiều Tile image được sử dụng để ảo hóa một Map View.
3. Tile image có thể truy cập bằng cách sử dụng một chương trình rời rạc.
4. Tile image được lưu trữ trên một hệ thống máy chủ được gửi đến khách hàng với một tốc độ

nhanh nhất có thể
Dưới đây là những nhân tố bắt buộc trong hệ thống map Tile-based
1. Sự định vị Tile được sinh ra sau một phép chiếu toàn cầu.
2. Tile chủ yếu được phân tán bằng cách sử dụng một kiến trúc hệ thống client/server.
3. Tile được tổ chức trong những lớp nhỏ và cố định


Chương 2: Chương Trình Tile Hợp Lý.
2.1. Giới Thiệu
Tile-based hệ thống map sử dụng một chương trình Tile hợp lý, nó chiếu Trái đất đến một bề
mặt hai chiều và phân chia bề mặt thành một loạt các lưới khoảng cách đều nhau (hình dưới).

Đề án Tile hợp lý xác định địa chỉ rời rạc các ô map, các phương pháp để tạo ra nhiều cấp độ zoom của
Tile, và phương pháp dịch giữa các địa chỉ Tile và một hệ thống không gian địa lý liên tục phối hợp.
Đề án Tile hợp lý là yếu tố nền tảng của một map dựa trên Tile. Nó là một đa phân giải, giữa
khoảng cách lưới. Mỗi Chương trình thường gắn với chiếu map hai chiều. Lược đồ địa chỉ này cho
phép một hình ảnh Tile để được truy cập trực tiếp với tọa độ rời rạc. Ví dụ, thay vì yêu cầu một hình
ảnh map với một ranh giới là hình chữ nhật ta có thể mô tả nó với những con số liên tục thực như [100,0, 30,0] [-80,0, 40,0], một Tile có thể được yêu cầu từ một mạng lưới với mức độ, và địa chỉ cột,
và hàng mô tả với các giá trị nguyên rời rạc.
Đề án Tile hợp lý bao gồm một ánh xạ giữa địa chỉ của một Tile, tọa độ không gian địa lý đối
với khu vực được bao phủ bởi Tile. Nói chung, có một số cách để phát triển một chương trình Tile hợp
lý. Chúng ta có thể làm cho các chương trình tùy chỉnh phù hợp với giới hạn và kích thước của mỗi tập


dữ liệu, hoặc chúng ta có thể tạo ra một đơn chương trình Tile toàn cầu có thể được áp dụng cho tất cả
các bộ dữ liệu.
Mỗi phương pháp đều có những lợi ích riêng. Trong việc phát triển một chương trình Tile hợp
lý, chúng ta phải lựa chọn một loạt các độ phân giải điểm ảnh cho mỗi cấp độ. Nếu chúng ta có thể phát
triển một chương trình mới cho mỗi bộ dữ liệu, sau đó chúng ta có thể chọn độ phân giải điểm ảnh cũ
phù hợp với độ phân giải của bộ dữ liệu đó. Sử dụng một chương trình phổ biến toàn cầu, chúng ta đã

sử dụng nhiều độ phân giải. Độ phân giải được xác định trước sẽ buộc chúng ta sắp xếp lại các nguồn
hình ảnh của mình cho phù hợp. Nếu chúng ta xuống một mức, chúng ta hy sinh một số độ phân giải,
và nếu chúng ta lên một mức, chúng ta đang sử dụng không gian lưu trữ nhiều hơn lượng cần thiết. Tuy
nhiên, nếu chúng ta sử dụng một chương trình tùy chỉnh cho mỗi bộ dữ liệu khác nhau, chúng ta sẽ có
vấn đề khả năng tương tác trong việc kết hợp các bộ dữ liệu. Vì sự bất tiện khi dùng Tile với các độ
phân giải khác nhau ở các mức, chúng ta sử dụng một chương trình Tile chung toàn cầu trên mọi bộ dữ
liệu.
2.2. Chương Trình Tile Toàn Cầu.
Chương trình Tile toàn cầu hợp lý được trình bày trong cuốn sách này đã được phát triển để
được dễ dàng hiểu và thực hiện. Chúng ta bắt đầu với chiếu trắc địa, mà chỉ đơn giản miêu tả trái đất
như một hình chữ nhật rộng 360 độ và chiều dài 180 độ. Chiếu cơ sở của chúng ta có tỷ lệ 2-to-1 khía
cạnh tự nhiên để tạo ra chương trình Tile hợp lý của chúng ta. Ở mức độ zoom 1, chương trình này sẽ
có 1 dòng và 2 cột (hình dưới).
Đối với mỗi cấp độ tiếp theo, chúng ta tăng gấp đôi số lượng của các hàng và cột. Trong khi
chúng ta tăng gấp đôi mỗi chiều, mỗi cấp độ tiếp theo có 4 lần số lượng Tile so với cấp trước đó. Như
chúng ta tăng mức độ zoom to, mỗi Tile được chia thành 4 Tile.
Quá trình này và xác định nhiều cấp độ là cần thiết. Trong thực tế, 20 cấp là đủ cho hầu như bất
kỳ dữ liệu map có sẵn. Để đơn giản hóa toán học, chúng ta bắt đầu lập chỉ mục tại 0 thay vì 1. Chương
trình của chúng ta có thể được xác định hoàn toàn về mặt toán học. Phương trình 2.1 cho số cột cho
một mức độ nhất định i. Phương trình 2.2 cho số hàng cho một mức độ nhất định i:

Phương trình (2,3) (2,6) liên quan đến địa chỉ của một Tile trở lại một hình
chữ nhật ranh giới địa lý. Một khi kích thước điểm ảnh được lựa chọn, chúng ta có
thể tính toán độ phân giải của hình ảnh lát gạch về độ mỗi pixel (DPP). DPP rất
hữu ích cho việc liên hệ giữa mức độ zoom to hình ảnh lát gạch mức độ zoom to
liên tục được sử dụng bởi nhiều ứng dụng map. Phương trình (2.8) được sử dụng
để tính toán mức độ cho mỗi điểm ảnh :




Phương trình (2.9) và (2.10) cho thấy phương pháp định vị Tile có chứa một
tọa độ địa lý cụ thể, đưa ra ở một mức độ zoom.

2.3.

Ví Dụ Blue Marble.

Ở đây ảnh vệ tinh toàn bộ trái đấy là JPEG 4096x2048 và nó được bao trùm bởi hình chữ nhật
giới hạn bởi (-180,-90) (180,90). Ở đây chúng ta sử dụng các Tile 512x512 như thế hình ảnh của chúng
ta được đại diện bởi 8 Tile theo chiều rộng và 4 Tile theo chiều cao nó tương ứng với mức zoom 3 theo
tính toán ở phần trên.
2.4. Mô Hình Nền Tảng Mercator.
Các tọa độ Tile có thể được biểu diễn bởi hệ trục tọa độ Decac với nguồn Tile bên trái dưới


cùng hoặc ma trận tọa độ với nguồn Tile bên trái trên cùng .... Tùy thuộc vào mỗi nhà phát triển mà họ
trọn cho mình những nền tảng Mercator khác nhau các cách biểu diễn địa chỉ Tile. Ví dụ nền tảng
Mercator của Google Map:

hay của Yahoo! Map:

2.5. Đề Án Bắt Đầu sơ đồ Tile.
NASA World Wind là một hệ thống phần mềm miễn phí có sẵn trong thế giới
ảo. Nó hỗ trợ cho các bộ hình ảnh Tile làm nền map trên toàn thế giới. World Wind
dùng hệ thống tương tự như chương trình ngói hợp lý chúng ta đã trình bày tại


mục 2.1. Giống như chương trình của chúng ta, World Wind sử dụng phép chiếu
địa lý. Nó cũng sử dụng dưới Tile bên trái, dưới cùng làm nguồn gốc Tile. Sự khác
biệt dễ thấy so với hệ thống Tile hợp lý mà ta đã xây dựng là ở đây sử dụng ma

trận 10 x 5 như thể hiện trong hình 2.10 để làm mức zoom đầu tiên.

Yahoo! Maps sử dụng một phương pháp rất giống với Google Maps, ngoại
trừ lập nguồn Tile ở bên trái, giữa trái đất. Hệ thống World Wind cũng cho phép
bộ dữ liệu Tile mà không bắt đầu ở cấp độ toàn cầu. Họ sử dụng một khái niệm gọi
là "Level Zero, Tile Size" (LZTS) để xác định kích thước của một Tile ở cấp độ phân
giải thấp nhất. Sau đó, họ xác định quy mô bắt đầu thiết lập điểm bắt đầu thiết
lập tùy chỉnh Tile. Tile ở mức số không của chương trình Tile mặc định của họ là
36.0 độ x 36.0 độ, vì vậy LZTS cho chương trình đó là 36.0 .Điểm bắt đầu cho
chương trình đó là ở mức 0. Người ta có thể định nghĩa một Tile với một LZTS khác
nhau sẽ không bắt đầu cho đến khi mức độ zoom sau đó, chẳng hạn như 1, 5,
hoặc 10. Bởi vì theo World Wind cách làm này cho những hình ảnh Tile, LZTS tùy
chỉnh giá trị nên là một yếu tố của 180.
2.6. Tiêu Chuẩn Hóa Lược Đồ.
Có một số cách để tiêu chuẩn hóa hiệu quả lược đồ và sẽ được truyền đạt
trong phần này. The Web Map Tile dịch vụ tiêu chuẩn (WMTS) gần đây đã được
hoàn thành bởi Hiệp hội không gian địa lý mở. Nó cung cấp một cách tiêu chuẩn
nhưng linh hoạt xác định khả năng của một dịch vụ Tile và làm thế nào với giao
diện của nó. WMTS không yêu cầu việc sử dụng một kế hoạch Tile cụ thể, thiết lập
độ phân giải, hoặc chiếu. Thay vào đó, nó cung cấp một phương tiện tiêu chuẩn
xác định các đặc tính này để các máy khách và máy chủ có thể được kết nối với
nhau
Các tiêu chuẩn WMTS không Tile địa chỉ bằng cách sử dụng các tọa độ ma
trận, Tile trên cùng bên trái là nguồn như (0,0). Tuy nhiên, các phần khác của đề
án gạch là cái tạo ra dịch vụ. Nhiều dự đoán khác nhau được cho phép, bao gồm
cả các dự Trắc Địa và Mercator. Hạn chế không được thực hiện trên quy mô Tile
được làm sẵn có, chúng chỉ được định nghĩa bằng cách sử dụng một map quy mô,
có nghĩa là tỷ lệ của một khoảng cách trên map với một khoảng cách trên mặt
đất. map quy mô chỉ nhằm mục đích như là một định danh cho một mức độ zoom
nhất định. Độ chính xác gần đường xích đạo. Tile kích thước có thể thay đổi theo



quy mô, và có thể không có mối quan hệ giữa kích thước ma trận Tile và quy mô.
Tất nhiên, cho phép mức độ linh hoạt làm tăng khó khăn trong việc viết một client
chung để hỗ trợ một server WMTS chung. Để giảm bớt sự phức tạp này, theWMTS
tiêu chuẩn hỗ trợ một tập hợp các quy mô cũng được biết đến thiết lập một máy
chủ. Bằng cách thực hiện một bộ quy mô cũng được biết đến, server trở nên tương
thích với một phạm vi rộng lớn hơn của client. Tập hợp các quy mô trong chương
trình Tile của chúng ta và thiết lập các quy mô trong chương trình Google Maps
Tile Mercator bao gồm WMTS cũng được biết đến bộ quy mô. WMTS hỗ trợ Key-Giá
trị-Pair, tĩnh, và các định dạng yêu cầu SOAP để truy cập vào Tile.
Một nỗ lực để tạo ra một tiêu chuẩn dịch vụ Tile là dịch vụ map Tile (TMS)
đặc điểm kỹ thuật. Các đặc điểm kỹ thuật TMS là không được hỗ trợ bởi một tiêu
chuẩn nào nhưng đã đạt được một số mức độ sử dụng thông thường với một số
server và client. Nó tương tự như tiêu chuẩn WMTS ở chỗ nó cho phép nhiều
chương trình Tile khác nhau được xác định. Các đặc điểm kỹ thuật TMS cho phép
sử dụng quy mô tùy ý định nghĩa của các đơn vị cho mỗi điểm ảnh. Tile nguồn gốc
có thể được xác định bởi các server không giống như trong WMTS nơi mà nó luôn
luôn là Tile trên cùng bên trái. Kích thước Tile có thể được xác định là tốt. Cũng
như với WMTS, nó hỗ trợ hồ sơ giúp chỉ định một map quy mô và chiếu map. Cả
hai chương trình Trắc Địa Tile của chúng ta và chương trình Tile Google Maps
Mercator đều là hồ sơ hỗ trợ. TMS Các định dạng hỗ trợ chỉ có một yêu cầu URL
REST đầy đủ cho Tile.
2.7. Nguồn Tham Khảo.
1. Joan Masó, K.P., Julia, N.: OpenGIS Web Map Tile Service Implementation Standard. Open
Geospatial Consortium Specification (2010)
2. Ramsey, P.: Tile map service specification. URL />Tile_Map_Service_Specification


Chương 3: Tile Map Client

Nhiệm vụ đó là lấy dữ liệu từ server ở đây là các Tiled và hiển thị chúng lên màn hình theo
trình tự để được một map thống nhất và chính xác.
Màn hình hiển thị map cho phép người dùng có thể di chuyển và zoom to thu nhỏ hoặc chúng
có thể là ảnh map tĩnh được xác định trước.
Các client thì có thể dễ dàng tạo ra. Một client thì phải có khả năng thực hiện:
1. Tính Toán các Tiled để lấp vào map
2. Lấy các Tiled
3. Ghép các Tiled trên map
3.1. Tình toán các Tile để lấp vào map
Map View được xác định bởi khu vực địa lý của map và kích thước điểm ảnh của map. Để tính
các Tile, ta cần thiết lập một chức năng, chức năng này xem map view như là đầu vào và trả lại một
danh sách các Tile như là đầu ra. Mỗi Tile được định nghĩa theo quy mô Tile, hàng và cột. Việc thực
hiện chức năng trên còn phụ thuộc vào quy mô của map được xử lý. Đơn giản nhất với client đó là xem
các Tiled như là một tập hợp rời rạc của các mảnh map. Ở các mức độ zoom thì ta có các Tile map có
quy mô và tỷ lệ như nhau. Ngoài ra, Tile client có thể cho phép quy mô map không có trong map Tile.
Ví như một client sẽ hỗ trợ tập hợp liên tục quy mô map, quy mô map liên tục được GIS sử dụng phục
vụ việc phân tích tạo ra dữ liệu không gian địa lý lớn của client. Để hỗ trợ chức năng này, client phải có
khả năng làm việc với dữ liệu ở bất kỳ quy mô map nào. Việc hỗ trợ tính liên tục của các quy mô map
có nghĩa là bất kỳ sự kết hợp nào của không gian địa lý với kích thước map là phải được cho phép
3.1.1.
Quy mô map rời rạc
Quy mô map của Tiled hình ảnh được xác định bởi mức độ zoom (không phải tỷ lệ như
trên map giấy, ví dụ: 1:10000m). Ở đây mức zoom chỉ đơn giản dùng để xác định trình tự của quy mô
map hỗ trợ bởi các Tile. Giả sử như ở chương trước,thế giới được chia thành 2 level hàng và 2 level −1 cột.
Dĩ nhiên là khi tăng mức độ zoom thì quy mô map cũng tăng. Trong trường hợp này mỗi khi tăng só
lượng các ô vuông thì số lượng điểm ảnh được sử dụng để đại diện cho toàn bộ thế giới cũng sẽ tăng.
Một map client sử dụng quy mô rời rạc sẽ đồng ý cho người sử dụng chỉ chọn các cấp được thực hiện
bởi dữ liệu.
Để tính cố lượng Tile cần lấy, client chỉ cần biết mức độ zoom hiện tại, chỉ số Tile của
nguồn map view, và số lượng các Tile yêu cầu để điền vào map view. Chú ý rằng client không biết

không gian địa lý thực của map view. Khi mà map client chỉ cho phép zoom các mức rời rạc, trạng thái
của map có thể được lưu bằng cách chỉ sử dụng hệ thống Tile-based phối hợp hơn là không gian địa lý.
Điều này là quan trọng để tính số Tile với giả định kích thước map là bội nguyên của kích thước size.
Nguồn của map view là chỉ số của Tile nhỏ nhất. Kích thước Tile của map view là chiều
rộng và chiều cao đại diện. Chiều rộng(cao ) của map tính theo pixel thì được chia ra cho chiều


rộng( cao) của các Tile.
3.1.2.
Quy mô map liên tục
Với quy mô map liên tục thì map view ở client phải được định nghĩa bởi không gian địa
lý của khung nhìn và kích thước của khung nhìn theo đơn vị pixel.
Từ định nghĩa trên cần xác định mức zoom hợp lý nhất để xem và lấy Tile cụ thể trong
khu vực địa lý ở cấp độ đó.
Thứ nhất, quy mô map hiện tại phải được tính toán. Thay cho mức zoom ta sử dụng độ
mỗi pixel (DPP) được sử dụng để đại diện cho quy mô map. Chú ý DPP phải là liên tục trên toàn bộ
trái đất và ở mọi mức độ zoom cụ thể, điều này không đúng như ở một số dự map, và quy mô phải
được đại diện bằng phép chiếu các tọa độ thực tế. DPP được tính bằng cách sử dụng không gian địa lý
và kích thước của map view (công thức 3.3).

Các mức độ zoom phải liên quan đến độ mỗi điểm ảnh DPP. DPP cho mỗi độ zoom có
thể được tính bằng cách sử dụng các Tile giới hạn địa lý và kích thước Tile.
Độ mỗi điểm ảnh hiện tại được tính, tiến trình xác định mức độ zoom tốt nhất cho dữ
liệu Tile có thể được bắt đầu. Xác định mức độ zoom để sử dụng như là nguồn của Tile. Với mỗi lần
gia tăng mức độ zoom, client phải lấy 4 lần số lượng Tile để tạo nên ảnh map. Vì vậy tìm mức zoom là
cần thiết để đảm bảo hiệu suất làm việc. Tối ưu mức độ zoom tương đương với việc độ mỗi điểm ảnh
của hình ảnh.
Độ mỗi điểm ảnh của map sẽ không giống nhau ở các độ zoom. Độ mỗi điểm ảnh map
view nằm giữa độ mỗi điểm ảnh của 2 mức zoom. Độ mỗi điểm ảnh của mức độ zoom cao hơn thì sẽ
cho hình ảnh rất rõ nét. Nếu DPP của map view không nhiều hơn 10% DPP của mức zoom thấp hơn thì

ta sử dụng mức zoom thấp hơn. Giảm 10% DPP thì không ảnh hưởng đến chất lượng hình ảnh map,
trong khi đó ta sẽ tiết kiệm được 4 lần yêu cầu Tile và nó sẽ cải thiện được hiệu suất của map client.
Khi mà với mức độ zoom mà không có Tile cần thiết để điền vào map view thì ta sẽ tìm
kiếm bổ sung để tìm cách tối ưu mức độ zoom của nguồn Tile. Nếu mức zoom ở mức độ cao hơn thì nó
sẽ không được dùng mà mức zoom ở phạm vi thấp hơn sẽ được sử dụng ngay cả khi độ mỗi điểm ảnh
không nằm trong phạm vi 10% lỗi. Nếu không có sẵn, cấp độ zoom gần nhất sẽ được kiểm tra, bắt đầu
với độ phóng cao nhất tiếp theo. Hầu hết chỉ tiếp theo 2 độ zoom cao hơn là được sử dụng vì mức zoom
cao sẽ tốn chi phí lớn.
3.2. Lấy các Tile
Các Tile sẽ được lưu trữ cục bộ hoặc lưu trữ trên Network và đôi khi nó được lưu trữ ở


cả hai. Đây là một điều tốt để tạo nên một giao diện trìu tượng để lấy các Tile, vì thế chi tiết của cách
thực hiện được riêng biệt với phận còn lại của chức năng map phía client. Điều này, nếu client muốn
thay đổi hoặc thêm một cơ chế tìm bổ sung thì tác dụng của nó lên toàn bộ hệ thống là rất nhỏ.
3.2.1.
Lưu trữ Tile cục bộ
Khi Tile được lưu trữ cục bộ thì cơ chế lấy chúng sẽ phức tạp hơn. Khi Tile trên
đĩa được sử dụng, thì map client phải có kiến thức bên trong về sơ đồ lưu trữ Tile. Một số trường hợp
các chương trình lưu trữ là khá đơn giản. Số lượng sơ đồ Tile trong một file đơn giản là một ví dụ điển
hình. Mỗi lớp, quy mô, hàng và sự kết hợp với cột xác định một file ảnh đơn giản cái mà dễ dàng tham
chiếu và khai thác chương trình Tile. Ngoài ra phổ biến là cơ sở dữ liệu chương trình lưu trữ Tile. Ở
đây map client phải có khả năng kết nỗi đến cơ sở dữ liệu và thực hiện các truy vấn Tile. Việc kết nối
cơ sở dữ liệu từ phân mềm là rất đơn giản, những phần mềm này được tạo ra một cách dễ dàng. Loại bộ
nhớ hệ thống dùng để lưu trữ các Tile theo yêu cầu cảu map client hiểu cách tổ chức những file này và
nhiều khả năng các chỉ số được sử dụng để tìm Tile bên trong chúng. Trong trường hợp này việc lấy
Tile sẽ khó khăn hơn, nhưng lợi ích của việc thực hiện chương trình lưu trữ như vậy có thể cao hơn. Có
một cơ sở dữ liệu phụ thuộc vào map client là điều nên tránh, nó sẽ rất phực tạp cho việc cài đặt và
quản lý cơ sở dữ liệu.
Nói chung, việc lưu trữ dữ liệu Tile ở bộ nhớ cục bộ nên được giới hạn ở một

kích thước cụ thể. Như khi số lượng dữ liệu tăng lên, thì nhu cầu sử dụng bộ nhớ vật lý để hỗ trợ việc
lưu trữ cũng tăng lên. Thông thường nó không thích hợp để làm một map client với các yêu cầu hệ
thống lớn đơn giản như hỗ trợ dữ liệu đi kèm. Thường thì, map client sẽ bao gồm 1 hoặc 2 lớp map với
độ phân giản bị giới hạn cái này được sử dụng như là map tổng thể cho hệ thống và chỉ cung cấp một
số lượng hạn chế các mức zoom thấp. Lớp map tốt hơn từ nguồn bên ngoài được sử dụng dữ liệu có độ
phân giải cao.
3.2.2.
Lấy Tile từ Network
Việc lấy các Tile map từ mạng là cơ chế phổ biến cho map client để lấy dữ liệu
Tile yêu cầu. Đối với Web-based client, nó là một yêu cầu. Đối với map client, nó làm giảm độ phức
tạp và kích thước của bản cài đặt. Việc lấy các Tile trên Network được thực hiện theo một số cách khác
nhau, cách phổ biến nhất là các Tile được thực hiện thông qua giao thức truyền thông siêu văn
bản( HTTP, giao thức được sử dụng phổ biến cho Web). Cụ thể, từng Tile được lấy bằng cách thực
hiện một phương thức GET thông qua HTTP. Bằng cách sử dụng HTTP GET, mỗi Tile được thực hiện
bởi 1 URL đơn. Khi truy cập Tile qua mạng, client không cần biết cơ chế lưu trữ các Tile trên máy chủ.
Máy chủ có thể lưu trữ các Tile trong một cơ sở dữ liệu, như là các tập tin cá nhân, hay trong một vài
chương trình tập tin tùy chỉnh nhưng điều này không được phản ánh trong URL. Ngoài ra, hầu hết các
ngôn ngữ lập trình cung cấp các thư viện cái mà làm cho việc lấy dữ liệu từ URL sử dụng phương thức
HTTP GET trở nên dễ dàng hơn. Có hai loại URL thường được sử dụng trong các hệ thống lấy Tile.
Thứ nhất, mã hóa các thông số Tile trong đường dẫn URL. Phương thức cấu trúc đường dẫn thường
được sử dụng khi lưu trữ các Tile như các tập tin cá nhân trên hệ thống. Ví dụ:
/>blueMarble ở đây nằm trong lớp có tên là Tiles, mức phóng là 3, cột 5 dòng 2. Thứ tự của các tham số
này có thể được thay đổi, đặc biệt là vị trí hàng và cột. Loại URL thứ hai, mã hóa các tham số Tile
trong tham số URL( cặp giá trị sau dấu “?” trong URL). Ví dụ:
/>Dĩ nhiên cả hai phương pháp mã hóa các yêu cầu bản đồ trong 1 URL có rất nhiều biến thể.
Lớp quản lý là một yếu tố khác cho Tiled-based map client để truy cập vào lưu
trữ Tile trên mạng. Một phương thức đơn giản của lớp quản lý là cứng hóa danh sách cá lớp có sẵn
trong client. Mã cứng danh sách 1 lớp thì rất đơn giản. Không có mã bổ sung là cần thiết để xác định
danh sách các lớp có sẵn. Tuy nhiên cứng hóa một danh sách cũng có thể bị vỡ. Khi mà các lớp có sẵn
bị thay đổi, map client phải được cập nhập để hỗ trợ lớp danh sách mới. Nếu không, map client sẽ tạo

ra một lỗi khi mà người dùng cố gắng truy cập vào một lớp không tồn tại. Trong nhiều trường hợp,


map client có thể truy cập vào dữ liệu bảo trì của bên thứ 3. Nếu không kiểm tra liên tục những thay
đổi trong lớp có sẵn, khả năng người dùng gặp vấn đề dữ liệu là rất cao.
Một sự lựa chọn tốt là để các lớp cứng hóa tự động phát hiện các khả năng của
từng map Tile được sử dụng bởi client. Client có thể tự động khởi động lại các dịch vụ và các lớp vì thế
người dùng luôn luôn dùng những danh sách lớp hợp lệ. Kết quả là lỗi ít hơn bởi sự thay đổi các dịch
vụ hoặc không. Tự động phát hiện khả năng dịch vụ là khó khi các dịch vụ Tile có giao diện tùy chỉnh.
Giả sử dịch vụ cung cấp một lớp các khả năng, map client phải có mã thiết kế để phân tích các khả
năng cho các lớp hiện có và mức độ zoom được hỗ trợ. Các dịch vụ Web mapping Tile( WMTS) định
nghĩa tiêu chuẩn để client phân tích các khả năng của bất kỳ dịch vụ nào phù hợp.
Map client có thể lựa chọn để quản lý các lỗi mạng và thực hiện để cải thiện trải
nghiệm người dùng. Khi mất kết nối mạng ngăn chặn thích hợp hoạt động của map client, những tính
năng giới hạn có thể được duy trì bởi bộ nhớ đệm map Tiles. Dữ liệu Tile được sử dụng phổ biến nhất
ở quy mô thấp. Nói chung người dùng bắt đầu với cái nhìn tổng thể của toàn bộ trái đất hoặc một khu
vực rộng lớn của trái đất. Những yêu cầu khung nhìn này chỉ là một số hữu hạn các Tile từ khi chúng
được sử dụng ở mức zoom thấp. Hiệu suất mạng có thể được cải thiện bằng cách sử dụng các Tile từ
một mức độ zoom trước đó trong khi một cái mới đang được load. Khi mà người ta dùng zoom một cái
map view, những Tile hiện có thể ngay lập tức được thay đổi kích cỡ để điền vào map view. Khi những
Tile mới đến, chúng có thể được đặt trên những Tile có cấp độ zoom thấp hơn. Một khi tất cả các Tile
cho mức độ phóng hiện tại được tiếp nhận, những Tile ở cấp dưới có thể bị gỡ bỏ khỏi map.
3.3. Tổng quan về Map View
Sau khi map view lấy các Tile, nó phải được điền vào map view. Quá trình lắp ráp các
Tile vào trong map còn phụ thuộc vào công nghệ được sử dụng để xây dựng map client. Tuy nhiên về
cơ bản thì tạo map view là giống nhau.
3.3.1.
Quy mô Map View rời rạc
Với quy mô map view rời rạc thì việc lắp ráp các Tile là đơn giản nhất. Thi Tile
thích hợp được lấy, chúng phải được kết hợp để tạo nên một map view duy nhất. Map view đơn giản

chỉ là những bức ảnh tĩnh hoặc một phần giao diện người dùng trong phần mềm map client. Các thuật
toán để tạo ra cái nhìn tổng hợp là tương tự nhau và đơn giản.
Giả sử map client là một phần mềm cái mà cho phép người dùng tương tác với
bản đồ. Bản đồ sẽ được giao diện người sử dụng dùng các bình chứa để giữ các Tile. Như đã biết, kích
thước của bản đồ là bội số của kích thước Tile. Giao diện bình chứa được sử dụng để giữ các biến đổi
bản đồ phụ thuộc vào ngôn ngữ lập trình được sử dụng để tạo nên map client. Trong java, các bình
chứa sẽ là một cái Panel hoặc một đối tượng Jpanel(sử dụng thư viện AWT và Swing tương ứng). Các
đặc tính của bình chứa để nó hoạt động như một map:
• Giữ nhiều ảnh
• Tuyệt đối vị trí của ảnh
• Cho phép thay đổi kích cỡ của các bình chứa
Việc đặt các Tile vào bình chứa thì đơn giản. Vị trí ngang của Tile chỉ đơn giản
là chỉ số C của Tile nhân với kích thước W của Tile. Vị trí thẳng phải đưa vào tài khoản thực cái mà
bình chứa có thể sử dụng hệ trục tọa độ Decac( nguồn ở dưới bên trái) sau đó chuyển đổi phải được
thực hiện khi đặt Tile trong bình chứa. H contianer Là chiều cao của bình chứa, r là chỉ số thẳng của Tile
và H tile là chiều cao của Tile.
H contianer− r1 H tile

Khi các tọa độ Tile được tính nó có thể đặt trong bình chứa bằng cách sử dụng vị trí tuyệt đối. Các bình
chứa giữ ảnh không như cửa sổ của map view. Ứng dụng cửa sổ, cái mà chúng ta có thể gọi là các
khung nhìn, sẽ giữ Tile. Khung nhìn là những gì mà người dùng thực sự thấy. Khung nhìn có thể nhỏ
hơn hoặc lớn hơn bình chứa map. Tách biệt kích thước của khung nhìn với kích thước của bình chứa
map sẽ cho phép bình chứa map cố định một hoặc nhiều kích thước Tile, trong khi kích thước khung


nhìn có thể thay đổi tùy ý. Bình chứa map sẽ thay đổi kích thước như khung nhìn thay đổi kích thước.
Các bình chứa nên có chiều rộng và chiều cao lớn hơn hoặc bằng chiều rộng và chiều cao của khung
nhìn. Tối thiểu chiều rộng và chiều cao của khung nhìn là bội số nhỏ nhất của kích thước Tile để tính
kích thước bình chứa map. Thường thì các bình chứa map sẽ có kích thước cho phép không nhìn thấy
biên sâu của 1 hoặc 2 Tile. Biên được sử dụng như là một bộ nhớ đệm Tile vì thế khi mà người dùng di

chuyển map, những Tile sẽ xuất hiện trên map mà không cần phải lấy chúng từ bộ nhớ Tile. Bằng cách
nạp trước các Tile không nhìn thấy, việc thực hiện của bộ nhớ Tile trên mạng có thể được cải thiện
đáng kể.
3.3.2.
Quy mô Map View liên tục
Khi các map client hỗ trợ quy mô liên tục, hình ảnh Tile có thể không được đặt
trực tiếp trên map. Thay vào đó, Tile phải được biến đổi để phù hợp với map view hiện tại. Nhiệm vụ
này thực hiện theo các bước:
• Ghép các Tile để được hình ảnh lớn
• Cắt hình ảnh lớn để phù hợp khu vực địa lý và chế độ xem
• Thay đổi kích thước hình ảnh cắt theo kích thước điểm ảnh hiện tại của map view.
Ba bước trên là hợp lý, tuy nhiên mỗi ngôn ngữ lập trình cung cấp khung giao
diện để đơn giản hóa các bước.
Ghép ảnh Tile vào một hình ảnh lớn hơn. Ghép Tile về cơ bản như đặt chúng vào
bình chứa ở map view quy mô rời rạc. Đầu tiên tạo ra hình ảnh trống có kích thước chiều rộng và chiều
cao là tổng của tất cả các Tile đem ghép. Mỗi Tile được ghép vào hình ảnh theo chỉ số của nó. Như cấp
zoom rời rạc, lập chỉ số Tile ảnh hưởng đến việc tính toán chúng. Nếu Tile là chỉ số Decac sau đó tung
độ phải được biến đổi để phù hợp với việc lập chỉ mục ma trận của ảnh.
Sau khi hình ảnh lớn được tạo ra, nó phải được cắt giảm để phù hợp với giới hạn
đại lý map view. Mỗi góc của map view có một tọa độ địa lý. Mỗi tọa độ phải có một vị trí điểm ảnh
trong hình ảnh được ghép. Những tọa độ điểm ảnh này sau đó để cắt ảnh lớn để giới hạn tọa độ địa lý
của nó phù hợp với map view.
Bước cuối là thay đổi kích thước hình ảnh cắt để có kích thước pixel giống map
view. Đầu tiên độ phân giải của map view và chiều rộng của bức ảnh được tính toán. Các yếu tố chia tỉ
lệ cho chiều rộng của ảnh là tỉ lệ với 2 độ phân giải. Thường thì độ phân giải được đại diện bởi độ mỗi
pixel.


Chương 4: Thao tác và xử lý ảnh
Để tạo bộ nguồn ảnh để phục vụ các ảnh Tile thì việc sử lý ảnh là cần thiết . Phần này sẽ bàn

luận về các kỹ thuật xử lý ảnh cần thiết để tạo một GIS đựa trên nền Tile. Các thuật toán cho các thao
tác, cắt, và chia tý lệ các loại ảnh khác nhau. Một số thuật toán nội suy ảnh được đưa ra với các ví dụ
và bàn luận về những lợi ích tương đối của chúng.
4.1 Các khái niệm hình ảnh cơ bản.
Một bức ảnh ký thuật số được máy tính thể hiện bằng bức ảnh hai chiều và có thể là raster hoặc
vector. Raster( hay bitmap) bức ảnh kỹ thuật số sử dụng một mạng lưới hình chữ nhật của các phần tử
ảnh( gọi là cell) để hiển thị ảnh. Ảnh vector thì sử dụng hình học nguyên thủy như điểm, đường và đa
giác để hiển thị một ảnh.
Mỗi hình ảnh raster là một mạng lưới các điểm ảnh, và mỗi điểm ảnh đại diện cho một màu của
các hình ảnh tại điểm đó. Thường thì các điểm ảnh trong một hình ảnh quá nhỏ vì thế chúng không
được nhận ra một cách riêng biệt nhưng chúng pha trộn với nhau thành một bức ảnh hoàn hảo.
Giá trị pixel được thể hiện trong đơn vị của không gian màu sắc của hình ảnh. Các màu sắc có
thể được đại diện. RGB( đỏ, xanh lá cây, xanh nước biển) là một mô hình phổ biến. Bất kỳ điểm ảnh
nào cũng sẽ được biểu diễn bởi mô hình 3 màu cơ bản này. Kết hợp 3 mầu cơ bản này ta có thể biểu
diễn hàng triệu mầu sắc mà ta nhìn thấy. Chúng ta sử dụng các giá trị 0 và 1 để đại diện cho các điểm
ảnh trong hệ màu RGB. Hệ thống này hỗ trợ minh bạch bằng sự kết hợp alpha thêm thành phần thứ 4,
với khoảng cách từ 0 đến 1, trong đó 0 là thành phần mầu đó bị tắt còn 1 là thành phần mầu đó được
bật. Mô hình mầu này được gọi là RGBA hoặc ARGB.
Để xem và thao tác với ảnh kỹ thuật số raster, các thành phần RGB được lưu trữ ở một byte duy
nhất. Trong trường hợp này mỗi thành phần RGB là một biến nguyên từ 0 đến 255 thay vì một giá trị
thực từ 0 đến 1. 3 thành phần sẽ mất 3 byte( 24 bits) hoặc 4 bytes( 32 bits) cho bức ảnh với các thành
phần hệ mầu alpha. Việc sử dụng giá trị nguyên 4 byte để lưu trữ các thành phần RGB hoặc RGBA là
rất phổ biến.
Các điểm ảnh raster thì có địa chỉ sử dụng các tạo độ 2 chiều với một hệ tọa độ trực giao trên
ảnh. Chúng ta sử dụng hệ trục Đecac cho hệ thống trục tọa độ trên bản đồ, trung tâm là điểm (0, 0) và
hoàng độ hoặc tọa độ x tăng lên khi bạn di chuyển sang phải và tung độ hoặc tọa độ y tăng khi bạn di
chuyển lên trên. Rất nhiều môi trường lập trình đảo ngược điều này, nguồn của hình ảnh ở phía trên
bên trái và tọa độ y tăng khi di chuyển xuống dưới. Quy tắc này được lấy từ raster quét hình ảnh dựa
trên nền hệ thống, như màn hình ống catot và tivi ở đây thì cơ chế là quét theo chu kỳ lần lượt từng
dòng và bắt đầu từ dòng đầu tiên. Sự đảo ngược như thế là một sự bất tiện mà phải được xem xét trong

tất cả các ứng dụng không gian địa lý thực tế có liên quan đến dữ liệu hình ảnh ký thuật số.
Hình ảnh raster được lưu trữ trong một loạt cá tập tin có định dạng xác định chủ yếu bằng thuật
toán nén. Các định dạng thường được sử dụng là sử dụng nén để giảm bớt không gian đĩa. Ví dụ RGB
với hình ảnh 1000x1000 pixel. Để lưu nó không nén sẽ phải mất 1000x1000x3=3 megabyte. Điều đó là


quá lãng phí bộ nhớ, trong khi đó thuật toán nén tốt có thể cho tỷ lệ nén là 1:10. Như vậy hình ảnh trên
có thể chỉ tốn 300 Kilobyte để lưu trữ.
Nói chung có hai loại nén, không mất mát và mất mát. Với thuật toán nén không mất mát thì
không gian lưu trữ hình ảnh không bị mất bất kỳ thông tin nào. Thuật toán nén mất mát thì nó sẽ làm
mất một phần thông tin của hình ảnh. Thuật toán mất mát loại bỏ một phần hình ảnh một cách khôn
ngoan. Nhiều thuật toán mất mát có thể tạo ra một hình ảnh nén những hình đã loại bỏ những thông tin
quan trọng và trực quan thì không còn giống ảnh gốc.
Việc mất mát dữ liệu thì hay diễn ra với các tập tin hình ảnh có định dạng là JPEG. JPEG được
đặt tên sau khi tập đoàn Join Photographic Experts tạo nên các chuẩn hình ảnh. Có hai loại định dạng
không mất mát: Portable Network Graphic( PNG), và Graphics Interchange Format( GIF). Có một định
dạng phổ biến không sử dụng nén: Bipmap (BMP), Portable Pixel Map (PPM), Portable Graymap
(PGM), và Portable Bitmap (PBM).
4.2 Hình ảnh không gian địa lý.
Các bức ảnh kỹ thuật số rất thích hợp cho việc lưu trữ thông tin không gian địa lý. Điều này bao
gồm ảnh vệ tinh, hình ảnh âm thanh, và trả lại hoặc quét đồ họa bản đồ. Tất cả những gì để tạo nên một
bức ảnh kỹ thuật số, một ảnh có gắn không gian địa lý được đính kèm tọa độ địa lý để mô tả các hình
ảnh của bề mặt trái đất. Có hai cách thường xuyên được sử dụng. Đầu tiên, chúng ta có thể cung cấp
biên của các hình chữ nhật cho một bức ảnh , như dưới đây :

hoặc chúng ta có thể cung cấp tọa độ góc kết hợp với độ phân giải của mỗi điểm ảnh trong mỗi chiều.
Với một hoặc nhiều ảnh gắn không gian địa lý, chúng ta có thể xây dựng hệ thống Tiled-based
mapping để phối hợp với các dữ liệu trong những bức ảnh đó.
4.2.1.
Các tập tin có định dạng đặc biệt

Có một số tập tin có định dạng đặc biệt nó thích hợp cho việc lưu trữ hình ảnh
không gian đại lý. MrSID (đa phân giải liền mạch cơ sở dữ liệu hình ảnh) là một định dạng lưu trữ hình
ảnh độc quyền bởi Lizardtech. Nó được thiết kế đặc biệt cho việc lưu trữ hình ảnh không gian địa lý
lớn, phổ biến nhất là hình ảnh ortho-rectified. MrSID sử dụng cơ sở nén wavelet để lưu trữ nhiều độ
phân giải của hình ảnh. Điều này cho phép truy cập nhanh vào tổng thể (hoặc thu nhỏ hình) các phần
của của hình ảnh. Điều đó không phổ biến cho những ảnh MrSID để tạo nên nhiều triệu điểm ảnh.
JPEG2000 là một định dạng tập tin thế hệ tiếp theo được tạo ra bởi nhóm Joint
Photographic Experts. Giống như MrSID, nó là một định dạnh dựa trên nền wavelet. JPEG2000 thì


không được thiết kế đặc biệt để lưu các ảnh không gian địa lý; tuy nhiên, phần mở rộng của nó đã thực
hiện cho phép các thông tin không gian địa lý được gắn liện với hình ảnh. JPEG2000 cũng rất thích hợp
để lưu trữ hình ảnh rất lớn và là một định dạng mở hơn MrSID.
Một trong những định dạng tập tin ảnh không gian địa lý lâu đời và phổ biến nhất là
GEOTIEF. GEOTIEF dựa trên định dạng Tagged Image (TIFF) chuẩn. Một GEOTIEF chỉ đơn giản là
một tập tin TIFF với chuẩn thẻ địa lý không gian được thêm vào nó. Chuẩn TIFF là được sử dụng rộng
rãi nhất ở định dạng tập tin hình ảnh. Nó cho phép tùy chọn các chương trình nén thay thế hay không
nén. Nó cũng cho phép nhiều trang hình ảnh, một loạt các hệ mầu, và cách bố trí bộ nhớ. Hiện nay có
nhiều phần mềm mã nguồn mở hỗ trợ đọc các tập tin hình ảnh dạng TIFF (và GEOTIFF).
Chú ý rằng trong một số trường hợp, hình ảnh không gian địa lý sẽ được lưu trữ trong các tập
tin không hỗ trợ nhúng tọa độ không gian địa lý. Trong những trường hợp đó, nó sẽ có một thủ tục để
cung cấp một tập tin đi kèm có chứa tọa độ không gian địa lý. Đây chỉ là quy ước không phải là một
chuẩn vì thế các chi tiết kỹ thuật khác nhau sẽ được triển khai trong các thành phần khác nhau.
4.3 Thao tác với hình ảnh.
Phần này cung cấp nền tảng về thuật toán xử lý ảnh cho quá trình tạo Tile. Các ảnh Tile trước
đây được lưu ở một độ phân giải cố định. Kể từ khi chúng ta sử dụng đa phân giải, ngay cả khi hình
ảnh nguồn phù hợp với một độ phân giải, nó không thể cho chúng phù hợp với tất cả độ phân giải của
chúng ta. Vì vậy chúng ta phải một số quy mô ảnh.
Quy mô hình ảnh là một kiểu nội suy. Nội suy là một quá trình tạo nên dữ liệu mới từ tập hợp
rời rạc các giá trị dữ liệu được biết trước. 3 thuật toán nội suy thông thường :

4.3.1.
Nội suy 1: Nearest Neighbor
Nearest Neighbor là đơn giản nhất của tất cả các thuật toán nội suy. Nó sử dụng
các giá trị điểm ảnh từ ảnh nguồn cái mà có không gian gần nhất đến vị trí các điểm ảnh đích. Ví dụ:
trức quan chúng ta có thể nhìn thấy điểm ảnh (3,1) là gần với trung tâm của bức ảnh đích. Trong trường
hợp này, giá trị kết quả của điểm ảnh đích chỉ đơn giản sẽ là giá trị chính xác của điểm ảnh (3,1).


Phương pháp này là tính toán hiệu quả, nhưng nó có một số nhược điểm nghiêm trọng, đặc biệt là khi
kích thước hình ảnh đích và nguồn rất khác nhau.
4.3.2.
Nội suy 2: Bilinear
Bilinear là thuât toán nội suy phức tạp hơn, nó tạo ra một độ lớn trung bình của
4 điểm ảnh bao quanh trung tâm của các điêm ảnh đích. Ví dụ:

các hướng đi từ tâm các điểm ảnh nguồn đến tâm điểm ảnh đích. Chiều dài của mỗi dòng, tỉ lệ với tổng
chiều dài, bổ sung cho dữ liệu từ điểm ảnh trong dòng nguồn. Nó bổ xung để điểm ảnh có độ dài hơn
để nó ít tác động trên kết quả cuỗi cùng.
4.3.3.
Nội suy 3: Bicubic
Đây là phép nối suy phức tạp nhất và nó cũng mang lại kết quả tốt nhất. Thuật
toán Bicubic tính trung bình có trọng số của 16 điểm ảnh xung quanh theo công thức :
f (x) = a0x3+a1x2+a2x+a3
4.4 Chọn định dạng cho các Tile.
Việc định dạng file ảnh để lưu trữ và truyền tải Tile hình ảnh là cần thiết. Hiện nay có hàng
trăm định dạng tập tin có thể sử dụng. Một số cung cấp các chương trình nén rất tốt, còn một số khác
tập trung vào sự đơn giản và tương thích. Chúng ta có thể chọn các định dạng ảnh cái mà có thể mã hóa
và giải mã nhanh chóng, cung cấp hiệu suất nén tốt, và quan trọng nhất là hỗ trợ phần lớn các trình
duyệt web hiện nay. Ở đây chúng ta sẽ giảm bớt nhiệm vụ xử lý hình ảnh và thao tác được yêu cầu cho
mỗi truy cập của khách hàng. Múc tiêu ở đây là việc sử dụng cùng định dạng ảnh đó là để lưu trữ và



phục hồi. Dưới đây là một số định dạng ảnh được các trình duyệt web hỗ trợ.

và thông tin của các định dạng

Ở đây PNG và JPEGlà định dạng hợp lý nhất vì nó có thể nén và cung cấp khá nhiều mầu. PNG sử
dụng thuật toán nén DEFLATE không mất mát dữ liệu khi nén và nó còn cung cấp số lượng mầu rất
lớn 48 bit. PNG có thế được nén với hình ảnh có vài mầu độc đáo, mô hình điểm ảnh lặp đi lặp lại, và
chuỗi dài của cùng một giá trị điểm ảnh. Vì thế nó phù hợp để lưu trữ trả lại số liệu và bản đồ có bảng
màu giới hạn. JPEG sử dụng thật toán nén dựa trên chuyển đổi cosin rời rạc. Nó thực hiện với hình ảnh
có nhiều mầu sắc, có một vài nhiễu, quá trình chuyển đổi nhẹ nhàng hơn nó thường thấy trong nhiếp
ảnh. Nhưng điều quan trọng ở đây là dạng PNG sẽ chiếm nhiều không gian bộ nhớ hơn dạng JPEG (tỉ
lệ có thể là 18:1). Vì thế JPEG sẽ dùng để lưu các hình ảnh cần độ phân giải cao và không gian bộ nhớ
là vấn đề quan trọng. Ta hoàn toàn có thể kết hợp 2 dạng này trong bản đồ Tiled.
4.5 Chọn kích thước cho các Tile.
Đây là bước quan trọng nhất trong hệ thống bản đồ dạng Tile. Các ảnh Tile có thể có bất kỳ
kích cỡ nào và chúng có thể chuyển đổi ở các quy mô khác nhau. Chúng có thể khác nhau trên cùng
một tỷ lệ hoặc chúng có kích cỡ ngẫu nhiên. Tuy nhiên sẽ có hiệu quả nếu chọn các Tile cùng kích cỡ
trên một hoặc mọi quy mô.
Có một cách tiếp cận để xác định kích thước Tile tối ưu. Đầu tiên chúng ta phải xem tác
động của việc sử dụng nhiều hình ảnh để ảo hóa một map view đơn giản. Mỗi bức ảnh sẽ đi kèm với
một số lượng chi phí. Có nhiều loại chi phí khác nhau, như chi phí đa tìm kiếm và đọc của tập tin hệ
thống, sử dụng không đồng đều kích cỡ của các block, tiêu đề và các chi phí không gian lưu trữ với
mỗi ảnh.
Các định dạng được các Web browser sử dụng nhiều là : PNG và JPEG, nhưng chúng
cũng có một số nhược điểm sau. Bất kỳ hình ảnh được mã hóa nào cũng làm hao phí một không gian
lưu trữ, có nghĩa là không gian không được dùng trực tiếp vào việc lưu trữ điêm ảnh. Nó chứa không
tiêu đề và siêu dữ liệu hình ảnh. Một vài ví dụ sau sẽ cho phép chúng ta kiểm tra hao phí bộ nhớ của
các định dạng ảnh PNG và JPEG. Chúng ta tạo ra các hình ảnh có kích thước 1x1, 64x64, 128x128,

256x256, 512x512, 1024x1024, 2048x2048, 4096x4096 và 8192x8192 pixel. Sử dụng phân đoạn của
NASA’s Blue Marble Next Generation như là nội dung gốc và cơ sở là ảnh 1x1 pixel ta có bảng sau :


rõ ràng chúng ta sẽ tiết kiệm được chi phí đối với những bức ảnh có kích thước lớn. Nhưng
những hình ảnh rất lớn thì lại xuất hiện một vấn đề mới. Đó là thời gian chờ đợi để tải một bức ảnh
8192x8192 và hiển thì chúng lên màn hình là cả một vấn đề, đặc biệt là màn hình máy tính chỉ hiển thị
được kích cỡ 1024x768. Chúng chỉ có thể hiển thị được 1.17% số điểm ảnh mà thôi. Ngoài ra hình ảnh
rất lớn còn tiêu tốn bộ nhớ và không thể sử dụng trong các thiết bị nhở hoặc lâu đời trước đây. Có một
yếu tố nữa cần phải chú ý khi tạo một bức ảnh JPEG cụ thể. Cơ sở của thuật toán nén JPEG là dựa trên
block. Nó thường sử dụng 16x16 block của điểm ảnh như là đơn vị nén tối thiểu. Nếu một điểm ảnh
không chia hết cho 16 trong mỗi kích thước thì điểm ảnh đó sẽ tiêu biến trả lại giá trị rỗng cho điểm
ảnh đó. Vì thế các ảnh JPEG có kích thước từ 1 đến 500 thì mỗi ảnh sẽ toàn là những điểm ảnh màu
đen. Vì thế chúng ta nên chọn kích thước Tile là bội của 16. Và bức ảnh JPEG 1x1 cũng tương đương
bức ảnh JPEG có kích cỡ 16x16.
Để xác định kích thước Tile phù hợp, chúng ta cần tạo ra một chức năng tối ưu hóa. Để
tối ưu cả số ảnh cần thiết tạo nên map view ảo và số lượng điểm ảnh vô nghĩa. Điểm ảnh vô nghĩa là
điểm ảnh được truyền đi và giải mã nhưng không phải là một phần của xem bản đồ ảo. Cách tốt nhất để
giảm thiểu số lượng điểm ảnh vô nghĩa đó là làm tất cả các Tile là 1x1, và điều đó giúp chúng ta sẽ
không phải giải mã bất kỳ điểm ảnh vô nghĩa nào. Tuy nhiên hoa phí để lấy và giải mã hàng nghin file
ảnh cho mỗi map view ảo sẽ làm cho hệ thống bị quá tải. Chúng ta cần xác định kích thước thích hợp
cho cả Tile và hệ thống. Đầu tiên chúng ta cần tìm một kích thước điển hình cho một map view ảo. Ví
dụ chúng ta sử dụng màn hình kích thước 1024x768 pixel. Với kích thước này chúng ta có thể tạo ra vô
số các map view ngẫu nhiên cho màn hình này. Với mỗi map view ngẫu nhiên, chúng ta sẽ tính toán số
lượng Tile cần thiết để điền vào cái view đó và cả số lượng các điểm ảnh vô nghĩa. Chúng ta sẽ thực
hiện việc tính toán này cho tất cả các kích thước Tile. Ví dụ chúng ta sẽ sử dụng các Tile có kích thước
16, 32, 64, 128, 256, 512, 1024 và 2048.
Một ví dụ về quy mô bản đồ, chúng ta sẽ sử dụng quy mô bản đồ mức 10. Với quy mô
mày chúng ta sẽ có số lượng hàng là 1024 và số lượng cột là 512. Mỗi Tile sẽ chứa 1024/360 (2,84) độ
ở cả chiều ngang và chiều dọc. Để tạo ngẫu nhiên một map view là khá dễ dàng. Vì tất cả các map view

có cùng tỷ lệ, chúng ta cần tạo ra một số lượng lớn các điểm trung tâm ngẫu nhiên. Các điểm trung tâm
ngẫu nhiên sẽ nằm trong khoảng kinh độ -180 đên 180 và vĩ độ -90 đên 90. Có 2 cách thực hiện điều
này. Trước tiên chúng ta cần hạn chế những điểm ngẫu nhiên nằm bên ngoài map view, thứ 2 chúng ta
đơn giản là thực hiện tính toán mà không quan tâm nếu có những ô vuông xếp chồng lên nhau trong
những tọa độ cho phép. Chúng ta sẽ lựa chọn phương thức sau. Nếu một ô vuông bị vượt ra ngoại
khoảng -180 đến 180 và -90 đến 90 thì chúng ta sẽ tính toán những điểm ảnh vô nghĩa và các Tiled cái
mà được truy cập nếu có các Tile và các điểm ảnh nằm trong không gian hợp pháp. Đây là một quyết
định hợp lý vì rất nhiều map client thực hiện việc xoay vòng ở khu vực ranh giới. Chúng kéo những
bức ảnh và những điểm ảnh từ bản đồ phía bên kia sau đó điền trồng lên khu vực cũ.
Các thống kê về sự phụ thuộc kích thước của Tile và số Tile truy cập thường xuyên và
số điểm ảnh vô nghĩa dẫn ta đến việc chọn lựa kích thước của Tile là 128x128. Tuy nhiên việc tính toán


này chỉ thực hiện trên một số điểm ảnh. Chúng ta không quan tâm đến cách tính quan trọng được thực
hiện trước để xác định tỷ lệ phần trăm chi phí cho mỗi kích thước Tile. Tính toán lại để tối ưu hóa và
thay thế các điểm ảnh vô nghĩa với tổng số byte được truy cập mang lại một kết quả khác. Kết quả
được thể hiện như sau :

Rõ ràng các Tile 16x16 là không hiệu quả. Chúng yêu cầu nhiều byte nhất để được truy cập,
thậm trí các Tile 16x16 là tạo ra ít điểm ảnh vô nghĩa nhất. Kết quả của các điểm ảnh vô nghĩa là lớn
khi mà kích thước điểm ảnh lớn. Vì thế theo biểu đồ trên, Tile có kích thước 128, 256 hoặc 512 là hợp
lý nhất. Điều gì xảy ra nếu chúng ta quan tâm đến nhiều hơn một độ phân giải map view. Cho đến bây
giờ, chúng ta chỉ có độ phân giải của map view là 1024x768. Hình sau cho thấy kết quả của độ phân
giải map 640x480, 800x600, 1024x768, 1280x960, 1400x1050, và 1600x1200.


Kết quả tương tự, nhìn vào khu vực tối ưu chúng ta xoay quanh khu vực 128, 256, và
512. Hình dưới chỉ ra kết quả cho kích thước ảnh PNG thay cho kích thước JPEG. Chúng ta có thể nhìn
thấy kết quả của chi phí giảm trong ảnh PNG. Nhưng hình kế tiếp lại chỉ ra rằng ảnh JPEG có số byte
được truy cập như là sự khác biệt từ một kích thước của một Tile đến một Tile khác. Trong hình này,

chúng ta có thể thấy rằng dòng gần như đường thẳng từ 256 đến 512. Điều này cho thấy rằng có rất ít
sự khác biệt giữa các kích thước Tile về tổng số byte truy cập



Vì chúng ta đã chuyển từ việc quan tâm đến các pixel đến các byte hình ảnh nén, chúng ta cũng
nên xem xét thời gian tính toán để giải nén các Tile hình ảnh nén. Thời gian giải nén trung bình cho các
Tile có kích thước khác nhau trong cả hai định dạng JPEG và PNG được biểu hiện bằng bảng sau :

Thời gian để giải nén các hình ảnh JPEG :


và thời gian để giải nén PNG:


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×