GML hay Geography Markup Language là chuẩn mã hóa cơ bản XML dùng cho thông tin địa lý được OpenGIS Consortium(OGC) phát triển. Mục tiêu của nó cho phép Internet Browser có khả năng xem bản đồ trên web mà không cần phải gắn thêm các thành phần bổ trợ nào khác và dùng để mô hình hóa (modeling), truyền tải (transport), lưu trữ các thông tin địa lý.
GML cung cấp nhiều loại đối tượng cho việc mô tả địa lý bao gồm các geographic feature(*) , hệ thống định vị(coordinate reference system), đối tượng hình học (geometry), topology, thời gian(time), đơn vị đo lường và tổng quát hóa dữ liệu.
(*) geographic featurelà sự trừu tượng hóa hiện tượng của thế giới thực kết hợp với vị trí của nó trên Trái Đấthay đơn giản geographic featurelà những đặc tả địa lý của môt hiện tượng ở thế giới thực.
Thành phần
Geometries and Coordinate reference System(dựa vào EPSG): Coordinate reference System gồm tập hợp các datum (hình dạng và kích cỡ của Trái Đất). Geometries cho biết coordinate reference system mà mình đo lường tính toán.
A temporal reference system(dựa vào ISO 8601) cung cấp các chuẩn về đơn vị đo lường thời gian
A Units of Measure (UOM) dictionary cung cấp các định nghĩa về các con số đo lường chẳng hạn như là chiều dài, nhiệt độ, áp suất và sự chuyển đổi giữa các đơn vị đo lường.
Hình 2.15: Thành phần GML
Khi có một yêu cầu được gửi đến yêu cầu truy xuất dữ liệu Geographic Data Server sẽ gửi lại những dữ liệu kết quả của yêu cầu truy xuất dưới dạng GML.
Truyền tải dữ liệu không gian
Hình 2.16: Mô hình truyền tải dữ liệu không gian của GML
Các thông tin vị trí GML có thể truyền tải:
Các điểm mạng.
Các tuyến đường.
Các thông tin được quan sát (hình ảnh, các thông tin truyền thông đa phương tiện)
Thông tin định vị / địa chỉ thư tín(Qualitative location/ Postal Address)
GML version 2 _XML for Simple Features: Các thuộc tính hình học của Simple Features bị giới hạn ở chỗ tọa độ của 'simple' geometries được định nghĩa trong không gian 2 chiều, sự phát họa một đường cong phụ thuộc vào phép nội suy tuyến tính.
GML ở phiên bản 3.0 cải tiến những khuyết điểm của phiên bản 2.0. Nó thể hiện các hiện tượng không gian địa lý bằng phương pháp tuyến tính hai chiều đơn và phức, phi tuyến tính, hình học không gian 3 chiều, topo 2 chiều, những đặc tính thời gian, đặc tính động, phương pháp bao phủ và phương pháp quan sát thông tin. Phiên bản này hỗ trợ các đặc tính feature và các đối tựơng có giá trị phức chính xác hơn. Ngoài ra phiên bản còn cung cấp các chuẩn về đơn vị đo lường thời gian và không gian. Phiên bản này phù hợp với những qui định của ISO 19100.
GML 3.0 thể hiện rất nhiều thực thể khác nhau chẳng hạn như các feature, geometry, topology…thông qua cấu trúc phân tầng của những đối tượng trong GML được minh hoạ qua sơ đồ UML dưới đây.
SVG được viết tắt từ Scalable Vector Graphics là chuẩn mở rộng được phát triển bởi tổ chức W3C dùng cho việc trình diễn các hình ảnh đồ họa vectơ hai chiều bằng ngôn ngữ XML ở cả hai trạng thái tĩnh và động
Lịch sử phát triển
SVG được nhóm phát triển W3C bắt đầu xây dựng vào năm 1998 do Chris Lilley làm chủ trì
Hiện nay nhóm phát triển SVG đang tiếp tục thực hiện SVG Tiny 1.2 và SVG Full 1.2
Những đặc trưng chính của SVG
SVG được thiết kế thành một ngôn ngữ có mục đích tổng quát là trình diễn những hình ảnh đồ họa hai chiều. Theo thông thường, SVG cung cấp các cách thức xây dựng những hình dạng cơ bản như đường, đa giác, đường tròn và đường cong. Bên cạnh đó, SVG cũng hỗ trợ dạng văn bản mà ta có thể gắn kèm vào một đường dẫn, chẳng hạn như những hình ảnh dạng raster (bằng cách tham khảo hoặc bao gồm cả tập tin bên ngoài). Do SVG là một ngôn ngữ dựa trên XML nên chúng ta có thể đọc các tập tin SVG như đọc các tập tin HTML.
Hình 2.19: Kết quả hiển thị của một đoạn mã SVG
Nguồn của một tập tin SVG đơn giản được trình bày trong hình trên, cùng với hình ảnh tương ứng. Các tập tin SVG chứa các thẻ (tag) và với các thuộc tính chỉ rõ vị trí và kiểu (style) của các element.
Thuộc tính xmlns trong thẻ
Thêm vào đó, SVG cũng có nhiều đặc trưng cấp cao bao gồm khả năng áp dụng các bộ lọc, như hiệu ứng mờ và chớp sáng. Một đặc trưng quan trọng khác là hoạt ảnh (animation) giúp di chuyển các đối tượng trong ảnh, hoặc làm cho chúng xuất hiện dần vào hay đi ra (fade in/ out).
Tập hợp toàn diện các đặc trưng giúp SVG dễ dàng tạo ra những hình ảnh cấp cao. Từ khi được đưa ra làm mục tiêu hướng tới của web, SVG cũng cung cấp những đặc trưng siêu liên kết (hyperlink) . Các liên kết được biểu diễn bằng ngôn ngữ W3CXLink. Mặc dù những người quan sát SVG chỉ đòi hỏi việc hỗ trợ những dạng liên kết gián tiếp đơn giản thường thấy trên các trang web nhưng XLink cũng cung cấp những khả năng liên kết vô cùng linh động.
Việc SVG được dựa trên XML làm cho SVG có thể dùng XML DOM để sửa đổi linh hoạt các hình ảnh SVG từ 1 tập lệnh (script language). Đây là đặc trưng rất mạnh mẽ.
Ví dụ, xem một hình ảnh SVG được nhúng trong trang web như hình bên dưới. Một người phát triển có thể điều khiển cả DOM của trang web và DOM của hình ảnh SVG từ trong tập tin script tương tự. Khi dùng kĩ thuật này, giao diện trang web HTML có thể được dùng để điều khiển những hình ảnh SVG trên trang web. Đây là một bước phát triển lớn đối với định dạng dữ liệu so với Shockwave và Flash, nơi mà khả năng giao tiếp giữa trình duyệt (browser) gắn vào và những phần khác của trang web bị hạn chế nhiều.
Hình 2.20: SVG kết hợp với Web
Những hỗ trợ SVG hiện tại
Thành công của SVG dựa nhiều trên một số ứng dụng hỗ trợ chuẩn. Nhiều gói đồ họa (drawing package) có thể xuất ra (export) các hình ảnh đến các tập tin SVG, và có những gói có thể nhập (import) và chỉnh sửa dữ liệu SVG.
Điều đáng tiếc nhất là hiện nay không có các trình duyệt lớn nào hỗ trợ SVG. Vì vậy, người dùng phải sử dụng một trình duyệt có gắn thêm phần hỗ trợ để xem SVG trên web.
Phần hỗ trợ phổ biến nhất là Adobe SVG Viewer, tương thích với hệ điều hành Microsoft Windows và Mac. Dụng cụ này có thể hiển thị những hình ảnh có chất lượng cao và đồng thời hỗ trợ hiệu ứng hoạt ảnh và sự tương tác DOM thông qua script. HIện nay Adobe SVG Viewer xử lý hầu hết chuẩn SVG, mặc dù một số phần trong đó vẫn chưa được hiện thực.
Hy vọng rằng, sự hỗ trợ SVG sẽ được thêm vào các trình duyệt trong tương lai. Có 1 dự án hoạt động mà mục tiêu hướng đến là thêm hỗ trợ SVG vào Mozilla, mã nguồn mở đang được phát triển những phiên bản mới của trình duyệt Netscape. Microsoft tham gia vào công việc của nhóm phát triển SVG tại tổ chức W3C, nhưng không có kế hoạch thêm phần hỗ trợ SVG vào trình duyệt Internet Explorer của họ.
Nhiều công cụ xem SVG khác cũng đang được phát triển: bộ công cụ SVG của dự án Apache Batik dựa trên Java và có thể dùng trên nhiều nền tảng khác nhau; Công ty CSIRO – Úc phát triển 1 công cụ xem SVG cho những thiết bị di động chạy trên những Pocket PC-based PDA.
Tương lai của SVG
Mặc dù SVG hiện nay đã đạt tới trạng thái như được giới thiệu, nhóm SVG của W3C vẫn sẽ tiếp tục phát triển chuẩn này bằng cách thêm vào những đặc trưng cần thiết. Đã có những tài liệu diễn tả những phần mở rộng có thể thêm vào các phiên bản sau này của chuẩn SVG. Một yêu cầu quan trọng là cập nhật những phiên bản về sau của chuẩn SVG phải tương thích với SVG 1.0.