Luận văn Tìm hiểu SVG và ứng dụng

Tài liệu Luận văn Tìm hiểu SVG và ứng dụng: SV ne t.vn TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM HUỲNH NGỌC ĐOÀN - 0112083 LÊ ANH TOÀN - 0112074 TÌM HIỂU SVG VÀ ỨNG DỤNG LUẬN VĂN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN TS DƯƠNG ANH ĐỨC Th.S LÊ THỤY ANH NIÊN KHÓA 2001 - 2005 SV ne t.vn i NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ..................................................................................................

pdf195 trang | Chia sẻ: haohao | Lượt xem: 1245 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Tìm hiểu SVG và ứng dụng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
SV ne t.vn TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CƠNG NGHỆ THƠNG TIN BỘ MƠN CƠNG NGHỆ PHẦN MỀM HUỲNH NGỌC ĐỒN - 0112083 LÊ ANH TỒN - 0112074 TÌM HIỂU SVG VÀ ỨNG DỤNG LUẬN VĂN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN TS DƯƠNG ANH ĐỨC Th.S LÊ THỤY ANH NIÊN KHĨA 2001 - 2005 SV ne t.vn i NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... SV ne t.vn ii NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... SV ne t.vn iii LỜI CÁM ƠN Chúng em xin chân thành cám ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa Học Tự Nhiên TpHCM đã tạo điều kiện tốt cho chúng em thực hiện đề tài luận văn tốt nghiệp này. Chúng em xin chân thành cám ơn Thầy Dương Anh Đức và Thầy Lê Thụy Anh đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài. Chúng em xin chân thành cám ơn quý Thầy Cô trong Khoa đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học vừa qua. Chúng con xin nói lên lòng biết ơn sâu sắc đối với Ông Bà, Cha Mẹ đã chăm sóc, nuôi dạy chúng con thành người. Xin chân thành cám ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên chúng em trong thời gian học tập và nghiên cứu. Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Chúng em kính mong nhận được sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn. Nhóm thực hiện Huỳnh Ngọc Đoàn và Lê Anh Toàn 07/2005 SV ne t.vn iv LỜI NĨI ĐẦU Sự phát triển của Internet đang vươn tới mọi ngĩc ngách trong đời sống kinh tế, xã hội. Các ứng dụng của Internet đang làm cho cuộc sống ngày hồn thiện hơn, rút ngắn khoảng cách về khơng gian. Các cơng ty lớn trên thế giới đang chuyển hướng cơng nghệ của mình vào siêu xa lộ thơng tin. Họ ra sức phát triển các cơ sở hạ tầng, các ứng dụng, các dịch vụ giá trị gia tăng và các chuẩn mực. Nếu nhà phát triển nào tạo ra một chuẩn mực tốt thì sẽ chiếm lĩnh được thị trường, lật đổ những chuẩn mực trước đĩ. Sự phát triển cơng nghệ cho Internet đang thu hút các tổ chức, các cơng ty ra sức áp đặt các chuẩn mực riêng của mình lên ngành cơng nghiệp này. Hệ quả là thế giới đã chứng kiến nhiều sự thay đổi chuẩn mực, kèm theo đĩ là phí tổn khi phải chuyển đổi từ định dạng theo chuẩn cũ sang định dạng của chuẩn mới. Một những sự chuyển đổi đĩ là sự chuyển đổi từ các định dạng ảnh quét này sang định dạng ảnh quét khác, chuyển từ định dạng ảnh quét sang định dạng ảnh véc-tơ. Khi các ảnh đã được mơ tả bằng véc-tơ, các hệ nến, các trình soạn thảo và các ứng dụng địi hỏi phải cĩ một hệ thống quy ước chung để xử lý. Một loạt các chuẩn véc-tơ đã ra đời nhưng đều là các định dạng độc quyền của từng cơng ty. Từ năm 1999, chuẩn đồ họa véc-tơ SVG đã ra đời đánh dấu sự hợp nhất của các cơng ty trong việc xử lý đồ họa véc-tơ. Sự xuất hiện của SVG đã dẫn đến một loạt ứng dụng đã ra đời, tận dụng được những ưu điểm của chuẩn này. Trong các ứng dụng của SVG, ứng dụng bản đồ là thể hiện rõ nhất tính ưu việt của SVG. Như vậy tại sao khơng tận dụng SVG và GIS để tạo ra một chương trình tìm kiếm đường đi trên bản đồ? SV ne t.vn v Với ý tưởng trên, chúng em đã chọn và tập trung phát triển đề tài “Tìm hiểu SVG và xây dựng ứng dụng tìm đường đi trên bản đồ dựa trên đồ họa véc-tơ”. Nội dung của luận văn được chia làm 5 chương như sau: Chương 1. Mở đầu: giới thiệu vai trị của đồ họa véc-tơ và GIS. Dẫn nhập khả năng sử dụng SVG kết hợp GIS để tạo bản đồ, l ý do thực hiện đề tài, đồng thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được. Chương 2. Các vấn đề tổng quan: khái quát về chuẩn véc-tơ cho bản đồ, các định dạng véc-tơ thơng dụng hiện nay và minh họa bằng các ví dụ đơn giản, mơ hình đối tượng tài liệu DOM, ngơn ngữ XML, cũng như trình bày về những điều cơ bản nhất của hệ thống thơng tin địa lý GIS. Chương 3. Cấu trúc định dạng tập tin SVG: trình bày chi tiết về SVG, các thành phần chính thường được sử dụng trong đặc tả SVG, kiến trúc nội vi SVG, kiến trúc ứng dụng SVG. Chương 4. Giải pháp cho vấn đề phát triển ứng dụng bản đồ dựa trên đồ họa véc-tơ SVG: trình bày các vấn đề liên quan trực tiếp đến việc xây dựng ứng dụng. Chương 5. Tổng kết: tĩm lại các vấn đề đã giải quyết và nêu ra một số hướng phát triển trong tương lai. SV ne t.vn vi MỤC LỤC Chương 1 Mở đầu ............................................................................................... 14 1.1 Vai trị của đồ họa véc-tơ trong ứng dụng bản đồ ......................................... 14 1.2 Mục tiêu của đề tài ......................................................................................... 15 Chương 2 Các vấn đề tổng quan ....................................................................... 16 2.1 Tổng quan về chuẩn véc-tơ cho bản đồ ......................................................... 16 2.1.1 Giới thiệu về chuẩn véc-tơ cho bản đồ .................................................. 16 2.1.1.1 Chuẩn chính thức........................................................................ 16 2.1.1.2 Chuẩn bất thành văn ................................................................... 17 2.1.2 Các định dạng của véc-tơ....................................................................... 18 2.1.2.1 SVF............................................................................................. 18 2.1.2.2 DWF ........................................................................................... 20 2.1.2.3 Flash (cịn gọi là SWF)............................................................... 21 2.1.2.4 PGML ......................................................................................... 22 2.1.2.5 WebCGM.................................................................................... 23 2.1.2.6 VML ........................................................................................... 24 2.1.2.7 PDF............................................................................................. 27 2.1.2.8 SVG ............................................................................................ 30 2.1.2.9 VRML......................................................................................... 36 2.1.2.10 HGML ........................................................................................ 37 2.1.2.11 DrawML ..................................................................................... 38 2.1.3 Mơ hình DOM ....................................................................................... 39 2.1.4 Ngơn ngữ XML ..................................................................................... 40 2.1.5 Tổng quan về GIS.................................................................................. 42 2.1.5.1 Khái niệm GIS? .......................................................................... 42 2.1.5.2 Các thành phần của GIS ............................................................. 42 2.1.5.3 - Chuyên viên (personnel): nhân viên, chuyên viên phân tích, thiết kế, phát triển, bảo trì hệ thống thơng tin dữ liệu GIS ......................... 42 2.1.5.4 Chức năng của GIS..................................................................... 42 2.1.5.5 Các ứng dụng cơ bản trong thực tế của GIS............................... 42 Chương 3 Cấu trúc định dạng tập tin SVG...................................................... 44 3.1 Định nghĩa...................................................................................................... 44 3.2 Sự tương thích với các chuẩn khác ................................................................ 44 3.3 Loại MIME của SVG và Khơng gian tên SVG ............................................ 46 3.3.1 Loại MIME của SVG, mở rộng tên tập tin và loại tập tin Macintosh:.. 46 3.3.2 Khơng gian tên SVG, định danh cơng cộng và định danh hệ thống: .... 47 3.4 Định nghĩa một phân đoạn tài liệu SVG : thành phần ‘SVG’ ....................... 47 3.4.1 Tổng quan: ............................................................................................. 47 3.4.2 Thành phần ‘svg’: .................................................................................. 50 3.5 Gom nhĩm : thành phần ‘g’: .......................................................................... 52 SV ne t.vn vii 3.6 Tham chiếu và thành phần ‘defs’:.................................................................. 53 3.6.1 Tổng quan: ............................................................................................. 53 3.6.2 Các thuộc tính tham chiếu URI: ............................................................ 57 3.6.3 Thành phần ‘defs’ .................................................................................. 58 3.7 Thành phần ‘desc’ và ‘title’: .......................................................................... 59 3.8 Thành phần ‘symbol’: .................................................................................... 62 3.9 Thành phần ‘use’:........................................................................................... 62 3.10 Thành phần ‘image’: ...................................................................................... 74 3.11 Các hình cơ bản.............................................................................................. 77 3.11.1 Hình chữ nhật – thành phần ‘rect’ ......................................................... 77 3.11.2 Hình trịn – thành phần ‘circle’.............................................................. 79 3.11.3 Hình e-lip – thành phần ‘ellipse’ ........................................................... 79 3.11.4 Đường thẳng – thành phần ‘line’........................................................... 81 3.11.5 Đường gấp khúc – thành phần ‘polylinbe’ ............................................ 82 3.11.6 Đa giác – thành phần ‘polygon’ ............................................................ 83 3.12 Hệ trục toạ độ, các phép biến đổi và các đơn vị đo ....................................... 84 3.12.1 Giới thiệu ............................................................................................... 84 3.12.2 Khung nhìn ban đầu............................................................................... 85 3.12.3 Hệ trục toạ độ ban đầu........................................................................... 87 3.12.4 Các phép biến đổi hệ trục toạ độ ........................................................... 88 3.12.5 Thuộc tính ‘transform’........................................................................... 95 3.12.6 Thuộc tính ‘viewBox’............................................................................ 97 3.12.7 Thuộc tính ‘preserveAspectRatio’....................................................... 100 3.12.8 Thiết lập khung nhìn............................................................................ 106 3.13 Định kiểu (styling) ....................................................................................... 108 3.13.1 Các thuộc tính định kiểu của SVG ...................................................... 108 3.13.2 Định kiểu dùng thuộc tính trình diễn................................................... 108 3.13.3 Định kiểu bằng CSS............................................................................. 109 3.13.4 Thành phần ‘style’ .............................................................................. 112 3.13.5 Thuộc tính ‘class’ ................................................................................ 112 3.13.6 Phạm vi của trang định kiểu: ............................................................... 113 3.14 Đường xén.................................................................................................... 114 3.14.1 Giới thiệu: ............................................................................................ 114 3.14.2 Đường xén ban đầu.............................................................................. 114 3.14.3 Thuộc tính ‘overflow’ và ‘clip’ .......................................................... 114 3.14.4 Đường xén đối với khung nhìn và đường xén đối với ‘viewBox’ ...... 116 3.14.5 Thiết lập đường xén mới...................................................................... 117 3.15 Thành phần ‘path’ ........................................................................................ 121 3.15.1 Giới thiệu ............................................................................................. 121 3.15.2 Thành phần ‘path’................................................................................ 121 3.15.3 Dữ liệu đường (path data)................................................................... 121 3.16 Thành phần ‘text’ ......................................................................................... 122 3.16.1 Giới thiệu ............................................................................................. 122 SV ne t.vn viii 3.16.2 Thành phần ‘text’................................................................................. 123 3.16.3 Thuộc tính thiết lập phơng chữ cho thành phần ‘text’......................... 126 3.16.4 Thuộc tính canh lề ............................................................................... 127 3.16.5 Thành phần ‘tspan’ .............................................................................. 128 3.16.6 Thành phần ‘tref’ ................................................................................. 131 3.17 Vẽ chữ dọc theo một đường......................................................................... 132 3.17.1 Giới thiệu: ............................................................................................ 132 3.17.2 Thành phần ‘textPath’.......................................................................... 133 3.18 Khả năng ảnh động của SVG - thành phần ‘animate’ ................................. 138 3.18.1 Giới thiệu ............................................................................................. 138 3.18.2 Các thành phần ảnh động..................................................................... 139 3.18.2.1 Tổng quan ................................................................................. 139 3.18.2.2 Mối quan hệ của ảnh động SVG với SMIL Animation............ 139 3.18.3 Ví dụ ảnh động: ................................................................................... 141 3.19 Viết script (kịch bản).................................................................................... 142 3.19.1 Chỉ định ngơn ngữ viết script .............................................................. 142 3.19.1.1 Chỉ định ngơn ngữ viết script mặc định ................................... 142 3.19.1.2 Khai báo cục bộ ngơn ngữ viết script ....................................... 143 3.19.2 Thành phần ‘script’.............................................................................. 143 3.19.3 Quản lý sự kiện.................................................................................... 146 3.19.4 Thuộc tính sự kiện ............................................................................... 146 3.19.5 ECMAScript và DOM ......................................................................... 148 3.19.5.1 Lấy đối tượng tài liệu ............................................................... 148 3.19.5.2 Lấy thành phần gốc................................................................... 148 3.19.5.3 Tạo một node trong cây tài liệu................................................ 148 3.19.5.4 Xĩa một thành phần ra khỏi thành phần cha của nĩ................. 149 3.19.5.5 Thiết lập thuộc tính sự kiện ...................................................... 149 3.19.5.6 Thiết lập bộ lắng nghe sự kiện.................................................. 149 Chương 4 Giải pháp cho vấn đề phát triển ứng dụng bản đồ dựa trên đồ họa véc-tơ SVG 151 4.1 Các kĩ thuật và cơng nghệ ............................................................................ 151 4.2 WMS ............................................................................................................ 151 4.3 WFS ............................................................................................................. 152 4.4 GEOSERVER .............................................................................................. 154 4.5 Kiến trúc ứng dụng ...................................................................................... 155 4.6 Client-side .................................................................................................... 156 4.7 Server- side .................................................................................................. 156 4.8 Sơ đồ tương tác chi tiết giữa client và server............................................... 158 4.8.1 Mơ tả chi tiết client .............................................................................. 159 4.8.1.1 Vấn đề hiển thị nội dung SVG ở phía client............................. 159 4.8.1.2 Vấn đề tương tác với nội dung SVG ở phía client ................... 159 4.8.1.3 Tìm đường đi từ giữa hai điểm................................................. 160 4.8.1.4 Vấn đề thay đổi tỉ lệ phĩng to thu nhỏ ..................................... 161 SV ne t.vn ix 4.8.2 Mơ tả chi tiết server ............................................................................. 162 4.8.2.1 Mơ tả chi tiết “Bản đồ ASPX” ................................................. 162 4.8.2.2 Mơ tả “Service tìm đường”....................................................... 163 4.8.2.3 Mơ tả Geoserver ....................................................................... 163 4.8.2.4 Mơ tả Microsoft SQL Server .................................................... 169 4.8.3 Mơ tả chi tiết quá trình tìm kiếm đường đi.......................................... 171 Chương 5 TỔNG KẾT ..................................................................................... 173 5.1 Kết luận ........................................................................................................ 173 5.2 Hướng phát triển: ......................................................................................... 173 Phụ lục A Mơ tả bổ sung cho các định dạng véc-tơ ....................................... 174 Phụ lục B Kết quả cài đặt ................................................................................ 190 Tài liệu tham khảo ............................................................................................... 194 SV ne t.vn x DANH MỤC CÁC HÌNH Hình 1.1 Ứng dụng bản đồ SVG của Sở Khoa học và Cơng nghệ TP. Hồ Chí Minh....................................................................................................... 12 Hình 2.1 Luồng cơng việc của VML và HTML ....................................................... 23 Hình 2.2 Minh họa VML .......................................................................................... 25 Hình 2.3 Các thành phần của PDF............................................................................ 27 Hình 2.4 Minh họa đơn giản về SVG ....................................................................... 33 Hình 2.5 Một ví dụ đơn giản về cây phân cấp DOM................................................ 37 Hình 2.6 Kiến trúc và hình thái XML....................................................................... 39 Hình 3.1 Minh họa nội dung SVG được nhúng nội tuyến........................................ 47 Hình 3.2 Minh họa thành phần gom nhĩm ‘g’.......................................................... 51 Hình 3.3 Minh họa thành phần ‘defs’ ....................................................................... 57 Hình 3.4 Cây DOM của nội dung SVG cho ví dụ hình chữ nhật tơ tuyến tính ........ 57 Hình 3.5 Cây tài liệu của thành phần ‘use’ chỉ dùng ‘g’ .......................................... 65 Hình 3.6 Minh họa thành phần ‘use’ chỉ dùng ‘g’ .................................................... 65 Hình 3.7 Cây tài liệu của thành phần ‘use’ dùng ‘g’ và ‘svg’ .................................. 66 Hình 3.8 Minh họa thành phần ‘use’ dùng ‘g’ và ‘svg’............................................ 67 Hình 3.9 Minh họa thành phần ‘use’ với thuộc tính ‘transform’.............................. 68 Hình 3.10 Minh họa thành phần ‘use’ với trang định kiểu CSS............................... 69 Hình 3.11 Minh họa thành phần ‘rect’ vuơng gĩc .................................................... 76 Hình 3.12 Minh họa thành phần ‘rect’ trịn gĩc........................................................ 76 Hình 3.13 Minh họa thành phần ‘circle’ ................................................................... 77 Hình 3.14 Minh họa thành phần ‘ellipse’ ................................................................. 79 Hình 3.15 Minh họa thành phần ‘line’...................................................................... 80 Hình 3.16 Minh họa thành phần ‘polyline’............................................................... 81 Hình 3.17 Minh họa hệ trục tọa độ ban đầu.............................................................. 86 Hình 3.18 Minh họa hiển thị khơng cĩ phép biến đổi .............................................. 87 Hình 3.19 Minh họa phép tịnh tiến ........................................................................... 89 SV ne t.vn xi Hình 3.20 Minh họa phép quay và phép co giãn ...................................................... 90 Hình 3.21 Minh họa phép kéo xiên theo trục X, trục Y............................................ 91 Hình 3.22 Minh họa phép các phép biến đổi lồng nhau ........................................... 93 Hình 3.23 Minh họa thuộc tính ‘viewBox’ ............................................................... 96 Hình 3.24 Minh họa thuộc tính ‘preserveAspectRatio’ .......................................... 104 Hình 3.25 Minh họa thuộc tính ‘fill’....................................................................... 107 Hình 3.26 Minh họa nội dung SVG cĩ tham chiếu đến trang định kiểu CSS ........ 108 Hình 3.27 Minh họa thành phần ‘clipPath’............................................................. 118 Hình 3.28 Minh họa thành phần ‘path’ ................................................................... 120 Hình 3.29 Minh họa thành phần ‘text’ .................................................................... 124 Hình 3.30 Minh họa thành phần ‘tspan’ ................................................................. 127 Hình 3.31 Minh họa thành phần ‘tspan’ cĩ một vị trí đặc biệt ............................... 128 Hình 3.32 Minh họa thành phần ‘tspan’ thiết lập vị trí mới cho mỗi kí tự trong chuỗi ...................................................................................................... 129 Hình 3.33 Minh họa thành phần ‘tref’ .................................................................... 130 Hình 3.34 Minh họa thành phần ‘textPath’............................................................. 134 Hình 3.35 Minh họa thành phần ‘textPath’ cĩ sử dụng thuộc tính ‘tspan’............. 135 Hình 3.36 Minh họa thành phần ‘textPath’ sử dụng thuộc tính ‘startOffset’ ......... 136 Hình 3.37 Minh họa thành phần ảnh động animateMotion .................................... 140 Hình 3.38 Minh họa chức năng bắt sự kiện chuột .................................................. 142 Hình 3.39 Minh họa bộ timer và thuộc tính mờ ‘opaque’ ...................................... 144 Hình 4.1 Mơ hình kiến trúc giao tiếp giữa client và WFS...................................... 150 Hình 4.2 Sơ đồ phân tầng của GeoServer ............................................................... 153 Hình 4.3 Sơ đồ kiến trúc ứng dụng ......................................................................... 154 Hình 4.4 Kiến trúc client-server được cài đặt ......................................................... 155 Hình 4.5 Kiến trúc chi tiết client-server được cài đặt ............................................. 156 Hình 4.6 Minh họa yêu cầu hiển thị nội dung ở phía client.................................... 157 Hình 4.7 Cây DOM quản lý qui trình bắt sự kiện................................................... 158 Hình 4.8 Mơ tả chức năng server “Bản đồ ASPX”................................................. 160 SV ne t.vn xii Hình 4.9 Mơ tả server “Service tìm đường” ........................................................... 161 Hình 4.10 Mơ tả Geoserver..................................................................................... 161 Hình 4.11 Kết xuất của Geoserver .......................................................................... 162 Hình A.1 Ví dụ về ảnh VRML................................................................................ 178 Hình B.1 Bản đồ SVG được phát sinh bởi GenerateSVGMap............................... 189 Hình B.2 Bản đồ SVG được hiển thị trong chương trình client ............................. 190 Hình B.3 Minh hoạ chú thích khi rê chuột lên một đối tượng................................ 191 SV ne t.vn xiii DANH MỤC CÁC BẢNG BIỂU Bảng 4.1 Bảng MapNetworkWithLength ............................................................... 167 Bảng 4.2 Bảng MapNetworkArc_AutoWithDirection ........................................... 168 Bảng 4.3 Bảng MapNetworkDanhSachNodeKe..................................................... 168 Bảng A.1 Cấu trúc tập tin Flash.............................................................................. 175 Bảng A.2 Danh sách 18 thẻ của HGML ................................................................. 180 SV ne t.vn Chương 1. Mở đầu 14 Chương 1 Mở đầu 1.1 Vai trị của đồ họa véc-tơ trong ứng dụng bản đồ SVG (Scalable Vector Graphics) (Đồ họa véc-tơ khả co) là một chuẩn ra đời vào năm 1999. SVG là một định dạng đồ họa véc-tơ hỗ trợ các nhà phát triển mơ tả các hình ảnh bằng văn bản. Những năm gần đây, các ứng dụng về SVG ngày càng được phát triển mạnh trên khắp thế giới, trên các hệ thống máy tính để bàn và gần đây là trên các thiết bị nhúng chẳng hạn như thiết bị di động. Tại Việt Nam, việc nghiên cứu SVG cũng đã đạt được một số kết quả đáng khích lệ. Cĩ thể kể đến kết quả nghiên cứu của Sở Khoa học và Cơng nghệ TP. Hồ Chí Minh ( SVG ngày càng phát triển lớn mạnh. Bên cạnh đĩ là GIS cũng đang chiếm vai trị quan trọng trong lĩnh vực bản đồ. Việc kết hợp SVG và GIS sẽ tạo ra một hệ mới được gọi là SVG GIS. Hệ này cĩ chức năng tìm kiếm, tra cứu thơng tin bản đồ đồng thời lại tận dụng được tính ưu việt của SVG. SVG GIS cho phép phĩng to bản đồ đến kích cỡ bất kỳ mà khơng vỡ ảnh. SVG cĩ thể được xén theo kích thước tùy ý để truyền tải trên mạng được nhanh chĩng. Bản thân SVG đã hàm chứa dữ liệu. Hình 1.1. Ứng dụng bản đồ SVG của Sở Khoa học và Cơng nghệ TP. Hồ Chí Minh SV ne t.vn Chương 1. Mở đầu 15 Một điều cần lưu ý khi phát triển ứng dụng với SVG là tốc độ hiển thị nội dung SVG phụ thuộc vào độ phức tạp của nội dung SVG và tốc độ xử lý của máy tính. Do đĩ đối với ứng dụng bản đồ SVG, người phát triển cần phải chọn giải pháp tối ưu nhất là giảm tối đa kích thước tập tin .svg cần hiển thị tại một thời điểm bằng cách xén nội dung SVG bên trong nĩ. 1.2 Mục tiêu của đề tài Hiện nay, trên thế giới, các ứng dụng bản đồ đang chuyển dần sang sử dụng chuẩn SVG. Các ứng dụng này vơ cùng đa dạng, từ quản lý mùa màng, dịch bệnh, dân số, thời tiết, tội phạm cho đến quản lý đường trong đơ thị. Tại Việt Nam, việc xây dựng một ứng dụng bản đồ SVG cũng rất cần thiết vì sớm hay muộn thì chúng ta cũng phải thực hiện điều này để tận dụng lợi thế của SVG. Chính vì xuất phát từ nhu cầu trên, cùng với sự hấp dẫn của cơng nghệ nên chúng em đã chọn và xây dựng đề tài “TÌM HIỂU SVG VÀ XÂY DỰNG ỨNG DỤNG TÌM ĐƯỜNG ĐI TRÊN BẢN ĐỒ DỰA TRÊN ĐỒ HỌA VECTƠ”, với dữ liệu là bản đồ đường đi trong Thành phố Hồ Chí Minh. Các chức năng chính của ứng dụng cần phải xây dựng : - Chương trình địi hỏi về giao diện : cho phép người dùng duyệt từng phần trên bản đồ theo các chiều : sang trái, sang phải, lên trên và xuống dưới và cho phép phĩng to, thu nhỏ phần bản đồ đang xem. Đồng thời phải cĩ các luật giao thơng như đường một chiều kí hiệu trên bản đồ để tránh cho người dùng vi phạm. Cho phép thay đổi các thơng số như tỉ lệ phĩng to thu nhỏ mỗi lần, tỉ lệ di chuyển. - Cho phép người dùng tra cứu các tên đường. - Cho phép người dùng tìm đường đi ngắn nhất giữa 2 đường bằng chỉ dẫn lời hoặc bằng hình ảnh trực quan. SV ne t.vn Chương 2. Các vấn đề tổng quan 16 Chương 2 Các vấn đề tổng quan 2.1 Tổng quan về chuẩn véc-tơ cho bản đồ 2.1.1 Giới thiệu về chuẩn véc-tơ cho bản đồ Trong lĩnh vực bản đồ, bằng cách sử dụng véc-tơ, chúng ta cĩ thể làm cho việc tương tác, phân tích, sử dụng các chức năng liên quan đến màn hình trở nên dễ dàng hơn, chẳng hạn như phĩng to thu nhỏ (zoom) và kéo (pan). Chất lượng của các hình ảnh được tái hiện cũng tăng lên rất đáng chú ý. Cách đây khơng lâu, chỉ cĩ việc hiển thị văn bản và ảnh quét (raster image) được tiêu chuẩn hĩa. Trong khi đĩ, bản thân bản đồ lại cần một lượng các hàm bổ sung. Điều này cĩ thể đạt được bằng cách sử dụng server scripts hoặc các chỉ thị javascript phức tạp, và bằng cách nạp các ảnh quét. Thời điểm cuối năm 1999 đã chứng kiến sự ra đời của một chuẩn mới đầy hứa hẹn được gọi là SVG (Scalable Vector Graphics). Chuẩn này tạo ra khả năng trang bị đồ họa véc-tơ cho các web site. SVG được phát triển theo yêu cầu của giới cơng nghiệp, nên một lượng lớn các ứng dụng sẽ được phát triển tiếp. Khi xét về mặt lợi ích cho bản đồ, lần đầu tiên trong lịch sử của web, đã cĩ một chuẩn tuân thủ tối đa các yêu về đồ họa. Chuẩn véc-tơ được chia ra làm hai phần: • Chuẩn chính thức • Chuẩn bất thành văn 2.1.1.1 Chuẩn chính thức Các chuẩn chính thức là sự thỏa thuận bằng tài liệu chứa các đặc tả kỹ thuật hoặc các tiêu chuẩn được sử dụng dưới vai trị là các luật, các hướng dẫn hoặc các định nghĩa về các chức năng chính. Các chuẩn được tạo ra để đảm bảo rằng các tài liệu, sản phẩm, qui trình và dịch vụ luơn đúng với mục tiêu ban đầu của nĩ. Chúng được chứng nhận bởi các tổ chức về tiêu chuẩn, chẳng hạn như ISO (International SV ne t.vn Chương 2. Các vấn đề tổng quan 17 Organization for Standardization = Tổ chức Quốc tế về Tiêu chuẩn hĩa) hoặc IEEE (Institute of Electrical and Electronical Engineers = Viện kỹ sư điện và điện tử Hoa Kỳ) và được bắt buộc phải sử dụng thơng qua các văn bản qui định. ECMA (European Computer Manufacturer's Assocation = Hiệp hội các nhà sản xuất máy tính châu Âu) hoặc W3C (World Wide Web Consortium = Tổ chức World Wide Web) cũng cơng bố các chuẩn cĩ khả năng trở thành chuẩn chung nhưng khơng bắt buộc các nhà sản xuất phải áp dụng chúng. Trong thế giới WWW, cĩ một sự thuận lợi trong việc cân bằng các ngơn ngữ soạn thảo văn bản. Người dùng cĩ thể viết một đoạn văn bản khơng chỉ bằng ngơn ngữ HTML mà cịn cĩ thể sử dụng các thành phần trong các ngơn ngữ hiện cĩ khác (chẳng hạn như “formatting”, “animating”, “interactivity”). Các thành phần trong các ngơn ngữ khác nhau được đặt chung với nhau nên cần phải “giao tiếp với nhau”. Việc giao tiếp này chỉ cĩ được thực hiện thơng qua một cú pháp chính xác được cung cấp bởi các chuẩn. 2.1.1.2 Chuẩn bất thành văn Đây là một tiêu chuẩn hiện đang được chấp nhận và sử dụng rộng rãi mặc dù khơng cĩ tổ chức tiêu chuẩn nào thơng báo chấp nhận nĩ. Vì các lý do kỹ thuật, các cơng ty phần mềm thường khơng chấp nhận tất cả các chuẩn bất thành văn của cơng ty khác. Mặt khác, vì các lý do thương mại, họ muốn thiết lập các chuẩn riêng của mình, cố gắng tạo ra một chuẩn bất thành văn mới. Flash là một chuẩn như vậy. Hậu quả của việc trên là chúng tạo ra một lượng khỗng lồ các chuẩn bất thành văn. Điều này cĩ nghĩa là các phần của các chuẩn khơng thể được áp dụng trong thực tế (chẳng hạn như HTML 4.0). Tiếp theo của việc này là rất nhiều các chuẩn riêng của các cơng ty tạo nên vấn đề khơng tương thích khi kết hợp các sản phẩm, hoặc khi sử dụng các biến mơi trường. Khơng phải chỉ cĩ các cơng ty lớn mới cĩ khả năng tạo ra các chuẩn mới. Thậm chí một nhĩm nghiên cứu cũng cĩ khả năng nghĩ ra và cơng bố một ý tưởng nào đĩ, miễn là nĩ cĩ được cộng đồng người dùng chấp nhận hay khơng. Một ví dụ SV ne t.vn Chương 2. Các vấn đề tổng quan 18 cho việc này là Tổ chức CERN (European Organization for Nuclear Research = Tổ chức Nghiên cứu về Hạt nhân của châu Âu) đã tạo ra trình duyệt đồ họa đầu tiên đang được sử dụng rộng rãi. Một ví dụ khác là Viện Fraunhofer (tại Đức) đã tạo ra chuẩn nén âm thanh MP3 rất thơng dụng hiện nay. Cũng giống như các chuẩn bất thành văn, nếu thực sự hữu ích, chúng sẽ được chấp nhận trong lĩnh vực thương mại. Sau đĩ sẽ được tinh chỉnh và thương mại hĩa. 2.1.2 Các định dạng của véc-tơ Các định dạng thơng dụng hiện nay trên Internet: • SVF • DWF • Flash • PGML • WebCGM • VML • PDF • SVG • VRML • HGML • DrawML Sau đây là mơ tả tổng quan từng định dạng trên: 2.1.2.1 SVF SVF (Simple Vector Format = Định dạng véc-tơ đơn giản) là một định dạng đồ họa véc-tơ hỗ trợ thơng tin về lớp và các siêu liên kết. Nĩ được SoftSource và NCSA phát triển nhằm cung cấp một định dạng véc-tơ hai chiều hữu ích trong thế giới World Wide Web. Ban đầu SVF được dự định sử dụng cho lĩnh vực trình bày web của các ảnh vẽ CAD. SVF cĩ một plugin, được giới thiệu vào năm 1996 để tham gia vào việc biểu diễn các véc-tơ trong thể giới World Wide Web. Sau năm 1997, nĩ khơng cịn được phát triển nữa. Các ấn bản tài liệu chỉ hỗ trợ cho các phiên bản thương mại. Hiện SV ne t.vn Chương 2. Các vấn đề tổng quan 19 nay, khơng cĩ bộ chuyển đổi giữa SVF với hai định dạng HPGL và DXF. Các chức năng của nĩ: phĩng to thu nhỏ khơng rung (mịn), cửa sổ phĩng to thu nhỏ, kéo, ẩn/hiện các lớp. Việc tương tác bị giới hạn nhiều hơn: các đường thẳng và bề mặt chỉ cĩ thể được gắn với các siêu liên kết với sự trợ giúp của các chương trình bên ngồi. Trong việc hiển thị, SVF khơng hỗ trợ phép khử răng cưa và khơng cĩ hoạt ảnh. SVF được thiết kế thành một định dạng đơn giản để mơ tả ảnh véc-tơ. Các đối tượng vẽ cơ bản gồm cĩ điểm, đường thẳng, đường trịn, cung, đường cong Bezier và văn bản. Các chức năng của định dạng này bao gồm: • các lớp (điều khiển sự xuất hiện của các đối tượng) • các siêu liên kết (cho phép người dùng nhấn vào một vùng của ảnh vẽ để thực thi một tác vụ) • các thơng báo (gửi các thơng điệp khi người dùng vượt qua một mức phĩng to hay thu nhỏ nhất định nào đĩ) • các phép tơ màu • khả năng cho phép khai báo lại các màu mặc định Tập tin SVF được chia thành 3 phần: phần giới thiệu (intro), phần đầu (header) và phần thân (main). Phần giới thiệu chỉ đơn giản là một chuỗi văn bản xác định tập tin hiện tại là một tập tin dạng SVF. Phần đầu (header) chứa thơng tin tổng quát dùng trong việc hiển thị và chỉnh sửa ảnh chẳng hạn như các lớp, các phạm vi và màu sắc. Phần thân mơ tả các ảnh và siêu liên kết sẽ được vẽ như thế nào. (xin vui lịng xem phụ lục A mục 1 để biết thêm về ba phần trên) Kiểu MIME (Multipurpose Internet Mail Extensions) Kiểu MIME cho các tập tin SVF là “vector/vnd.svf”. Phần mở rộng của tập tin theo quy ước là .SVF hoặc .svf. Cú pháp cho SVF phiên bản 1.1 SV ne t.vn Chương 2. Các vấn đề tổng quan 20 (Xin vui lịng xem phụ lục A mục 1 để biết thêm về phần này) (Nguồn: 2.1.2.2 DWF DWF (Drawing Web Format) là một định dạng tập tin mở của hãng Autodesk, được sử dụng kèm với plugin WHIP4 của AutoDesk. Đây là một trong một vài plugin sử dụng Javascript. Tập tin theo định dạng DWF được tạo từ các tập tin định dạng DWG. Các chức năng của định dạng DWF gồm cĩ: kéo (pan), phĩng to và thu nhỏ khơng bị giật hình (smooth zoom), cửa sổ phĩng to thu nhỏ (zoom window), phĩng to thu nhỏ trên một khung nhìn được định nghĩa trước, xếp lớp bên trong và bên ngồi, và hiển thị các siêu liên kết. Người dùng cĩ thể chèn ảnh và văn bản vào trong tập tin định dạng DWF. Khơng cĩ hoạt ảnh trong định dạng tập tin này. Ngồi ra cịn cĩ một phiên bản chạy trên Java applet. DWF được nhúng vào trong các sản phẩm của hãng Microsoft bằng cách sử dụng các ActiveX Control. Hai ActiveX Control cĩ thể kể đến là bộ hiển thị DWF tối ưu và bộ soạn thảo DWF dùng để xem và nhúng các tập tin DWF với đầy đủ chức năng vào trong các ứng dụng của Microsoft. Hai ActiveX Control này sẽ tăng cường khả năng chia sẻ và hiển thị các thiết kế bằng cách nhúng các tập tin DWF vào trong các tài liệu Internet Explorer, PowerPoint, Word, hoặc Excel kèm theo đầy đủ chức năng kéo, phĩng to thu nhỏ và các chức năng khác. Các tập tin DWF máy chủ (host DWF files) trên các web site cĩ nhiệm vụ chia sẻ các sơ đồ, bản đồ và các danh mục thành phần (component category) (trong các bản vẽ của các kiến trúc sư). Hãng Autodesk cung cấp bộ hiển thị DWF (DWF Viewer) và các hàm giao diện lập trình ứng dụng soạn thảo DWF (DWF Viewer và DWF Composer APIs). Các tài liệu hướng dẫn đi kèm với hai cơng cụ này sẽ giúp người dùng tùy biến bộ hiển thị DWF, bộ soạn thảo DWF bên trong các web site và các ứng dụng của hãng thứ ba. Các tài liệu này cung cấp chỉ dẫn cho các chức năng như định vị đến một SV ne t.vn Chương 2. Các vấn đề tổng quan 21 trang chỉ định, hoặc xem và điều khiển sự xuất hiện của các lớp, hoặc điều khiển khả năng ẩn, hiện thanh cơng cụ và các menu ngữ cảnh, cũng như tùy biến các ứng xử của bộ hiển thị. Người dùng cĩ thể tải bộ hiển thị DWF (DWF Viewer) và các giao diện lập trình ứng dụng soạn thảo DWF (DWF Viewer và DWF Composer APIs) từ trang địa chỉ (Nguồn: 2.1.2.3 Flash (cịn gọi là SWF) Định dạng tập tin Macromedia Flash (SWF) (đọc là “swiff”) được dùng để truyền tải đồ họa véc-tơ và hoạt ảnh qua mạng Internet. Định dạng tập tin SWF được thiết kế để trở thành một định dạng truyền tải hiệu quả, chứ khơng nhắm vào mục đích trao đổi hình ảnh giữa các bộ soạn thảo đồ họa. Hiện nay, Flash là định dạng véc-tơ tương tác được sử dụng rộng rãi nhất. Nĩ đĩng vai trị là một plugin Macromedia bên trong trình duyệt. Theo quan điểm của lĩnh vực bản đồ, đây là chuẩn cập nhật nhất cho việc hiển thị véc-tơ. Flash vẫn chưa trở thành chuẩn chính thức cho véc-tơ, và trong một thời gian dài tài liệu lập trình vẫn rất nghèo nàn. Nĩ là một định dạng nhị phân và độc quyền nên người sử dụng địi hỏi phải cĩ mã nguồn mở. Mặc dù vậy, do định dạng này được tạo ra để đáp ứng nhu cầu của cộng đồng và giới cơng nghiệp nên nĩ đã tăng trưởng rất nhanh. Trong đầu năm 2000, gần 70% trình duyệt đã hỗ trợ định dạng này mà khơng cần phải cài đặt phụ trợ (khơng cần dùng plugin). Flash khơng chỉ cĩ khả năng hiển thị đồ họa véc-tơ. Các đoạn phim và nhạc cĩ thể được tích hợp hoặc phát sinh một cách dễ dàng. Đồ họa của Flash cĩ thể được xuất ra Macromedia Freehand, Adobe Illustrator hoặc CorelDRAW, đồng thời cũng cĩ thể được chỉnh sửa bằng trình soạn thảo Macromedia Flash. Cĩ rất nhiều hàm để tạo hoạt ảnh, tích hợp các hiệu ứng đồ họa đặc biệt. Nhiều ứng dụng đẹp mắt đã chứng tỏ Flash là một cơng cụ web linh hoạt, chẳng hạn như cho phép tải dữ liệu lên mạng liên tục (một trang cĩ thể được hiển thị thậm chí trước khi tồn bộ tập tin SV ne t.vn Chương 2. Các vấn đề tổng quan 22 được tải về). Hiện nay Flash gặp rất nhiều vấn đề đối với bản đồ khi tích hợp dữ liệu bên ngồi và khi chỉnh sửa hoặc tạo các chức năng cần thiết riêng của người dùng. Các giao tiếp đang được phát triển thêm, nhưng chúng khơng bao giờ trở thành chuẩn quốc tế bởi vì Flash đang là sở hữu độc quyền của hãng Macromedia. Xin vui lịng xem phụ lục A mục 2 để biết thêm chi tiết về các phần sau đây: • Các mục tiêu thiết kế dành cho SWF • Cấu trúc của tập tin Flash • Tối ưu hĩa kích thước tập tin SWF • Nội dung bên trong một tập tin SWF 2.1.2.4 PGML Precision Graphics Markup Language (PGML) PGML (Precision Graphics Markup Language) là ngơn ngữ đánh dấu đồ họa chính xác. Đây là một tập các đặc tả định dạng véc-tơ độc quyền hai chiều dựa trên văn bản. Nĩ được thiết kế để đáp ứng cả hai nhu cầu đồ họa véc-tơ của người dùng thơng thường và nhu cầu về độ chính xác của các họa sĩ. Đặc tả này được hãng Adobe đưa ra từ nền tảng của của PostScript and PDF. Nĩ được phát sinh thơng qua sự chuyển đổi khơng liên quan đến PDF. Nĩ thỏa mãn các yêu cầu nghiêm ngặt và cung cấp các chức năng tương tác ở cấp cao. PGML cũng chứa những tính năng phụ trợ để thỏa mãn nhu cầu của các ứng dụng Web. Nhu cầu về độ chính xác của các họa sĩ được hiểu là các thiết kế đồ họa xuất hiện trên hệ thống của người dùng cuối phải cĩ đúng với phơng chữ, màu sắc, trình bày và các mối kết hợp mà họ muốn. Ảnh dạng PGML chứa một tập hợp gồm một hoặc nhiều đối tượng đồ họa (các đối tượng đường, đối tượng hình học, đối tượng hình ảnh và đối tượng văn bản). Sự xuất hiện trực quan của một đối tượng khi nĩ được vẽ sẽ được xác định từng phần bằng một dãy các tham số. Ví dụ, một đối tượng đường sẽ được tơ bằng một màu xác định, cịn một đối tượng văn bản sẽ được vẽ bằng cách sử dụng một SV ne t.vn Chương 2. Các vấn đề tổng quan 23 phơng xác định. Tập hợp các tham số như vậy được gọi là trạng thái đồ họa. PGML cung cấp các phương thức để chỉ định các đối tượng, và để xác định các tham số trong trạng thái đồ họa khi các đối tượng này được vẽ. Cấu trúc của một tập tin PGML khơng cĩ nội dung: 2.1.2.5 WebCGM CGM (Computer Graphics Metafile = Siêu tập tin Đồ họa máy tính) đã trở thành một chuẩn ISO (ISO/IEC 8632:1999) cho các định nghĩa véc-tơ và định nghĩa ảnh véc-tơ/ảnh quét từ năm 1987. CGM được thiết kế để đáp ứng nhu cầu của đồ họa véc-tơ hai chiều. CGM gây được sự chú ý mạnh trong việc minh họa tài liệu kỹ thuật và tài liệu điện tử tương tác, trực quan hĩa dữ liệu địa lý, và trong những lĩnh vực ứng dụng khác. Nĩ cịn được sử dụng rộng rãi trong lĩnh vực sản xuất ơ-tơ, máy bay và cơng nghiệp quốc phịng. Bản mơ tả CGM là một tập con của chuẩn ISO, và cũng là một tập các đặc tả hướng đến việc ứng dụng một cách hiệu quả tiêu chuẩn ISO vào việc biểu diễn nội dung đồ họa hai chiều bên trong tài liệu Web. WebCGM là một bản mơ tả cho cách ứng dụng hiệu quả CGM vào trong các tài liệu điện tử Web. WebCGM là một nỗ lực hợp tác giữa nghiệp đồn CGM với đội ngũ W3C, đồng thời cũng được hỗ trợ từ dự án European Commission Esprit. Nĩ đĩng vai trị như một sự thống nhất quan trọng giữa phần lớn người sử dụng và người bổ sung đặc tả cho CGM. Do đĩ nĩ hợp nhất các xu hướng đang rời rạc tại thời điểm đĩ bằng cách tận dụng CGM trong các ứng dụng tài liệu Web. Các yêu cầu thích ứng rõ ràng và khơng nhập nhằng của WebCGM sẽ mở rộng khả năng tương tác của các cài đặt. Do đĩ, điều này cĩ thể SV ne t.vn Chương 2. Các vấn đề tổng quan 24 tạo ra những cơng cụ kiểm định CGM sẵn cĩ, các bộ kiểm tra, và các dịch vụ kiểm tra chứng thực sản phẩm cho các ứng dụng WebCGM. WebCGM đã được đăng ký là một kiểu đa phương tiện (“image/cgm”) trên Internet và World Wide Web từ tháng 12 năm 1995. Kiểu MIME (Multipurpose Internet Mail Extensions) đúng cho WebCGM là: Mặc dù WebCGM là một định dạng tập tin nhị phân và khơng thể định kiểu, nĩ vẫn tuân theo các yêu cầu mà W3C đã cơng bố cho một định dạng đồ họa khả co ở nhưng nơi mà nĩ cĩ thể được áp dụng. Tiêu chuẩn thiết kế nội dung đồ họa của WebCGM là nhắm đến sự cân bằng giữa năng lực hiển thị đồ họa và tính đơn giản, khả năng bổ sung được các định dạng mới vào WebCGM. Một tập nhỏ nhưng mạnh gồm các thành phần siêu dữ liệu đã được chuẩn hĩa trong WebCGM. Do đĩ WebCGM hỗ trợ các chức năng như: siêu liên kết và định vị tài liệu, cấu trúc hĩa và phân lớp hình ảnh, tìm kiếm và truy vấn trên nội dung hình ảnh WebCGM. Các bộ hiển thị và soạn thảo cho CGM đều cĩ thể chạy được trên nhiều hệ nền khác nhau và đang được chỉnh sửa lại cho phù hợp với đặc tả WebCGM. 2.1.2.6 VML VML (Vector Markup Language) là ngơn ngữ đánh dấu đồ họa. Nĩ là một định dạng véc-tơ hai chiều dựa văn bản, đồng thời cũng là định dạng độc quyền của hãng Microsoft. Nĩ đã được tích hợp vào Internet Explorer, nhưng từ tháng 9/1998 nĩ khơng cịn được Microsoft tập trung phát triển nữa. PGML là khởi đầu của một cú pháp hấp dẫn, nhưng thiếu khả năng mở rộng. Trước khi SVG ra đời, PGML là một xu hướng đầy hứa hẹn, nhưng bị giới hạn sử dụng trong một hệ nền duy nhất là Windows. VML là một phần áp dụng của XML 1.0 (XML = Extensible Markup Language = ngơn ngữ đánh dấu cĩ thể mở rộng). Nĩ định nghĩa một định dạng cho image/cgm;Version=4;ProfileId=WebCGM SV ne t.vn Chương 2. Các vấn đề tổng quan 25 việc mã hĩa thơng tin véc-tơ với các đánh dấu phụ trợ, nhằm diễn tả thơng tin sẽ được hiển thị và chỉnh sửa như thế nào. Ngơn ngữ đánh dấu véc-tơ (VML = Vector Markup Language) cung cấp các đánh dấu thơng tin đồ họa véc-tơ giống như HTML cung cấp các đánh dấu thơng tin dạng văn bản. Nội dung VML mơ tả sự kết hợp của các đường được tạo từ các đường thẳng và đường cong cơ bản. Các đánh dấu cho biết ý nghĩa và thơng tin biểu diễn của các đường. VML được viết bằng cách sử dụng cú pháp của XML. Điều này giống như HTML được viết bằng cách sử dụng cú pháp của SGML (Standard Generalized Markup Language, [ISO 8879] = Ngơn ngữ đánh dấu được tổng quát hĩa theo tiêu chuẩn) - nghĩa là XML là một dạng được giới hạn lại từ SGML. VML sử dụng “Các trang định kiểu nạp chồng cấp 2” (Cascading Style Sheets, Level 2 = CSS2) theo cùng cách mà HTML xác định dạng trình bày của đồ họa véc- tơ được nĩ chứa. Luồng cơng việc liên quan đến việc xây dựng VML cĩ thể được so sánh với luồng cơng việc xây dựng HTML được thể hiện trong hình sau: Hình 2.1. Luồng cơng việc của VML và HTML SV ne t.vn Chương 2. Các vấn đề tổng quan 26 Điểm khác nhau chính giữa luồng cơng việc HTML và VML là ở một bước phần gần cuối trình bày kí tự so với biến đổi đường. Trong nhánh của HTML, luồng cơng việc phát sinh các vị trí và các thơng tin khác cho một chuỗi các mục chính (characters) mà sau đĩ chúng (tức các mục chính) sẽ được xây dựng bằng cách sử dụng chức năng cĩ sẵn của hệ điều hành. Trong nhánh của VML, luồng cơng việc phát sinh các vị trí và các thơng tin liên quan cho các đường véc-tơ và các đối tượng liên quan (chẳng hạn như ảnh bitmap) mà sau đĩ chúng (tức các đối tượng liên quan này) sẽ được xây dựng bằng cách sử dụng chức năng cĩ sẵn của hệ điều hành. Như vậy, sự khác nhau nằm ở chỗ HTML thì tạo ra các mục chính (characters), trong khi VML tạo ra các đường véc- tơ và các đối tượng liên quan. Luồng cơng việc chung trong hình trên là một phần khơng thể thiếu của VML. Hai yêu cầu của quá trình thiết kế là tích hợp VML với HTML sẵn cĩ, đồng thời bỏ qua việc yêu cầu một tác nhân người dùng (user agent) phải thực hiện lại cơng việc đã được hồn thành. Yêu cầu thứ hai trên được thực hiện bằng cách sử dụng các biểu diễn khác, hoặc các cài đặt khác của các chức năng HTML hay CSS sẵn cĩ. Giống như HTML, VML mơ tả các đối tượng mà chúng sẽ thường được chỉnh sửa trong tương lai. Trong trườg hợp của HTML, các đối tượng là các đoạn, các dạng hoặc các bảng. Cịn đối với VML, các đối tượng là các hình hoặc các tập hợp các hình đã được gom nhĩm. VML khơng yêu cầu một hướng tiếp cận đặc thù nào để chỉnh sửa – nĩ cung cấp một số lượng đa dạng các trình soạn thảo. Lượng dữ liệu đồ họa khỗng lồ buộc VML phải chú ý đến một trình soạn thảo đã ghi lại nhưng thơng tin ngữ nghĩa cĩ liên quan đến mơ tả VML. VML luơn đảm bảo rằng các trình soạn thảo cĩ thể nhận diện và quản lý chính xác dữ liệu của mỗi đối tượng mà nĩ quản lý (thậm chí cho dù chúng khơng phải lúc nào cũng hiểu hết tồn bộ dữ liệu này) SV ne t.vn Chương 2. Các vấn đề tổng quan 27 Một đoạn mã VML: Hình ảnh xuất hiện trên trình duyệt: Hình 2.2 Minh họa VML 2.1.2.7 PDF PDF (Portable Document Format = Định dạng tài liệu dễ mang chuyển) là một định dạng tập tin được sử dụng để biểu diễn một tài liệu theo một cách độc lập với phần mềm ứng dụng, phần cứng và hệ điều hành được sử dụng để tạo ra nĩ. Hiện nay, PDF đã trở thành định dạng được hỗ trợ sẵn trong of Adobe Illustrator 9. Mục đích thiết kế khơng nhắm vào WWW, nhưng nĩ đã được sử dụng với sự trợ giúp của plugin. Bộ hiển thị của nĩ, một sản phẩm miễn phí của Adobe, hoạt động độc lập với trình duyệt. Các tài liệu cĩ thể được bảo vệ bởi mật khẩu khỏi việc đọc, in ấn và sao chép. Định dạng nhị phân khơng cho phép các máy tìm kiếm WWW rà sốt thơng tin. Với định dạng văn bản thì điều này cĩ thể thực hiện được. Tuy nhiên nĩ khơng phải là giải pháp hay vì kích thước lớn của dữ liệu. <v:shape style='top: 0; left: 0; width: 250; height: 250' stroke="true" strokecolor="red" strokeweight="2" fill="true" fillcolor="green" coordorigin="0 0" coordsize="175 175"> <v:path v="m 8,65 l 72,65,92,11,112,65,174,65,122,100,142,155,92,12 1,42,155,60,100 Đoạn mơ tả đường bao ngồi của ngơi SV ne t.vn Chương 2. Các vấn đề tổng quan 28 PDF chính là một “mơ hình ý niệm ngơn ngữ PostScript” (xin vui lịng xem phụ lục để biết thêm chi tiết) Cấu trúc của một tập tin PDF Một tập tin PDF chứa một tài liệu PDF và các thơng tin hỗ trợ khác. Một tài liệu PDF chứa một hoặc nhiều trang. Mỗi trang trong tài liệu cĩ thể chứa bất kỳ dạng kết hợp nào của văn bản, đồ họa và hình trong một định dạng độc lập thiết bị và độ phân giải. Đây chính là mơ tả trang. Một tài liệu PDF cũng cĩ thể chứa các thơng tin mà chỉ cĩ thể cĩ trong một trang điện tử, chẳng hạn như các siêu liên kết. Ngồi ra, một tập tin PDF cĩ thể chứa phiên bản của đặc tả PDF được sử dụng trong tập tin và thơng tin về vị trí của các cấu trúc quan trong trong tập tin. PDF chính là một mơ hình ý niệm ngơn ngữ PostScript (xin vui lịng xem phụ lục để biết thêm chi tiết). Ưu điểm của PDF • Là mẫu mực biểu diễn hình ảnh của Adobe • Dễ mang chuyển • Nén/ Mã hĩa • Độc lập phơng chữ • Truy cập ngẫu nhiên • Cập nhật tăng dần • Khả năng mở rộng SV ne t.vn Chương 2. Các vấn đề tổng quan 29 Các thành phần của PDF Hình 2.3. Các thành phần của PDF Thành phần đầu tiên (Objects) là tập hợp các kiểu đối tượng cơ bản được PDF sử dụng để minh họa các đối tượng. Các kiểu này, trừ một ít ngoại lệ, phụ thuộc vào các kiểu dữ liệu được sử dụng trong ngơn ngữ PostScript. Thành phần thứ hai (File structure) là cấu trúc tập tin PDF. Cấu trúc tập tin chỉ định các đối tượng sẽ được lưu trữ trong một tập tin PDF, cách truy cập và cập nhật chúng như thế nào. Cấu trúc này độc lập với ngữ nghĩa của các đối tượng. Thành phần thứ ba (Document structure) là cấu trúc PDF. Cấu trúc này tài liệu chỉ định các kiểu đối tượng cơ bản được sử dụng để biểu diễn các thành phần của một tài liệu PDF: các trang, các chú thích, các siêu liên kết, các phơng chữ. Thành phần thứ tư (và cũng là thành phần cuối cùng) (Page Description) là mơ tả trang PDF. Một mơ tả trang PDF, khi là thành phần của một đối tượng khác, cĩ thể được diễn giải độc lập với các thành phần khác. Một mơ tả trang chỉ cĩ tương tác bị giới hạn với các phần khác của một tài liệu PDF. Điều này sẽ đơn giản hĩa việc chuyển đổi nĩ sang định dạng PostScript. SV ne t.vn Chương 2. Các vấn đề tổng quan 30 2.1.2.8 SVG SVG (Scalable Vector Graphics) là một định dạng mới và mở hồn tồn được Tổ chức W3C (World Wide Web Consortium) khuyến khích sử dụng và phát triển. SVG cĩ tất cả các ưu điểm của Flash (một chuẩn khơng chính thức hiện nay) cộng thêm các tính năng sau: các phơng chữ nhúng, ngơn ngữ đánh dấu cĩ khả năng mở rộng (XML), các trang định kiểu (CSS), khả năng tương tác và hoạt ảnh. Với sự hỗ trợ của DOM (Document Object Model), SVG hồn tồn tương thích với HTML. SVG là một chuẩn độc lập nhà sản xuất và miễn phí, được phát triển theo quy trình của W3C. Nĩ được hỗ trợ mạnh từ các ngành cơng nghiệp khác nhau. Đặc tả SVG được tạo ra từ sự hợp tác của các hãng sản xuất tầm cỡ như include Adobe, Agfa, Apple, Canon, Corel, Ericsson, HP, IBM, Kodak, Macromedia, Microsoft, Nokia, Sharp và Sun Microsystems. Các bộ hiển thị SVG được phân phối đến hơn 100 triệu máy tính để bàn (desktop). Bên cạnh đĩ, nĩ được hỗ trợ từ rất nhiều các cơng cụ soạn thảo. SVG là một hệ nền cho đồ họa hai chiều. Nĩ gồm hai phần: một định dạng tập tin dựa trên XML và một giao diện lập trình API cho các ứng dụng đồ họa. Các chức năng chính gồm cĩ các vật thể hình học, văn bản và đồ họa ảnh quét được nhúng, với nhiều kiểu vẽ khác nhau. Nĩ hỗ trợ các ngơn ngữ như ECMAScript và cĩ các hỗ trợ thơng minh cho hoạt ảnh. SVG được sử dụng trong nhiều lĩnh vực kinh doanh, bao gồm đồ họa Web, hoạt ảnh, các giao diện người dùng, trao đổi đồ họa, in ấn, ứng dụng cho thiết bị di động và thiết kế chất lượng cao. SVG được xây dựng trên nhiều chuẩn thành cơng khác chẳng hạn như: • XML (đồ họa SVG là dạng dựa trên văn bản và do đĩ rất dễ tạo) • JPEG và PNG cho các định dạng ảnh • DOM cho phần viết kịch bản (script) và tương tác • SMIL cho hoạt ảnh • CSS cho việc định kiểu SV ne t.vn Chương 2. Các vấn đề tổng quan 31 SVG cĩ khả năng tương tác. W3C cĩ nhiệm vụ đưa ra một bộ kiểm tra và các kết quả cài đặt để đảm bảo tính tương thích. Các ứng dụng của SVG trong cơng nghiệp • Thiết bị di động Trong năm 2001, ngành cơng nghiệp điện thoại di động đã chọn SVG là cơ sở cho hệ nền đồ họa của mình.Nhiều cơng ty hàng đầu đã tham gia vào nỗ lực phát triển SVG để tạo ra tập tin đặc tả hiện trang cho bộ SVG Tiny và bộ SVG Basic. SVG Tiny và SVG Basic là hai tập con của tập đặc tả SVG. Hai bộ này được gọi chung là SVG Mobile, được tạo ra nhằm hướng đến các thiết bị cĩ tài nguyên hạn chế chẳng hạn như các thiết bị cầm tay di động và các PDA (Personal Digital Assistant) (Thiết bị hỗ trợ kỹ thuật số cho cá nhân). Đặc tả SVG Mobile được 3GPP chọn làm định dạng đồ họa bắt buộc cho các điện thoại di động thế hệ kế tiếp và cho việc gửi tin nhắn đa phương tiện. Hiện nay, các thiết bị cầm tay cho phép dùng SVG đã được bán rộng rãi trên thị trường. SVG Mobile được sử dụng chính cho việc gửi tin nhắn trong các ứng dụng như thiệp mừng, sơ đồ và các hoạt ảnh (ảnh chuyển động). • Ấn bản Sự kết hợp giữa các chức năng đồ họa, các hỗ trợ văn bản mang ngữ nghĩa và tính độc lập độ phân giải trong SVG đã tạo ra một định dạng thích hợp cho việc in ấn. Các cơng ty sản xuất phần cứng in ấn hàng đầu hiện nay đang ra sức phát triển đặc tả SVG Print. Đây là một phiên bản mới của SVG được mơ tả thích hợp cho cơng việc kết xuất tài liệu lên giấy tờ. SVG Print được sử dụng trong các trường họp sau: o Một ngơn ngữ mơ tả trang dựa trên XML tương tự như Postscript và PDF o Một định dạng lưu trữ ở mức hình thái cuối cùng o Kỹ thuật in dữ liệu biến đổi, trong đĩ thơng tin vào được cung cấp thơng qua một cơ sở dữ liệu, và thơng tin ra được hiển thị bằng cách dùng một mẫu SV ne t.vn Chương 2. Các vấn đề tổng quan 32 SVG đồ họa. SVG cung cấp hiển thị dạng cứng (hardcopy) (chẳng hạn như giấy tờ) và hiển thị trực tuyến đồng nhất. Vì SVG Print dựa trên nền tảng XML nên nĩ phù hợp một cách hồn hảo với các luồng cơng việc XML hiện cĩ. Điều này cĩ nghĩa là, nếu các chương trình cĩ ống dẫn xử lý dữ liệu hỗ trợ XML thì sẽ cĩ thể chèn các khả năng của SVG Print một cách dễ dàng vào luồng cơng việc ấn bản của chúng. Việc này cho phép phát sinh các tài liệu động. SVG Print cũng tích hợp các định dạng mơ tả cơng việc chúng chẳng hạn như PODi’s PPML và CIP4’s JDF. • Các ứng dụng Web Các ứng dụng dựa trên nền đang tăng trưởng rất nhanh và phỗ biến. Các nhà phát triển thường bị giới hạn bởi vấn đề khơng tương thích trình duyệt và thiếu các chức năng. Với sự hỗ trợ mạnh mẽ của ngơn ngữ viết kịch bản (script) và hỗ trợ bắt sự kiện, SVG cĩ thể được sử dụng dưới dạng một hệ nền mà các ứng dụng giàu hình ảnh và các giao tiếp người dùng sẽ được xây dựng trên đĩ. Với SVG, nhà phát triển ứng dụng sẽ quen với việc sử dụng một tập hợp các chuẩn mở. Chúng khơng bị ràng buộc vào một cài đặt chuyên biệt nào, một nhà sản xuất nào và một cơng cụ soạn thảo nào. SVG thích hợp cho thị trường thơng dụng chuyên thiết kế đồ họa trong lĩnh vực hàng khơng, vận tải, xe hơi và truyền thơng. Khả năng mở rộng của XML cho phép các sơ đồ SVG chứa được các siêu dữ liệu nhúng dưới nhiều định dạng khác nhau mà khơng ảnh hưởng đến việc minh họa. Ví dụ, một chương trình CAD cĩ thể xuất kết quả ra định dạng SVG để hiển thị trực tuyếm, nhưng đồng thời cũng nhúng dữ liệu vào bên trong tập tin đĩ để cho phép người dùng chỉnh sửa nhanh chĩng nội dung của tập tin đĩ. Cũng như các định dạng khác, hiện nay SVG là định dạng được rất nhiều cơng cụ hỗ trợ nhập và xuất dữ liệu. Do đĩ nĩ cĩ thể được sử dụng như là một định dạng trao đổi dữ liệu giữa các ứng dụng. SV ne t.vn Chương 2. Các vấn đề tổng quan 33 • GIS và bản đồ GIS (Geographic Information Systems) cĩ các yêu cầu rất rõ ràng: các tính năng đồ họa phức tạp, hỗ trợ nội dung ảnh quét và véc-tơ và khả năng quản lý một lượng dữ liệu lớn. SVG hồn tồn thích hợp cho thị trường này và nhiều hệ thống GIS đã hỗ trợ kết xuất ra SVG. Giống như các mục tiêu thiết kế vừa được đề cập ở trên, khả năng mở rộng SVG và dữ liệu nhúng đặc biệt hữu dụng đối với cộng đồng thực hiện bản đồ. Ví dụ, các thành phần đồ họa cĩ thể được xem như các đối tượng cĩ sẵn (chẳng hạn như một hồ nước) trong SVG. Điều này cho phép các ứng dụng giao tiếp với các đối tượng thơng qua ngơn ngữ hình học. SVG là một phần bổ sung hồn hảo cho định dạng GML của tổ chức OpenGIS. GML, cũng dựa trên XML, mơ tả các thành phần đồ họa chẳng hạn như các con sơng và các con đường. Dữ liệu theo định dạng GML cĩ thể được chuyển đổi sang dữ liệu theo định dạng SVG bằng cách sử dụng ống dẫn cho việc hiển thị trực tuyến. • Các hệ thống nhúng Phần lớn các hệ thống nhúng đều cĩ các giới hạn khắt khe về tài nguyên, chẳng hạn như màn hình hiển thị nhỏ hơn, bộ nhớ cĩ dung lượng hạn chế, và khả năng tính tốn bị cắt giảm so với các hệ thống máy tính để bàn thường thấy. Đặc tả SVG Mobile được thiết kế cho các thiết bị như hệ thống nhúng, đồng thời cho phép phát triển các giao diện người dùng đồ họa cho các hệ thống này. Trong các hỗ trợ cho các sự kiện và viết kịch bản, các thiết bị cĩ thể sử dụng SVG dạng nhỏ để điều khiển và quản lý. Một trong các thiết bị như vậy là một hệ thống điều khiển máy cơng nghiệp. Cấu trúc tài liệu SVG cơ bản: 1 2 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" 3 " SV ne t.vn Chương 2. Các vấn đề tổng quan 34 20010904/DTD/svg10.dtd"> 4 <svg xmlns="" 5 Xmlns:xlink=""> 6 7 Dịng 1 : là một khai báo XML để chỉ định đây là một tài liệu XML thỏa quy ước của bản đặc tả XML1.0. Dịng 2,3: là một khai báo kiểu tài liệu XML để chỉ định văn phạm cho tập tin này. Văn phạm SVG được định nghĩa trong SVG 1.0 DTD. Dịng 4: là thành phần gốc của tài liệu XML. Chúng ta tạo một thành phần ‘svg’ vì khai báo kiểu tài liệu chỉ định thành phần gốc bắt buộc phải là một thẻ ‘svg’. Thành phần này cũng chỉ định khơng gian tên XML mặc định cho tài liệu này. Thành phần ‘svg’ cĩ nhiều thuộc tính ảnh hưởng cho cả tài liệu SVG. Dịng 5: dịng này chỉ định khơng gian tên liên kết ngồi được sử dụng để tham chiếu ngoại các hình ảnh và các thành phần trong một tài liệu SVG. Dịng 6: Nội dung của tài liệu SVG Dịng 7: Đĩng thành phần ‘svg’ để hồn chỉnh tài liệu SVG đúng hình thức. (Nguồn: SV ne t.vn Chương 2. Các vấn đề tổng quan 35 Một ví dụ về SVG: Ví dụ đơn giản sau vẽ chữ dọc theo một đường cong Kết quả hiển thị trên trình duyệt: Hình 2.4. Minh họa đơn giản về SVG <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ""> <svg width="12cm" height="3.6cm" viewBox="0 0 1000 300" version="1.1" xmlns="" xmlns:xlink=""> <path id="MyPath" d="M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100" /> Example toap01 - simple text on a path <use xlink:href="#MyPath" fill="none" stroke="red" /> <text font-family="Verdana" font-size="42.5" fill="blue" > We go up, then we go down, then up again <rect x="1" y="1" width="998" height="298" fill="none" stroke="blue" stroke-width="2" /> SV ne t.vn Chương 2. Các vấn đề tổng quan 36 2.1.2.9 VRML VRML (Virtual Reality Modeling Language) là ngơn ngữ mơ hình hĩa thực tại ảo, một định dạng tập tin được sử dụng trong việc mơ tả các thế giới và các đối tượng đồ họa tương tác ba chiều. VRML được thiết kế để dùng trong mơi trường Internet, Intranet và các hệ thống máy khách cục bộ (local client). VRML cịn được dự trù trở thành một chuẩn trao đổi đa năng cho đồ họa ba chiều tích hợp và truyền thơng đa phương tiện. VRML cĩ thể được sử dụng trong rất nhiều lĩnh vực ứng dụng chẳng hạn như trực quan hĩa các khái niệm khoa học và kỹ thuật, trình diễn đa phương tiện, giải trí và giáo dục, hỗ trợ web và chia sẻ các thế giới ảo. VRML được thiết kế nhằm đáp ứng các yêu cầu sau: • Là một chuẩn chính thống: cho phép phát triển các chương trình máy tính cĩ khả năng tạo, chỉnh sửa và bảo trì các tập tin VRML. Bên cạnh đĩ, người dùng cĩ thể viết các chương trình dịch tự động cho phép chuyển đổi các định dạng tập tin ba chiều thơng dụng sang các tập tin định dạng VRML. • Cĩ khả năng kết hợp: Hỗ trợ khả năng sử dụng và kết hợp các đối tượng ba chiều động bên trong một tổng thể và do đĩ cho phép tái sử dụng. • Cĩ thể mở rộng: cung cấp khả năng chèn thêm các kiểu đối tượng mới chưa được định nghĩa sẵn trong VRML. • Cĩ nhiều khả năng cài đặt: VRML cĩ thể được cài đặt trên một lượng lớn các hệ thống máy tính. • Hiệu suất cao: nhấn mạnh hiệu suất khả co, tương tác trên một lượng lớn các hệ nền tính tốn. • Tính khả co: cho phép tạo ra các thế giới ba chiều động cĩ độ lớn tùy ý. Vai trị của VRML VRML cĩ khả năng biểu thị các đối tượng đa phương tiện, các đối tượng ba chiều cĩ hoạt ảnh, và các đối tượng ba chiều tĩnh bằng cách sử dụng các siêu liên kết đến các phương tiện khác như văn bản, âm thanh, phim và hình ảnh. Các trình SV ne t.vn Chương 2. Các vấn đề tổng quan 37 duyệt hỗ trợ VRML cũng như các cơng cụ chính thống để tạo ra các tập tin VRML cĩ thể chạy trên nhiều hệ nền khác nhau. VRML cung cấp một mơ hình cĩ khả năng mở rộng cho phép người dùng định nghĩa thêm các đối tượng ba chiều động mới. Điều này cho phép các cộng đồng lập trình viên phát triển các mở rộng cĩ khả năng tương tác chuẩn cơ bản, cĩ các ánh xạ giữa các đối tượng VRML và các chức năng giao diện lập trình ứng dụng ba chiều (3D APIs). VRML và World Wide Web Phần mở rộng của tập tin VRML là .wrl (viết tắt từ “world”). Kiểu MIME chính thức cho tập tin VRML được định nghĩa như sau: “model/vrml” trong đĩ kiểu MIME chính cho các mơ tả dữ liệu 3D là “model”, kiểu MIME phụ cho các tài liệu VRML là “vrml”. (Ghi chú: MIME = Multipurpose Internet Mail Extensions) Trong trường hợp cần tạo khả năng tương thích với các phiên bản trước của VRML, kiểu MIME sau đây sẽ được dùng: “x-world/x-vrml” trong đĩ kiểu MIME chính là “x-world”, kiểu MIME phụ cho các tài liệu VRML là “x-vrml”. Một ví dụ về tập tin VRML: (Xin vui lịng xem ví dụ này ở phụ lục A mục 3) 2.1.2.10 HGML HGML (Hyper Graphics Markup Language) là ngơn ngữ đánh dấu siêu đồ họa, được xem là một định dạng nhỏ chuyên dùng cho băng thơng hẹp. HGML cho phép người dùng tải về các tài liệu giàu hình ảnh trên một đường truyền cĩ băng thơng hẹp. Hệ thống này sử dụng các thẻ để triệu gọi các hình ảnh SV ne t.vn Chương 2. Các vấn đề tổng quan 38 đồ họa được định nghĩa sẵn bên trong tập tin mà người dùng tải về. Nĩ được thiết kế dựa trên các ý tưởng chính như sau: • Các khuyến cáo của W3C HTML. • Đặc tả đơn giản. • Độc lập thiết bị và mạng. HGML đặc biệt thích hợp cho mạng điện thoại di động, truyền thơng khơng dây - ở những mơi trường mà băng thơng cho phép là rất nhỏ. Đặc tả HGML cĩ các chức năng chính được phân làm ba phần như sau: • Các đối tượng đồ họa cơ bản • Chủ đề / sử dụng lại hình ảnh sẵn cĩ • Chỉnh sửa ảnh (xin vui lịng xem phụ lục A mục 4 để biết thêm chi tiết về ba phần này) (Nguồn: 2.1.2.11 DrawML DrawML là một ứng dụng của XML 1.0. DrawML là một ngơn ngữ đồ họa khả co được thiết kế để làm cho việc tạo các ảnh kỹ thuật đơn giản trở nên dễ dàng. Xa hơn nữa (và quan trọng nhất) là DrawML tập trung vào qui trình lưu trữ và tinh chỉnh một ảnh vẽ. Một ảnh vẽ cĩ thể được cập nhật dễ dàng như tài liệu chứa nĩ. DrawML dựa trên các yêu cầu và tiêu chuẩn sau: • Khi một cấu trúc được thêm vào ảnh vẽ, người dùng cĩ thể định nghĩa các thuật tốn để quản lý việc định vị và thay đổi kích thước của các thành phần trực quan một cách tự động. • Ảnh vẽ thơng thường khơng phải là dạng WYSIWYG Lý do DrawML tập trung vào việc bảo trì chính là tính quan trọng của mạng Intranet ngày càng tăng. Cho đến nay, cơng nghệ Internet đã được sử dụng phần lớn trong việc ấn bản. Những người làm việc bên trong một mạng Intranet mong muốn tạo và thay đổi các tài liệu một cách nhanh chĩng. SV ne t.vn Chương 2. Các vấn đề tổng quan 39 Xin vui lịng xem phụ lục A mục 5 để biết thêm chi tiết về các mục sau: • Các thành phần trong ngơn ngữ DrawML: • Các khái niệm trong DrawML (Nguồn: 2.1.3 Mơ hình DOM Việc tương tác yêu cầu các thành phần riêng biệt của một trang web (gồm cả các đối tượng véc-tơ được hiển thị) phải cĩ khả năng phản hồi. Khơng cĩ hướng tiếp cận độc quyền nào ở trên đáp ứng được ý tưởng này. Để liên lạc với các đối tượng riêng biệt, cần phải cĩ một cây phân cấp đối tượng rõ ràng (cây phân cấp được mơ tả trong hình ở dưới). Trong cây phân cấp này, thành phần cao nhất (uppermost member) là trang web. Tất cả các đối tượng bên trong một trang web cho trước cĩ thể được liên lạc đến thơng qua cấu trúc cây này. Bên trong một trang web thơng thường, các sơ đồ phân cấp sau cĩ thể được áp dụng (sơ đồ này đã được đơn giản hĩa): Hình 2.5. Một ví dụ đơn giản về cây phân cấp DOM SV ne t.vn Chương 2. Các vấn đề tổng quan 40 Cây phân cấp đối tượng này được gọi là Mơ hình Đối tượng Tài liệu (DOM). Nĩ biểu diễn một phương pháp hiệu quả cho việc triệu gọi các thành phần của một trang web. Trong trường hợp của bản đồ, ý nghĩa của cây phân cấp cũng tương tự như vậy. Do đĩ một chuẩn véc-tơ mới cần phải tuân theo DOM. Ở mức ý niệm, các plugin cĩ thể được tích hợp vào trong DOM. Tuy nhiên, cây phân cấp nằm dưới một plugin thường thích hợp cho các chức năng tuyệt vời của plugin, và khơng được tạo ra để làm thuận tiện việc giao tiếp giữa plugin với tồn bộ mơi trường. Điểm này cực kỳ quan trọng cho việc tương tác và thường gây ra xung đột. 2.1.4 Ngơn ngữ XML Ý tưởng ban đầu ngơn ngữ XML chính là ngơn ngữ HTML (Hypertext Markup Language), một ngơn ngữ dùng để phân chia nội dung, cấu trúc và định dạng một cách chặt chẽ cho các phương tiện kết xuất khác nhau. CSS (Cascading Style Sheets) trong trường hợp này cĩ chức năng là trung tâm trình bày của các thành phần trong trang web, cũng giống như việc định vị chínhh xác một ảnh điểm. Việc truy cập thơng qua DOM được đảm bảo bởi một giao tiếp và cú pháp được chuẩn hĩa. XML là một chuẩn đa năng cho các tài liệu web cĩ cấu trúc, cho sự độc lập tối đa về mạng và hệ nền. Khi sử dụng XML, các tài liệu hồn tồn thích hợp cho việc trao đổi dữ liệu và cho các mọi loại ứng dụng. XML cĩ khả năng mở rộng nên đã trở thành nền tảng của các hình thức ngơn ngữ cao hơn như SMIL (đa phương tiện), SVG (đồ họa vec-tơ), MathML (các định dạng và ký hiệu tốn học đặc biệt), X3D (đồ họa 3 chiều), XHTML (hậu duệ của HTML), XFORM (phát sinh mẫu), GML (địa lý). Các mở rộng từ các tổ chức chuyên nghiệp hoặc thậm chí các cá nhân cĩ thể đem lại hiệu quả, miễn là DTD (Document Type Difinition = Định nghĩa kiểu tài liệu) được thêm vào. Một vài mở rộng được sử dụng đang được W3C chuyên nghiệp hĩa, chuẩn hĩa và quản lý. Chú thích: • SMIL = Synchronized Multimedia Language = Ngơn ngữ đa phương tiện đồng bộ hĩa SV ne t.vn Chương 2. Các vấn đề tổng quan 41 • SVG : Scalable Vector Graphics = Đồ họa véc-tơ khả co • MathML : Mathematical Markup Language = Ngơn ngữ đánh dấu tốn học Hình 2.6. Kiến trúc và hình thái XML Dữ liệu thực luơn sẵn sàng trong một tập tin XML, một tập tin được tạo thành từ các thực thể (được nhận biết thơng qua các thẻ “tag”) và các thuộc tính. Việc kiểm tra cấu trúc và cú pháp được thực hiện trong DTD (Document Type Difinition = Định nghĩa kiểu tài liệu). DTD định nghĩa các kiểu dữ liệu, các khơng gian tên (các thẻ định danh tác giả), cây phân cấp và phần giao giữa các ngơn ngữ. Các thành phần tùy chọn và các thuộc tính cĩ thể cĩ của chúng được định nghĩa ngang cấp nhau. Các DTD được các bộ phân tích (parser) sử dụng trong khi đĩ vẫn khả dụng trong tất cả các ngơn ngữ lập trình, cũng như trong các phiên bản mới của trình duyệt. Mục tiêu của DTD là kiểm tra các tập tin DTD và phát hiện lỗi. Các cơng nghệ liên quan XML gồm cĩ: • XSL (XstyleSheets): hậu duệ của CSS, cĩ khả năng định dạng nội dung • XLL (XlinkingLanguage): cĩ khả năng liên kết các thành phần và phương tiên lại với nhau • XQL (XqueryLanguage): cho phép truy vấn cĩ cấu trúc dữ liệu XML Danh sách này cĩ thể được mở rộng trong tương lai. Điều này cĩ nghĩa là các véc-tơ nên được biểu diễn theo phương thức tương thích với XML. SV ne t.vn Chương 2. Các vấn đề tổng quan 42 2.1.5 Tổng quan về GIS 2.1.5.1 Khái niệm GIS? GIS(Geographic information system-hệ thống thơng tin địa lý) là một hệ thống dữ liệu hỗ trợ con người quản lý, khai thác và sử dụng một cách hiệu quả các thơng tin địa lý. 2.1.5.2 Các thành phần của GIS Một hệ thống GIS gồm 4 thành phần cơ bản sau: - Phần cứng (hardware): máy tính được sử dụng để thực hiện các tác vụ của GIS. - Phần mềm (software): các phần mềm cung cấp các chức năng và cơng cụ về GIS. - Dữ liệu địa lý (geographic data): đây là thành phần quan trọng nhất, lưu trữ thơng tin địa lý. 2.1.5.3 - Chuyên viên (personnel): nhân viên, chuyên viên phân tích, thiết kế, phát triển, bảo trì hệ thống thơng tin dữ liệu GIS 2.1.5.4 Chức năng của GIS GIS được thiết kế nhằm cho phép người sử dụng phân tích, truy vấn dữ liệu khơng gian. GIS tăng cường khả năng liên kết dữ liệu, tài nguyên với nhau. GIS cịn hỗ trợ giúp con người đưa ra các giải pháp tốt hơn trong các quá trình khảo sát địa lý, điều tra, giải quyết tranh chấp lãnh thỗ,… một cách trực quan và cĩ hiệu quả. GIS cho phép số hĩa lưu trữ dữ liệu bản đồ hết sức dễ dàng và linh hoạt, cho phép hiệu chỉnh dữ liệu một cách dễ dàng. Đồng thời từ đĩ cĩ thể sao chép và in ấn bản đồ. 2.1.5.5 Các ứng dụng cơ bản trong thực tế của GIS Với mơ hình quản lý dữ liệu khơng gian, GIS đĩng vai trị hết sức quan trọng trong rất nhiều lĩnh vực như: mơi trường, thủy văn, y tế, giao thơng, nơng nghiệp,… SV ne t.vn Chương 2. Các vấn đề tổng quan 43 GIS hỗ trợ thu thập thơng tin về tự nhiên như các tiến trình xĩa mịn đất, bảo tồn sinh thái, thay đổi khí hậu, thiên tai, lũ lụt, quản lý sủ dụng đất, nghiên cứu về đất trồng trọt, quản lý tưới tiêu, các vùng quy hoạch đơ thị, quản lý dân cư, phân tích địa bàn tội phạm, nghiên cứu dịch bệnh,… Một khả năng thiết thực và cĩ sức thu hút rất lớn hiện nay đĩ là ứng dụng của GIS trong giao thơng. Hỗ trợ định vị, di chuyển, xác định lộ trình trong vận tải hàng hải, đường bộ,… giải quyết ách tắc giao thơng. GIS gắn liền với hệ thống định vị tồn cầu GPS (Global Position System) - (đây là một cơng nghệ đang được sử dụng rộng rãi ở Mỹ và Canada) GIS cịn cĩ ý nghĩa rất lớn trong chính trị, quân sự. SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 44 Chương 3 Cấu trúc định dạng tập tin SVG 3.1 Định nghĩa SVG là viết tắt của Scalable Vector Graphics (tạm dịch là đồ họa véc-tơ khả co). SVG là ngơn ngữ dành cho nội dung giàu dồ hoạ. SVG là ngơn ngữ mơ tả đồ họa véc-tơ hai chiều bằng ngơn ngữ XML (eXtensible Markup Languge- ngơn ngữ ngữ cĩ khả năng mở rộng). SVG cho phép ba loại đối tượng đồ họa: các hình học đồ họa véc-tơ (ví dụ, các đường thẳng và đường cong), các ảnh đồ họa và chữ. Các đối tượng đồ họa cĩ thể được nhĩm lại, được định kiểu, biến đối và được kết hợp từ các đối tượng được xây dựng trước đĩ .Tập tính năng của SVG bao gồm các phép biến đổi, các đường xén, mặt nạ trong suốt, các hiệu ứng lọc và các đối tượng mẫu. Ảnh đồ họa SVG khả tương tác và khả động. Các ảnh động cĩ thể được định nghĩa và kích hoạt bằng cách khai báo các thành phần ảnh động nhúng trực tiếp trong nội dung SVG hoặc bằng cách viết kịch bản (script). Các chương trình ứng dụng phức tạp với SVG cĩ thể được thực hiện dựa vào ngơn ngữ viết kịch bản (script) kèm theo để truy cập vào tất các thành phần trong mơ hình đối tượng tài liệu SVG (SVG DOM – SVG Document Object Model). Một tập đầy đủ các bộ quản lý sự kiện (event handlers) chẳn hạn onmouseover và onclick được gắn vào các đối tượng đồ họa để người dùng cĩ thể tương tác với các đối tượng đồ hoạ này. Do khả năng tương thích của nĩ với các chuẩn Web nên các tính năng như viết kịch bản cĩ thể được làm đồng thời ngay trên XHTML và SVG trong cùng một trong Web. 3.2 Sự tương thích với các chuẩn khác SVG tương thích với các chuẩn và các đặc tả W3C khác. Vì tương thích và thoả mãn với các chuẩn khác nên SVG trở nên mạnh mẽ và dễ dàng cho người dùng học hỏi và tích hợp SVG vào các trang Web của họ SVG tương thích với các kết quả khác của W3C là vì: SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 45 • SVG là một ứng dụng của XML và cĩ thể tương thích với XML 1.0 được đưa ra. • SVG tương thích với “các khơng gian tên (namespace)” trong XML được tiến cử. • SVG dùng ngơn ngữ liên kết XML (XML Linking Languge-XLINK) cho tham chiếu URL và mong muốn hỗ trợ các đặc tả URL cơ bản trong XML-base. • Cú pháp của SVG cho việc tham chiếu các ID thành phần là một tập con cĩ thể tương thích của cú pháp tham chiếu ID thành phần trong ngơn ngữ con trỏ XML (XML Pointer Language-XPointer). • Nội dung SVG cĩ thể định kiểu bằng các trang định kiểu phân cấp CSS (Cascading Style Sheets Level 2) hay các biến đổi XSL (XSL Transformation Version 1.0-XSLT). • SVG hỗ trợ cùng hướng tiếp cận và các thuộc tính đối với CSS và XSL, cộng thêm ngữ nghĩa và tính năng của CSS. • Các trang định kiểu bên ngồi được tham chiếu bằng cách dùng cơ chế kết hợp trang định kiểu với tài liệu XML 1.0. • SVG cĩ một mơ hình đối tượng tài liệu hồn chỉnh (DOM) và thoả DOM cấp 1 được đưa ra. SVG DOM cĩ mức tương thích và kiên định cao với HTML DOM được định nghĩa trong trong đặc tả DOM cấp 1. Hơn thế nữa, SVG DOM hỗ trợ và kết hợp với nhiều khả năng được mơ tả trong DOM cấp 2, bao gồm cả mơ hình đối tượng CSS và quản lý sự kiện. • SVG kết hợp nhiều tính năng và tiếp cận của ngơn ngữ tích hợp đa phương tiện khơng đồng bộ (Synchronized Multimedia Integration Language- SMIL1.0), bao gồm thành phần ‘switch’ và thuộc tính systemLanguage. • Các tính năng ảnh động của SVG được hợp tác phát triển với nhĩm nghiên cứu đa phương tiện khơng đồng bộ W3C (W3C Synchronized SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 46 Multimedia –SYMM Working Group), và các nhà phát triển của SMIL 1.0. Các tính năng ảnh động của SVG kết hợp và mở rộng các khả năng ảnh động XML mục đích chung được mơ tả trong đặc tả ảnh động SMIL (SMIL Animation). • SVG được thiết kế để trong tương lai các phiên bản của SMIL cĩ thể dùng SVG tĩnh hay động như các thành phần phương tiện truyền thơng (Animation). • SVG cố gắng để đạt được sự tương thích lớn nhất với của HTML 4 và XHTML 1.0. Nhiều khả năng của SVG được làm theo HTML, bao gồm cả việc sử dụng trang định kiểu CSS, sự tiếp cận việc quản lý sự kiện, và tiếp cận của nĩ với mơ hình đối tượng tài liệu (DOM). • SVG cĩ thể tương thích với các chuẩn W3C trong quá trình quốc tế hố các chuẩn. • SVG cĩ thể tương thích với các chuẩn W3C trong khả năng truy cập Web. • Trong các mơi trường hỗ trợ văn phạm XML khác (ví dụ, XHTML) cũng như hỗ trợ SVG và SVG DOM, thì tiếp cập viết kịch bản đơn giản cĩ thể được dùng đồng thời cho cả tài liệu SVG và đồ hoạ SVG, trong trường hợp đĩ hiệu ứng động và tương tác sẽ cĩ thể áp dụng trên nhiều khơng gian tên XML dùng cùng tập kịch bản. 3.3 Loại MIME của SVG và Khơng gian tên SVG 3.3.1 Loại MIME của SVG, mở rộng tên tập tin và loại tập tin Macintosh: Loại MIME cho SVG là “image/svg+xml”. Việc đăng kí loại MIME này đang được tiến hành tại tổ chức W3C. Tập tin SVG cĩ mở rộng là “.svg” trên tất cả các hệ nền, và mở rộng cho tập tin nén của SVG là “.svgz” trên tất cả các hệ nền. SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 47 Người ta khuyến cáo rằng, khi lưu trữ tập tin SVG trên hệ thống tập tin HFS của Macintosh thì nên lưu với mở rộng “svg” với khoảng trắng cuối, và tập tin SVG nén là “svgz”. 3.3.2 Khơng gian tên SVG, định danh cơng cộng và định danh hệ thống: Sau đây là khơng gian tên của SVG 1.1, định danh cơng cộng và định danh hệ thống. Khơng gian tên SVG: Định danh cơng cộng cho SVG 1.1: PUBLIC “-//W3C//DTD//DTD SVG 1.1//EN” Định danh hệ thống cho SVG 1.1 đã tiến cử: Sau đây là một ví dụ khai báo loại tài liệu cho một tài liệu SVG: <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ""> Chú ý DTD được liệt kê trong định danh hệ thống là một DTD mơ-đun hố (nội dung của nĩ được trải ra trên nhiều tập tin), nghĩa là một bộ kiểm tra hiệu lực sẽ phải tìm về hết các mơ-đun để kiểm tra giá trị. Vì thế, cĩ một DTD đơn tương ứng với DTD mơ-đun hố cho SVG 1.1.Nĩ cĩ thể được tìm thấy tại địa chỉ 3.4 Định nghĩa một phân đoạn tài liệu SVG : thành phần ‘SVG’ 3.4.1 Tổng quan: Một phân đoạn tài liệu SVG bao gồm các thành phần SVG chứa trong một thành phần ‘svg’. SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 48 Một phân đoạn tài liệu SVG cĩ thể rỗng, nghĩa là thành phần ‘svg’ khơng cĩ nội dung gì cả. Một phân đoạn tài liệu SVG đơn giản chỉ chứa một thành phần đồ hoạ SVG đơn giản như thành phần ‘rect’ – hình chữ nhật. Một phân đoạn tài liệu SVG phức tạp cĩ thể bao gồm nhiều thành phần vật chứa và các thành phần đồ hoạ lồng vào nhau. Một phân đoạn tài liệu SVG cĩ thể đứng độc lập như là một tập tin SVG, hay là con của một thành phần ‘svg’ khác, trong trường hợp này thì phân đoạn tài liệu SVG cĩ thể xem là một tài liệu SVG, hoặc nĩ cĩ thể được nhúng nội tuyến trong một tài liệu XML cha. Sau đây là một ví dụ nội dung SVG đơn giản được nhúng nội tuyến trong một tài liệu XML cha. Chúng ta sẽ dùng khơng gian tên XML để chỉ định các thành phần ‘svg’ và ‘ellipse’ thuộc về khơng gian tên SVG tường minh. <parent xmlns="" xmlns:svg=""> Tiếp theo là một ví dụ phức tạp, gồm nhiều hình chủ nhật, của một tài liệu SVG độc lập. SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 49 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ""> <svg width="5cm" height="4cm" version="1.1" xmlns=""> Four separate rectangles <rect x=".01cm" y=".01cm" width="4.98cm" height="3.98cm" fill="none" stroke="blue" stroke-width=".02cm" /> Kết quả trên trình duyệt sẽ là: Hình 3.1 Minh họa nội dung SVG được nhúng nội tuyến Các thành phần phần ‘svg’ cĩ thể xuất hiện ở giữa nội dung SVG. Đây là cơ chế để nhúng một phân đoạn tài liệu SVG vào một phân đoạn tài liệu SVG khác. Thành phần ‘svg’ cĩ thể xuất hiện giữa nội dung SVG để thiết lập khung nhìn mới cho phân đoạn tài liệu mới. Trong tất cả các trường hợp, để thoả mãn khơng gian tên ngơn ngữ XML đưa ra, thì khơng gian tên SVG phải được khai báo để các thành phần SVG được chỉ định thuộc về một khơng gian tên SVG. Sau đây là các cách khai báo khơng gian tên. Chúng ta cĩ thể dùng thuộc tính khơng gian tên xmlns khơng cĩ tiền tố khơng gian tên chỉ định trong thành phần ‘svg’. Khi đĩ SVG là một khơng gian SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 50 tên mặc định cho tất cả các thành phần trong phạm vi của thành phần ‘svg’ này với thuộc tính xmlns như sau: Nếu tiền tố khơng gian tên được chỉ định trong thuộc tính xmlns (ví dụ, xmlns:svg=””), thì khơng gian tên SVG khơng cịn là khơng gian tên mặc định nữa. Vì thế tiền tố khơng gian tên được gán rõ ràng cho mỗi thành phần trong phân đoạn tài liệu SVG đĩ: Và điều cuối cùng trong phần này cần lưu ý là các tiền tố khơng gian tên cũng cĩ thể được chỉ định trong thành phần cha mà khơng nhất thiết phải là thành phần ‘svg’. 3.4.2 Thành phần ‘svg’: Các thuộc tính của thành phần ‘svg’: xmlns:[:prefix] = “tên nguồn tài nguyên” Là thuộc tính XML chuẩn được dùng để định danh một khơng gian tên XML. version= “” Chỉ định phiên bản ngơn ngữ SVG mà phân đoạn SVG cĩ thể thoả mãn. Với SVG 1.0, thuộc tính này cĩ giá trị “1.0”. Đối với SVG 1.1, thuộc tính này nhận giá trị “1.1”. baseProfile= profile –name Thuộc tính này mơ tả hiện trạng ngơn ngữ SVG nhỏ nhất cần để xây dựng nội dung chính xác. Nĩ khơng chỉ định bất kỳ ràng buộc xử lý nào cho tác nhân người dùng (user agent); nĩ cĩ thể được xem là siêu dữ liệu .Ví dụ, giá trị thuộc tính này cĩ thể được SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 51 dùng bởi một cơng cụ tạo nội dung SVG để cảnh báo người dùng khi họ chỉnh sửa tài liệu vượt quá phạm vi của baseProfile được chỉ định. Mỗi tập tin hiện trạng SVG (baseProfile) nên định nghĩa một chuỗi tương ứng cho thuộc tính này. Mặc định giá trị thuộc tính này là ‘none’ được chỉ định. x=”” Thuộc tính này khơng cĩ ý nghĩa hay ảnh hưởng gì tới thành phần ‘svg’ ngồi cùng. Nĩ là toạ độ trục x gĩc trái trên của phạm vi hình chữ nhật (khung nhìn) mà thành phần ‘svg’ được nhúng vào sẽ được hiển thị. Giá trị mặc định là 0. y=”” Thuộc tính này khơng cĩ ý nghĩa hay ảnh hưởng gì tới thành phần ‘svg’ ngồi cùng. Nĩ là toạ độ trục y của gĩc trái trên của phạm vi hình chữ nhật mà thành phần ‘svg’ được nhúng vào sẽ được hiển thị. Giá trị mặc định là 0. width= “” Đối với các thành phần ‘svg’ phía ngồi thì thuộc tính này cho biết độ rộng thực sự của phân đoạn tài liệu SVG. Cịn đối với các thành phần ‘svg’ được nhúng vào thì đây là độ dài của phạm vi hình chữ nhật mà thành phần ‘svg’ này sẽ được đặt vào. Nếu giá trị thuộc tính này âm thì cĩ lỗi phát sinh. Giá trị mặc định là 100%. height = “” Đối với các thành phần ‘svg’ phía ngồi thì thuộc tính này cho biết chiều cao thực sự của phân đoạn tài liệu SVG. Cịn đối với các thành phần ‘svg’ được nhúng vào thì đây là chiều cao của phạm vi hình chữ nhật mà thành phần ‘svg’ này sẽ được đặt vào. SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 52 Nếu giá trị này âm thì cĩ lỗi phát sinh. Giá trị mặc định là 100%. Nếu một tài liệu SVG được tham chiếu như một thành phần của tài liệu khác thì chúng ta nên thêm thuộc tính viewBox trong thành phần ‘svg’ ngồi cùng của tài liệu được tham chiếu. Thuộc tính này cung cấp một cách thuận tiện để thiết kế tài liệu SVG vừa vặn với một khung nhìn tuỳ biến chỉ định. 3.5 Gom nhĩm : thành phần ‘g’: Thành phần ‘g’ là một thành phần vật chứa để nhĩm các thành phần đồ hoạ với nhau. Khi gom nhĩm kết hợp với các thành phần ‘desc’- mơ tả và thành phần ‘title’ - tiêu đề sẽ cung cấp thơng tin về cấu trúc tài liệu và nhiều ngữ nghĩa hơn. Các tài liệu giàu cấu trúc sẽ tăng khả năng truy xuất hơn. Một nhĩm các thành phần, cũng như các đối tượng đơn lẻ, cĩ thể được cung cấp một định danh bằng thuộc tính id. Việc đặt tên nhĩm là cần thiết trong trường hợp tạo ảnh động hay các đối tượng dùng lại. Ví dụ: <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ""> <svg width="5cm" height="5cm" version="1.1" xmlns=""> Two groups, each of two rectangles <rect x=".01cm" y=".01cm" width="4.98cm" height="4.98cm" fill="none" stroke="blue" stroke-width=".02cm" /> SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 53 Kết quả trên trình duyệt sẽ là: Hình 3.2. Minh họa thành phần gom nhĩm ‘g’ Một thành phần SVG cĩ thể chứa các thành phần ‘g’ lồng vào trong nĩ đến một độ sâu thích hợp. Ví dụ: <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ""> <svg width="4in" height="3in" version="1.1" xmlns=""> Groups can nest Cịn bất kỳ thành phần SVG nào khơng chứa trong thành phần ‘g’ thì đựơc xem như là một nhĩm riêng. 3.6 Tham chiếu và thành phần ‘defs’: 3.6.1 Tổng quan: SVG mở rộng khả năng dùng các tham chiếu URI tới các đối tượng khác. Ví dụ, để tơ một hình chữ nhật với màu tuyến tính, thì trước tiên chúng ta cần định nghĩa một thành phần 'linearGradient' và gán cho nĩ một ID như sau: SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 54 ... Sau đĩ trong thành phần ‘rect’ chúng ta cĩ thể dùng thuộc tính ‘fill’ tham chiếu tới thành phần ‘linearGradient’ trên như sau: Tham chiếu URI được định nghĩa theo các dạng sau: = [ | ] [ "#" ] -hay- = [ | ] [ "#xpointer(id(" "))" ] là định danh của thành phần được tham chiếu là URI tuyệt đối là URI tương đối # và #xpointer(id()) là các phát biểu theo cú pháp tương thích với ngơn ngữ con trỏ XML (XML Pointer Language - XPointer). SVG hỗ trợ hai kiểu tham chiếu URI: • Tham chiếu URI cục bộ (local URI references), khi đĩ tham chiếu URI khơng chứa hay và do đĩ chỉ chứa định danh của phân đoạn được tham chiếu là #elementID hay #xpointer(id). • Tham chiếu URI khơng cục bộ (non-local URI references), khi đĩ tham chiếu URI chứa hoặc hoặc Sau đây là các nguyên tắc xử lý của tham chiếu URI: • Các tham chiếu URI tới các nút (node) khơng tồn tại sẽ xem như một tham chiếu khơng hợp lệ. • Các tham chiếu URI tới các thành phần khơng đúng với tham chiếu được cho cũng sẽ được xem như một tham chiếu khơng hợp lệ, ví dụ thuộc tính ‘clip-path’ chỉ cĩ thể tham chiếu tới thành phần ‘clipPath’. Thiết lập thuộc tính clip-path:url(#MyElement) là một tham chiếu SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 55 khơng hợp lệ nếu thành phần được tham chiếu (MyElement) khơng phải là ‘clipPath’. • Tham chiếu URI tham chiếu trực tiếp hay gian tiếp ngược trở lại nĩ là một tham chiếu vịng khơng hợp lệ. Như vậy SVG cĩ các thành phần và thuộc tính cho phép tham chiếu và cũng cĩ các thanh phần và thuộc tính khơng cho phép tham chiếu. Đối với các thành phần được tham chiếu thì sẽ cĩ thành phần được tham chiếu là hợp lệ cho tham chiếu này nhưng khơng hợp lệ cho tham chiếu khác tới nĩ. Sau đây sẽ là phần liệt kê mơ tả một số thành phần và thuộc tính cho phép tham chiếu và các đích tham chiếu hợp lệ cho các tham chiếu đĩ: • Thành phần ‘a’ cĩ thể tham chiếu tới bất kỳ nguồn tài nguyên cục bộ hay khơng cục bộ nào đĩ. • Thành phần ‘altGlyph’ phải tham chiếu tới thành phần ‘altGlyphDef’ hay một thành phần ‘glyph’. • Thành phần ‘animate’ (xin vui lịng xem phần mơ tả chi tiết thành phần ‘animate’ trong đặc tả SVG của W3C). • Thành phần ‘animateColor’ (xin vui lịng xem phần mơ tả chi tiết thành phần ‘animate’ trong đặc tả SVG của W3C). • Thành phần ‘animateTransform’ (xin vui lịng xem phần mơ tả chi tiết thành phần ‘animate’ trong đặc tả SVG của W3C). • Thuộc tính ‘clip-path’ phải tham chiếu tới một thành phần ‘clipPath’. • Thuộc tính ‘cursor’ phải tham chiếu tới một nguồn tài nguyên cung cấp một hình ảnh cho con trỏ chuột. • Thành phần ‘felImage’ phải tham chiếu tới nguồn tài ngyên cục bộ hay khơng cục bộ. • Thuộc tính ‘fill’ tham chiêu tới một thành phần ‘linearGradient’…. • Thành phần ‘filter’ phải tham chiếu tới một thành phần ‘filter’. • Thuộc tính ‘filter’ phải tham chiếu đến một thành phần ‘filter’. SV ne t.vn Chương 3. Cấu trúc định dạng tập tin SVG 56 • Thành phần ‘image’ phải tham chiếu một nguồn tài nguyên cục bộ hay khơng cục bộ. • Thành phần ‘linearGradient’ phải tham chiếu tới một thành phần ‘linearGradient’ hay ‘radialGradient’. • Thuộc tính ‘marker’, ‘marker-start’, ‘marker-mid’ và ‘marker-end’ phải tham chiếu tới một thành phần ‘marker’. • Thuộc tính ‘mask’ phải tham chiếu tới một thành phần ‘mask’. • Thành phần ‘pattern’ phải tham chiếu tới một thành phần ‘linear

Các file đính kèm theo tài liệu này:

  • pdf[LVIT033] - Tìm hiểu SVG và ứng dụng.pdf