MỘT SỐ KHÁI NIỆM VÀ THUẬT NGỮ CGI Common Gateway Interface Chuẩn để kết nối chương trình ứng dụng với web server GIS Geography Information System Hệ thống thông tin địa lý JPEG Joint Pho
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Văn Tùng
XÂY DỰNG GIẢI PHÁP BẢN ĐỒ TRỰC TUYẾN
DẠNG TILE
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Văn Tùng
XÂY DỰNG GIẢI PHÁP BẢN ĐỒ TRỰC TUYẾN
DẠNG TILE
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Cán bộ hướng dẫn: TS Nguyễn Hải Châu
Trang 3XÂY DỰNG GIẢI PHÁP BẢN ĐỒ TRỰC TUYẾN DẠNG TILE
Lê Văn Tùng
Khóa QH-2008-I/CQ, ngành Công Nghệ Thông Tin
Tóm tắt Khóa luận tốt nghiệp
Ngày nay, nhu cầu tra cứu bản đồ của tất cả mọi người là rất lớn Cùng với sự bùng nổ của Internet, việc số hóa bản đồ ngày càng được chú trọng nghiên cứu và phát triển Với sự kết hợp giữa GIS và Web đã thay đổi hoàn toàn cách xem bản đồ của chúng ta Công nghệ WebGIS không ngừng được phát triển hoàn thiện Để đáp ứng nhu cầu xem bản đồ một cách nhanh chóng
và chính xác thì hệ thống bản đồ trực tuyến dựa trên nền tile đã ra đời Nó là một bước tiến quan trọng của ngành khoa học bản đồ và là một sự thay thế tuyệt vời cho những hệ thống cồng kềnh kém hiệu quả trước đây
Nội dung chính của đề tài là nghiên cứu các bước chính để có thể xây dựng một hệ thống bản đồ dựa trên nền tile Ở đây sẽ có ba bước chính để xây dựng bản đồ trực tuyến dạng tile: tạo tile, lưu trữ và hiển thị tile trên web Bên cạnh đó đề tài nghiên cứu còn đề cập đến các vấn đề lưu trữ, cân bằng tải đối với hệ thống bản đồ dự trên nền tile Dựa vào những nghiên cứu đó, và bằng cách sử dụng các phần mềm mã nguồn mở Mapserver và Openlayers, em sẽ xây dựng thử nghiệm bản đồ Hà Nội và bản đồ Việt Nam dựa trên ảnh tile
Khóa luận được chia thành các phần chính:
Mở đầu: đặt vấn đề và đưa ra mục tiêu nghiên cứu
Chương 1: giới thiệu bản đồ trực tuyến nền tile và sự cần thiết của chúng
Chương 2: các bước chính để xây dựng một hệ thống bản đồ trực tuyến nền tile Chương 3: các giải pháp tối ưu hóa và cân bằng tải với hệ thống bản đồ nền tile Chương 4: xây dựng thử nghiệm bản đồ trực tuyến dạng tile
Kết quả: các kết quả đạt được và hướng phát triển
Từ khóa: GIS, Hệ thống thông tin địa lý
Trang 4LỜI CẢM ƠN
Lời đầu tiên cho em gửi lời chân thành cảm ơn tới thầy Nguyễn Hải Châu, người đã trực
tiếp hướng dẫn tận tình và đóng góp những ý kiến quý báu trong suốt quá trình em làm khóa luận
tốt nghiệp này
Em xin cảm ơn và gửi những lời chúc tốt đẹp nhất đến các thầy cô giáo trường Đại học
Công Nghệ - Đại học Quốc Gia Hà Nội, đã tận tâm truyền đạt những kiến thức quý báu làm nền
tảng để em bước vào đời
Em cũng chân thành cảm ơn các tác giả của các sách báo mà em đã đề cập ở mục tài liệu
tham khảo đã cho em nguồn tài liệu quý giá và hữu ích
Cuối cùng, em xin được cảm ơn gia đình, bạn bè và người thân đã giúp đỡ em, là chỗ dựa
tinh thần vững chắc giúp em hoàn thành khóa luận tốt nghiệp này
Người thực hiện
Lê Văn Tùng
Trang 5LỜI CAM ĐOAN
Trong quá trình làm Khóa luận này, em đã tham khỏa một số tài liệu đã được đề cấp ở mục tài liệu tham khảo Em xin cam đoan không sao chép các tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ trong tài liệu tham khảo Nếu vi phạm em xin chịu mọi kỷ luật của nhà trường
Trang 6MỤC LỤC
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Nội dung và mục đích nghiên cứu 1
CHƯƠNG 1: BẢN ĐỒ TRỰC TUYẾN DẠNG TILE LÀ GÌ VÀ SỰ CẦN THIẾT PHẢI XÂY DỰNG CHÚNG 2
1 Giới thiệu chung về bản đồ trực tuyến 2
1.1 Giới thiệu chung 2
1.2 Ví dụ các trang web về bản đồ nổi tiếng 2
1.3 Công nghệ của bản đồ trực tuyến 3
1.4 Sơ đồ hoạt động của ứng dụng bản đồ trực tuyến 3
2 Các giải pháp bản đồ trực tuyến 4
2.1 MapServer 4
2.2 OpenLayers 8
3 Giới thiệu bản đồ trực tuyến dạng tiled 9
CHƯƠNG 2 CÁC BƯỚC CHÍNH ĐỂ THIẾT LẬP MỘT HỆ THỐNG BẢN ĐỒ DẠNG TILE 13
1 Tạo ảnh tile 13
1.1 Thao tác xư lý ảnh 13
1.2 Tạo ảnh tile 19
2 Lưu trữ 25
2.1 Lưu trữ các hình ảnh tile như là các tập tin riêng biệt 25
2.2 Lưu trữ tile dựa trên cơ sở dữ liệu 27
2.3 Định dạng lưu trữ riêng 27
3 Hiển thị Tile 28
Trang 7CHƯƠNG 3: CÁC VẤN ĐỀ TỐI ƯU, CÂN BẰNG TẢI ĐỐI VỚI BẢN ĐỒ
DẠNG TILE 35
1 Chọn kích thước tile 35
2 Chọn mức phóng 42
3 Cân bằng tải 44
CHƯƠNG 4: XÂY DỰNG GIẢI PHÁP BẢN ĐỒ MÃ NGUỒN MỞ VỚI MAPSERVER, PHP/MAPSCRIPT VÀ OPENLAYERS 45
1 Phân tích 45
2 Thiết kế 45
2.1 Thiết kế kiến trúc 45
2.2 Thiết kế dữ liệu 47
3 Xây dựng 48
3.1 Client 48
3.2 Server 50
KẾT LUẬN ……….56
PHỤ LỤC……… 58
Trang 8DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Google map (http://maps.google.com) 2
Hình 1.2 Yahoo! Map (http://maps.yahoo.com) 3
Hình 1.3 Bing map (http://www.bing.com/maps) 3
Hình 1.4 Sơ đồ hoạt động của WebGIS 4
Hình 1.5 Sơ đồ khái niệm MapServer 6
Hình 1.6 Sơ đồ hoạt động của MapServer 8
Hình 1.7 Chương trình tile hợp lý 11
Hình 1.8 tile với mức phóng là 1. 12
Hình 2.1 Hỉnh ảnh chứa không gian địa lý. 15
Hình 2.2 Nội suy Bilinear 17
Hình 2.3 Ví dụ lớp cơ sở. 21
Hình 2.4 Mối quan hệ tile giữa các mức. 24
Hình 2.5 Tổ chức thư mục lưu trữ ảnh tile 26
Hình 3.1 Tổng số bit được truy cập với từng tile size 38
Hình 3.3 Các kích thước map view với tile size và tổng số byte được truy cập với ảnh PNG 40
Hình 3.4 Kích thước map view với tile size và tổng số byte được truy cập khác nhau với ảnh JPEG 40
Hình 3.5 Thời gian giải nén ảnh JPEG 41
Hình 3.6 Thời gian nén ảnh PNG 42
Hình 3.7 Quy mô map view trùng với một mức phóng 43
Hình 3.8 Quy mô map view nằm giữa hai phóng 43
Hình 3.9 Quy mô map view sai lệch so với mức phóng thấp hơn là 10% 43
Hình 3.10 Xét sự tồn tại của hai mức phóng tiếp theo 44
Trang 9Hình 3.11 Chọn mức phóng thấp gần nhất 44
Hình 4.1 Mô hình hoạt động của bản đồ thử nghiệm 46
Hình 4.2 Thư mục lưu trữ tile. 47
Hình 4.3 Chi tiết thư mục lưu trữ tile. 47
Hình 4.4 Các tile của bản đồ huyện Việt Nam ở mức 6, hàng 24……… 48
Trang 10DANH MỤC CÁC BẢNG
Bảng 2.1 Số lượng tile và DPP của 19 mức phóng. 21
Bảng 3.1 Bảng lượng hao phí của ảnh dạng PNG và JPEG 35
Bảng 3.2 Thời gian giải nén ảnh 41
Bảng 4.1 Bảng đánh giá bản đồ mức các tỉnh thành của Việt Nam 51
Bảng 4.2 Bảng đánh giá bản đồ mức các huyện của Việt Nam……….52
Bảng 4.3 Bảng đánh giá bản đồ mức các xã của Việt Nam……… 53
Bảng 4.4 So sánh thời gian giữa hai dạng bản đồ……….56
Trang 11Danh mục các biểu đồ Biều đồ 1 Thời gian hiển thị bản đồ sau 5 lần thử ……… 54 Biểu đồ 2 Thời gian phóng to bản đồ………55 Biểu đồ 3 Thời gian di chuyển bản đồ……… 55
Trang 12MỘT SỐ KHÁI NIỆM VÀ THUẬT NGỮ
CGI Common Gateway Interface Chuẩn để kết nối chương trình
ứng dụng với web server
GIS Geography Information System Hệ thống thông tin địa lý JPEG Joint Photographic Experts
Group
Chuẩn nén ảnh mất mát có chất
lượng hình ảnh tốt PNG Portable Network Graphic Chuẩn nén ảnh không mất mát TMS Tile Map Service Các dịch vụ bản đồ dựa trên nền
tile WFS Web Feature Service Các tính năng của dịch vụ web
Trang 13MỞ ĐẦU
1 Đặt vấn đề
Ngày nay với sự bùng nổ mạnh mẽ của Internet, nhu cầu truy cập tìm kiếm thông tin của mọi người là rất lớn Internet đã len lỏi vào từng khía cạnh nhỏ nhất của đời sống con người, nó được ứng dụng trong mọi ngành, mọi nghề từ kinh tế, chính trị, giáo dục, quốc phòng đến giải trí
Bản đồ số là một loại bản đồ được thực hiện trên máy tính, các dữ liệu bản đồ được quản lý dưới dạng số hóa Bản đồ được xây dựng và biên tập dựa trên sự hỗ trợ của máy tính và các thiết bị ngoại vi khác Bản đồ số đã trở nên quen thuộc với tất cả mọi người,
và nó dần thay thế cách xem bản đồ cổ điển Không những thế bản đồ số còn được ứng dụng trong rất nhiều lĩnh vực khác nhau, bởi vì mọi lĩnh vức trong cuộc sống , ngành khoa học, kinh tế, xã hội … đều gắn liền với không gian địa lý, nên mỗi chủ thể đều có
xu hướng xây dựng hệ quản trị cơ sở không gian địa lý (GIS) riêng của mình để quảng
2 Nội dung và mục đích nghiên cứu
Nghiên cứu việc xây dựng giải pháp bản đồ trực tuyến dạng tiled, từ đó xây dựng thử nghiệm bản đồ hà nội và bản đồ Việt Nam
Trang 14CHƯƠNG 1: BẢN ĐỒ TRỰC TUYẾN DẠNG TILE LÀ GÌ VÀ SỰ CẦN
THIẾT PHẢI XÂY DỰNG CHÚNG
1 Giới thiệu chung về bản đồ trực tuyến
1.1 Giới thiệu chung
Những năm gần đây, GIS được ứng dụng rất nhiều trong các ngành khoa học liên
quan đến dữ liệu không gian Với khả năng quản lý, chia sẻ các ứng dụng thông tin địa lý
qua mạng internet/intranet Bằng việc kết hợp GIS và web để tạo thành WebGIS, người
dùng có thể xem bản đồ bằng cách mở một trình duyệt
Lý do để người ta nghĩ đến bản đồ trực tuyến đó là khi việc các phần mềm map
desktop tuy rất phát triển nhưng để tất cả mọi người đều có thể sử dụng được chúng thì
yêu cầu một khoảng thời gian để họ làm quen sử dụng, và sẽ rất bất tiện khi truy cập vào
một bản đồ Họ chỉ xem được bản đồ tại những máy có cài phần mềm map desktop và
những map desktop này là quen thuộc với họ Và bản đồ trực tuyến (WebGIS) là một giải
pháp không tồi để tất cả mọi người có thể xem được bản đồ một cách dễ dàng và nhanh
nhất
1.2 Ví dụ các trang web về bản đồ nổi tiếng
Hình 1.1 Google map (http://maps.google.com)
Trang 15Hình 1.2 Yahoo! Map (http://maps.yahoo.com)
Hình 1.3 Bing map (http://www.bing.com/maps)
1.3 Công nghệ của bản đồ trực tuyến
Công nghệ GIS trên nền Web (hay còn gọi là WebGIS) là hệ thống thông tin địa lý
phân tán trên một mạng các máy tính để tích hợp, trao đổi các thông tin địa lý trên mạng
Internet Công nghệ WebGIS này tương tự kiến trúc Client-Server của web Xử lý thông
tin không gian địa lý được xử lý ở cả phía Server và phía Client Điều này cho phép
người dùng có thể khai thác thông tin GIS qua trình duyệt web Một Client tiêu biểu là
một trình duyệt web, một Server bao gồm một Web Server cung cấp một chương trình
Trang 16ứng dụng GIS trên nền web Client gửi yêu cầu dữ liệu bản đồ đến Server ở xa qua môi trường web, Server xử lý thông tin yêu cầu bằng cách chuyển yêu cầu thành mã nội bộ và gọi những chức năng về GIS thông qua việc chuyển tiếp các yêu cầu đến phần mềm ứng dụng GIS Phần mềm này trả lại kết quả, sau đó kết quả này được định dạng lại và phản hồi lại cho phía Client Server trả về kết quả cho Client hiển thị, hoặc gửi dữ liệu hoặc các công cụ phân tích để Client sử dụng
Điều quan trọng ở đây chính là công nghệ GIS trên nền web Công nghệ WebGIS
có khả năng làm cho thông tin địa lý trở nên hữu dụng và sẵn sàng tới lượng lớn người sử dụng trên thế giới Để WebGIS có thể chạy được trên tất cả các trình duyệt web thì các ứng dụng GIS trên nền web phải được thiết kế theo các kỹ thuật của mạng Internet
1.4 Sơ đồ hoạt động của ứng dụng bản đồ trực tuyến
Hình 1.4 Sơ đồ hoạt động của WebGIS Khi nhu cầu phát sinh, phía máy khách sẽ gửi yêu cầu đến Web Server, nếu yêu cầu
là dữ liệu không gian địa lý thì Web Server sẽ gửi tiếp yêu cầu đến ứng dụng GIS, và tại đây nó sẽ truy vấn để lấy dữ liệu cần thiết từ kho dữ liệu Sau đó dữ liệu bản đồ sẽ được gửi trả lại WebServer Dữ liệu sẽ được định dạng lại và hiển thị lên web brower của Client
2 Các giải pháp bản đồ trực tuyến
Ngày nay, có rất nhiều giải pháp bản đồ trực tuyến như MapBuilder, Mapbender, MapServer, OpenLayers … tuy nhiên trong khuôn khổ khóa luận em xin giới thiệu hai giải pháp đó là: MapServer và OpenLayers
Trang 17hoặc thông qua Mapscript (hỗ trợ nhiều ngôn ngữ lập trình như Perl, Python …) Mapserver không phải là 1 hệ thống có đầy đủ các đặc tính của hệ thống thông tin địa lý (GIS), và cũng không phát triển theo định hướng đó, mapserver tốt nhất ở điểm sinh ra dữ liệu không gian như (bản đồ, hình ảnh, dữ liệu vector …) trên môi trường web Ngoài việc giúp định vị dữ liệu không gian, tạo bản đồ địa hình, Mapserver có thể định hướng người dùng đến nội dung
Mapserver khởi đầu được phát triển bởi dự án University of Minesota (UMN) ForNet, cộng tác với NASA và DNR (Minesota Department of Natural Resources) Sau
đó nó được sở hữu bởi dự án TerraSIP, một dự án được hỗ trợ bởi NASA
Hiện tại, mapserver là một dự án của OSGeo, và được phát triển bởi 1 nhóm phát triển gần 20 nước khắp thế giới Nó được duy trì và thêm các đặc tính bởi nhiều nhóm tổ chức khác nhau, và được quản lý bên trong OSGeo bởi Mapserver Project Steering committee (được thành lập bởi những người phát triển và những người phân phối)
Hỗ trợ nhiều hệ điều hành: Linux, Windows, Mac OS X, Solaris …
Hỗ trợ nhiều dạng Vector và Raster
Hỗ trợ phép chiếu bản đồ: hơn 1000 hệ chiếu thông qua thư viện proj.4
Mapserver tuân theo chuẩn Open Geospatial Consortium (OGC), gồm Web Map Service (WMS) và Web Feature Service (WFS) Mapserver kết nối với PostgresSQL và mở rộng PostGIS (hỗ trợ dữ liệu GIS), MySQL và mở rộng MyGIS, …
2.1.3 Cấu trúc của MapServer
Trang 18Đơn giản nhất có thể hiểu MapServer như là một chương trình CGI được đặt trong webserver Khi mà có 1 request gửi đến MapServer, nó sử dụng thông tin được truyền ở request URL và trong mapfile để tạo hình ảnh của bản đồ được yêu cầu Request cũng có thể trả về hình ảnh cho ghi chú, thanh co dãn, bản đồ tham chiếu và giá trị được truyền như là những biến CGI
Sơ đồ khái niệm của một ứng dụng MapServer
Hình 1.5 Sơ đồ khái niệm MapServer Mapserver có thể được mở rộng và điều chỉnh tùy vào người sử dụng Nó có thể được xây dựng để hỗ trợ nhiều dữ liệu nhập và xuất Điều này được thực hiện khi mapserver được biên dịch
2.1.4 MapScript
Mapscript cung cấp 1 interface dạng script cho mapserver để cấu trúc xây dựng web
và ứng dụng độc lập Mapscript được sử dụng độc lập với CGI mapserver, nó là 1 module
có thể load, các chức năng của mapserver được thêm vào ngôn ngữ script mà người sử dụng thích nhất Mapscript hiện tại tồn tại trong Php, Perl, Python, Ruby, Tcl, Java, C#
Trang 192.1.5 Cấu trúc của một ứng dụng MapServer
Một ứng dụng MapServer đơn giản gồm các thành phần:
Mapfile: Một kiểu cấu hình cấu trúc text cho ứng dụng mapserver Nó định dạng kích thước của bản đồ, chỉ cho mapserver biết dữ liệu nằm ở đâu và xuất hình ảnh đến đâu Nó định nghĩa các tầng của bản đồ, bao gồm nguồn dữ liệu, phép chiếu
o Trang khởi tạo: Người dùng tự định nghĩa giao diện
o Trang khuôn mẫu: Sử dụng giao diện mặc định của MapServer
MapServer CGI: nhận yêu cầu và trả về các hình ảnh và dữ liệu Nó nằm trong cgi-bin hoặc thư mục script của http server Người sử dụng Web server phải có quyền thực thi ở thư mục chứa Mapserver CGI, vì lý do bảo mật nó không nên đặt trong web root
HTTP Server: phục vụ yêu cầu của những trang html khi được tác động bởi web browser Ta cần 1 HTTP server như là Apache hoặc Microsoft Internet Infomation Server đặt trên máy cài mapserver
2.1.6 Cách hoạt động của MapServer
Mapserver thường hoạt động phía sau 1 ứng dụng web server Web server nhận những yêu cầu bản đồ và truyền chúng đến mapserver Mapserver tạo ra hình ảnh bản đồ được yêu cầu và truyền đến web server, web server truyền nó đến người sử dụng thông qua web browser
Chức năng chính của mapserver là đọc dữ liệu từ nhiều nguồn dữ liệu khác nhau và kéo các layer lại tạo thành 1 file ảnh như 1 hình ảnh bản đồ Hình ảnh sau cho thấy hoạt động cơ bản của 1 ứng dụng mapserver
Trang 20Hình 1.6 Sơ đồ hoạt động của MapServer Một layer có thể là hình ảnh từ vệ tinh, đường biên giới của 1 quốc gia, hay 1 điểm thể hiện hình ảnh thành phố chính Mỗi lớp được được đặt ở trên hoặc ở dưới lớp khác (chồng lớp) và sau đó được in thành dạng web hình ảnh thân thiện cho người sử dụng
và MSN Virtual Earth API, nhưng một điều khác biệt đặc biệt quan trọng đó là OpenLayers là một phần mềm miễn phí được phát triển bởi cộng đồng mã nguồn mở
Trang 21OpenLayers sử dụng các chuẩn để truy cập bản đồ địa lý, như là OpenGIS consortium's Web Mapping Service( WMS) và giao thức Web Feature Service( WFS) Hơn nữa, OpenLayers được viết bằng JavaScript hướng đối tượng, sử dụng Prototype.js
và thư viện Rico Mã nguồn OpenLayers được kiểm tra rất kỹ lưỡng, và đã vượt qua khung Test.AnotherWay
OpenLayers được thiết kế để thích hợp với tất cả các nguồn dữ liệu Việc làm này
đã làm nên cuộc cách mạng GIS mà người dùng được hưởng lợi nhiều nhất
Các đặc trưng của OpenLayers:
◦ Hỗ trợ tất cả các nguồn dữ liệu
◦ Hỗ trợ hiển thị các không gian địa lý
◦ Dễ dàng cấu hình và phát triển OpenLayers trong các ứng dụng khác
◦ JavaScript API cho phép toàn quyền điều khiển map trên trang web
3 Giới thiệu bản đồ trực tuyến dạng tiled
Hệ thống map Tile-based đang trở thành một 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 và 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 khung 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
để phóng 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 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 người dù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 tất cả các trình duyệt Web hiện thời Giao diện map có thể được viết hoàn toàn trong HTML hoặc
Trang 22với một đoạn JavaScript rất rất nhỏ 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, phóng to, thu nhỏ 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 khác nó có 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 một cách rộng rã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 của công nghệ xây dựng map là 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à đã được cắt nhỏ 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 người dù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 người dù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 là những nhân tố bắt buộc trong hệ thống map Tile-based:
• Sự định vị Tile được sinh ra sau một phép chiếu toàn cầu
• 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
• Tile được tổ chức trong những lớp nhỏ và cố định
Hệ thống tile-base mapping sẽ sử dụng chương trình tile hợp lý, nó sẽ chiếu trái đất đến bề mặt hai chiều và phân chia bề mặt này thành một loạt các lưới có khoảng cách đều nhau như hình dưới
Trang 23Hình 1.7 Chương trình tile hợp lý [4]
Với mỗi ô của lưới là một tile Lưới trên sẽ chứa các địa chỉ của các tile Chương trình tile hợp lý sẽ xác định địa chỉ rời rạc, phương pháp tạo ra nhiều cấp độ phóng của tile Các chương trình trên là nền tảng của hệ thống map tile Mỗi chương trình thường gắn liền với phép chiếu 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ố thực liên tụ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 phóng, địa chỉ cột và hàng mô tả với các giá trị nguyên rời rạc
Chúng ta sẽ xét một chương trình tile hợp lý, nó sẽ chiếu trái đất đến một hình chữ nhật rộng tương ứng 360 độ và dài tương ứng 180 độ Ở mức độ 1, chương trình này sẽ
có một dòng và 2 cột:
Trang 24Hình 1.8 Tile với mức phóng là 1
Đố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 độ phóng to, mỗi Tile được chia thành 4 Tile Thực tế chỉ cần 20 mức phóng là đủ cho hầu hết các dữ liệu map Các tọa độ tile có thể được biểu diễn bằng 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 vào cách lưu tọa độ tile, từng chương trình sẽ gọi địa chỉ tile và lấy dữ liệu ảnh tile điền vào map view theo một quy luật cụ thể để tạo thành bản đồ theo yêu cầu người dùng
Trang 25Để tạo bộ nguồn ảnh để phục vụ tạo ảnh Tile thì việc xử lý ảnh là cần thiết Vì thế
để tạo ảnh Tile thì trước tiên chúng ta phải thực hiện xử lý ảnh và sau đó tạo tile từ bộ ảnh nguồn đã được xử lý Đầu tiên chúng ta sẽ bàn luận về các kỹ thuật xử lý ảnh cần thiết để tạo một bộ ảnh nguồn phục vụ việc tạo ảnh Tile
1.1 Thao tác xƣ lý ảnh
1.1.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 đó
Mỗi giá trị pixel biểu diễn một giá trị màu sắc trong không gian màu sắc của hình ảnh Mỗi màu sắc được biểu diễn bởi mô hình RBG (đỏ, xanh lá cây, xanh nước biển), kết hợp 3 mày cơ bản này ta có thể biểu diễn hàng triệu màu khác nhau
Mỗi thành phần mầu trong mô hình RBG sẽ chiếm một byte lưu trữ, như vậy sẽ mất 3 byte (24 bits) hoặc mất 4 byte (32 bits) với hệ màu RBGA Mỗi byte sẽ có giá trị từ
0 đến 255 và việc kết hợp chúng lại sẽ cho ta 255x255x255 màu được biểu diễn bởi hệ màu RBG 24 bits
Trang 26Hình ảnh raster được lưu trữ trong một loạt cá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 (Join Photographic Experts) 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)
1.1.2 Hình ảnh không gian địa lý
Để những bức ảnh có thể mô tả được bề mặt trái đất một cách trung thực, chính xác, chúng ta phải gắn thông tin không gian địa lý vào bức ảnh đó Các bức ảnh này được đính kèm tọa độ để lý để có thể miêu tả được chính xác khu vực địa lý thực tế Để tạo nên một bức ảnh có gắn thông tin không gian địa lý, chúng ta có hai cách thực hiện Đầu tiên chúng ta có thể một hình chữ nhật bao biên của bức ảnh và có gắn tọa độ địa lý như hình 2.1 ở dưới
Trang 27Hình 2.1 Hỉnh ảnh chứa không gian địa lý
Cách hai là chúng ta cung cấp tọa độ gốc cộng với độ mỗi điểm ảnh (DPP) 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 đó
1.1.2.1 Các tập tin có 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ạng 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
Trang 28Mộ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
1.1.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, nhưng nó không thể 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 có 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 :
1.1.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 của ảnh nguồn có không gian gần nhất đến vị trí các điểm ảnh đích 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
1.1.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ụ:
Trang 29Hình 2.2 Nội suy Bilinear 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
1.1.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 (2.1)
1.1.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 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
Trang 30Ở đây PNG và JPEG là đị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 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, và có độ mờ nhất đị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
1.1.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 mức phóng
Đâ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
Điều quan tâm tiếp theo đó là số lượng ảnh vô nghĩa sau khi tải ảnh tile và hiển thị
nó lên map view Những điểm ảnh vô nghĩa là những điểm ảnh được tải, giải nén nhưng không được hiển thị lên map view và kích thước của màn hình máy tính hiện nay
Kết luận, bằng những thực nghiệm được tiến hành dựa trên hai tiêu chí trên, người
ta sẽ sử dụng 512x512 cho các kích thước Tile Phân tích cho thấy 256x256 cũng sẽ là một lựa chọn tốt Tuy nhiên, chúng ta nên xem xét điểm cuối cùng Phải mất 4 Tile 256x256 để bao một không gian của một Tile 512x512 Vì vậy khi chúng ta tạo ra một số lượng Tile lớn, nếu chúng ta sử dụng Tile 256x256, chúng ta sẽ mất gấp 4 lần mục cơ sở
Trang 31dữ liệu hoặc 4 lần cho file ảnh Tile, và lập chỉ mục sẽ gấp 4 lần kích thước – đây sẽ là một chi phí đáng kể
1.2 Tạo ảnh tile
1.2.1 Tạo ảnh tile từ tập ảnh ngẫu nhiên
Bộ hình ảnh Tile được tạo ra từ bộ sưu tập các nguồn ảnh ngẫu nhiên Chúng ta gọi
là những hình ảnh ngẫu nhiên vì không giống như hình ảnh Tile của chúng ta, các hình ảnh ngẫu nhiên này không có kích thước và ranh giới theo một hệ thống nào cả Các bộ sưu tập hình ảnh nguồn này có hình thức khác nhau Ví dụ chúng ta có 50 bức ảnh có độ phân giải cao từ trên không của các thành phố lớn nhất trên thế giới Mỗi thành phố được đại diện bởi những số nhỏ (5 đến 50) của bức ảnh nguồn lớn ( khoảng 10000x10000) Mỗi hình ảnh nguồn có thể có một kích thước khác nhau, bao gồm một thành phần khác nhau của trái đất hoặc có độ phân giải khác nhau Gộp lại chung, tất cả các bức ảnh nguồn của tất cả các thành phố thành một lớp bản đồ duy nhất Định dạng cho ảnh nguồn bao gồm GEOTIFF, MrSID, và GEO-JPEG2000 Tuy nhiên hầu hết các định dạng hình ảnh được sử dụng, miễn là các thuộc tính không gian địa lý được mã hóa trong tập tin ảnh
Đến đây ta cùng định nghĩa lớp bản đồ Lớp thường là đơn vị nguyên tử để yêu cầu
dữ liệu bản đồ từ hệ thống bản đồ không gian địa lý dựa trên nền WEB Một lớp bản đồ
là một nhóm các dữ liệu không gian địa lý hợp lý Thuật ngữ “layer” được sử dụng để truyền đạt ý tưởng của đồ họa nhiều lớp xếp chồng lên nhau theo thứ tự của màn hình hiển thị Các lớp được hình thành bởi một nhóm dữ liệu không gian địa lý hợp lý Ví dụ một lớp bản đồ “entertainment” sẽ bao gồm các khu vực rạp chiếu phim, công viên, vườn thú, nhà hát … Trong trường hợp những bức ảnh này, chúng ta sẽ định nghĩa một lớp như
là một map view duy nhất cho một không gian địa lý nhất định
Kết luận cho một lớp bản đồ, sẽ chỉ tồn tại một hoặc chỉ một ảnh Tile cho một địa chỉ Tile đặc biệt
Ví dụ chúng ta có hình ảnh trên không của Alaska Tuyến bao quanh Alaska thay đổi từ tháng này sang tháng khác Chúng ta phải có tập ảnh nguồn cho mỗi tháng của một năm Mỗi ảnh trong tập ảnh ấy sẽ bao một không gian giống nhau Đối với một Tile có địa chỉ nhất định, mỗi ảnh sẽ thiết lập một ảnh Tile có một nội dung khác nhau Vì thế
Trang 32chúng ta phải nhóm chúng thành một lớp riêng biệt, một lớp hình ảnh cho từng tháng riêng
1.2.2 Chuẩn bị tạo tile
1.2.2.1 Tạo buttom-up tile
Mỗi lớp hình ảnh Tile có nhiều cấp độ Một bộ Tile bắt đầu với một mức độ cơ sở; mức độ cơ bản là mức với số lượng cao nhất và độ phân giải hình ảnh cao nhất Mỗi cấp
độ tiếp theo là một phiên bản thấp hơn mức trước đó Hình 2.2 chỉ ba cấp độ của cùng một lớp hình ảnh Trong ví dụ này, cấp 3 là cấp độ cơ sở Mức độ 2 và 1 là phiên bản độ phân giải thấp của cùng một dữ liệu
Trang 33ra Tile là một quá trình từ dưới lên về quy mô bản đồ
1.2.2.2 Chọn mức cơ sở cho tập ảnh nguồn
Trước khi một bộ Tile có thể được tạo ra từ một tập hợp các hình ảnh ngẫu nhiên, thì mức cơ sở sẽ được chọn Trong một số trường hợp, một mức mục tiêu cơ bản sẽ được xác định trước Nó có thể được yêu cầu để tích hợp với lớp Tile khác hoặc phần mềm client Tuy nhiên, trong hầu hết trường hợp, các cấp cơ sở được lựa chọn chặt chẽ phù hợp với độ phân giải của hình ảnh nguồn Một tập hợp các hình ảnh nguồn ngẫu nhiên là không phù hợp chính xác với một trong những mức độ độ phân giải định trước của chúng
ta Vì vậy, chúng ta phải chọn mức độ Tile gần nhất với hình ảnh nguồn của chúng ta Bảng 2.3 cho thấy 19 cấp độ đầu tiên trong chương trình Tile hợp lý của chúng ta với Tile 512x512 Nó cung cấp cho số lượng Tile ngang và dọc cho mỗi cấp độ cùng với độ của mỗi điểm ảnh (DPP) cho mỗi cấp Các giá trị DPP sẽ được sử dụng để lựa chọn các mức cơ sở cho bộ hình ảnh nguồn
Bảng 2.1 Số lượng tile và DPP của 19 mức phóng [4]
Trang 34Để thực hiện phân tích này, chúng ta sẽ yêu cầu một số thông tin từ mỗi nguồn hình ảnh trong thiết lập của chúng ta: chiều rộng và chiều cao hình ảnh theo pixel tối thiểu và tọa độ tối đa theo chiều dọc và ngang ở các mức độ Chúng ta tính toán giá trị DPP bằng cách kết hợp các kích thước theo chiều dọc và theo chiều ngang của hình ảnh Đây là một phương pháp phù hợp cho các dự đoán hình ảnh Tile bảo tồn DPP cùng trong mỗi kích thước Các tính toán được thực hiện ở các mức độ Dựa vào phương pháp trên việc tìm kiếm một tile cơ sở là tương đối phức tạp, nhưng khi chúng ta đã chọn được một tile cơ
sở thì những tile ở mức độ thấp hơn sẽ được tạo ra một cách dễ dàng
1.2.2.3 Tạo tile dựa trên nền Pull và Push
Có hai phương pháp để tạo ra tile từ nguồn hình ảnh ngẫu nhiên: nền kéo và nền đẩy
Tạo ra tile trên nền kéo có nghĩa là tạo ra tile và kéo dữ liệu từ hình ảnh nguồn vào Còn tạo tile trên nền đẩy là đẩy dữ liệu hình ảnh nguồn vào tile được tạo ra Trên thực tế hai phương pháp này là khác nhau vì nhưng lý do dưới đây
Vấn đề thứ nhất là vấn đề về bộ nhớ Trên thực tế thì bộ nhớ của máy tính là bị giới hạn, vì thế việc lưu trữ một bộ tile có kích thước lớn trong bộ nhớ là không thể mà chúng
Trang 35ta phải lưu trữ chúng ở ngoài đĩa cứng Việc đọc các tile bao giờ cũng nhanh việc ghi chúng vào đĩa cứng
Mối quan tâm thứ hai là đa luồng Máy tính ngày nay được hỗ trợ nhiều luồng nên
có thể thực hiện được nhiều công việc trong cùng một thời gian Điều này là rất cần thiết
để một hệ thống có thể làm việc hiệu quả Nhưng điều đáng chú ý ở đây là việc quản lý tài nguyên trong một luồng an toàn Vì thế hai luông không nên đồng thời truy xuất vào một tile Nếu chúng ta sử dụng phương pháp đẩy, thì chúng ta sẽ phải lặp qua nguồn hình ảnh, và sau đó sẽ trao đổi với tile vào và ra khỏi bộ nhớ thường xuyên Vì vậy những tile
sẽ phải trao đổi ở bộ nhớ và thời gian ở ổ đĩa trong quá trình tạo ra chúng Điều này sẽ dẫn đến hiện tượng phân mảnh hệ thống tập tin Nhưng với phương pháp kéo, chúng ta sẽ lập qua các tile đầu tiên và trao đổi với các hình ảnh nguồn ở trong và ngoài bộ nhớ Vì các hình ảnh là những tập tin chỉ đọc nên làm việc với chúng sẽ rất an toàn Do đó, phương pháp kéo có vẻ trực quan hơn
1.2.3 Thuật toán tạo tile
Sau đây là các bước trong quá trình tạo Tile:
1 Chọn mức cơ sở cho các thiết lập Tile
2 Xác định các giới hạn địa lý của tập Tile (Điều này có thể dựa trên các giới hạn các hình ảnh nguồn.)
3 Xác định các giới hạn của tập Tile trong hệ tọa độ Tile
4 Khởi tạo cơ chế lưu trữ Tile
5 Lặp qua các tọa độ thiết lập Tile Đối với mỗi Tile, làm như sau:
a Tính toán các giới hạn địa lý của Tile cụ thể
b Lặp qua các hình ảnh nguồn Đối với mỗi hình ảnh nguồn làm như sau:
i Xác định nếu nguồn hình ảnh cụ thể thì Tile được tạo ra
ii Nếu hình ảnh nguồn và Tile giao nhau,
A Kiểm tra bộ nhớ cache cho hình ảnh nguồn Nếu nó không phải
là trong bộ nhớ cache, tải từ đĩa và lưu trong bộ nhớ cache
Trang 36B Giải nén dữ liệu hình ảnh cần thiết từ nguồn hình ảnh, và lưu nó trong hình ảnh lát Tile
c Lưu hình ảnh lát Tile hoàn thành với cơ chế lưu trữ Tile
6 Xóa bộ nhớ cache hình ảnh nguồn
7 Hoàn thiện cơ chế lưu trữ Tile
1.2.3.1 Mở rộng quy mô quá trình cho các cấp độ phân giải thấp hơn
Việc tạo ra các tile ở mức thấp hơn là đơn giản hơn so với việc tạo ra tile ở mức cơ bản
Hình 2.4 Mối quan hệ tile giữa các mức
Các thuật toán cơ bản là như sau:
1 Đối với mỗi cấp độ từ (base_level – 1) đến 1, thực hiện như sau
a Xác định các giới hạn về mức độ Tile hiện hành trong hệ tọa độ Tile
b Khởi tạo cơ chế lưu trữ Tile
c Lặp qua các tọa độ thiết lập Tile Đối với mỗi Tile, làm như sau:
i Xác định bốn Tile từ cấp cao hơn, gộp thành Tile hiện tại
ii Lấy 4 hình ảnh Tile hoặc nhiều hơn
Trang 37iii Kết hợp hình ảnh Tile thành một hình ảnh thu nhỏ
iv Lưu hình ảnh lát Tile hoàn thiện với cơ chế lưu trữ Tile
d Hoàn thiện cơ chế lưu trữ Tile
2 Lưu trữ
2.1 Lưu trữ các hình ảnh tile như là các tập tin riêng biệt
Một phương pháp đơn giản và phổ biến để lưu trữ các ảnh dạng tile là lưu trữ mỗi ảnh trong một tập tin riêng biệt trên tập tin hệ thống của máy tính Các ảnh dạng tile được định dạng ở định dạng chuẩn như JPEG hay PNG Thư mục trên hệ thống tập tin có thể được sử dụng để cung cấp cấu trúc và tổ chức cho các ảnh dạng tile Ví dụ: chúng ta có thể sử dụng một thu mục cấp cao nhất cho các lớp, các thư mục con ở trong các lớp thư mục với mỗi cấp độ, và sau đó các thư mục con nằm trong các cấp độ thư mục ứng với mỗi cột Trong mỗi thư mục cột là các ảnh dạng tile cho mỗi hàng trong cột đó
Đây là loại hình tổ chức hay được sử dụng vì nhiều lý do Đầu tiên, tile có thể được giải quyết trực tiếp bằng cách đơn giản tạo thành tên tập tin và mở tập tin Ví dụ ta muốn tạo một ảnh dạng tile cho lớp “Blue” với mức 7,cột 5 và hàng 4 Ta chỉ cần tạo chuỗi
“Blue/7/5/4.jpg” Với phương pháp này chúng ta chỉ cần có một chỉ số riêng biệt cho mỗi tile Một lợi ích nữa của phương pháp này là có thể thay thế các tile mà không ảnh hưởng lớn đến hệ thống bản đồ
Cuối cùng và quan trọng nhất, xây dựng một web để lưu trữ các ảnh dạng tile là dễ dàng Hầu hết các máy chủ HTTP bao gồm Apache là có thể dùng được Các máy chủ HTTP chỉ đơn giản là lấy các hình ảnh trực tiếp từ hệ thống với cấu hình tối thiểu