Sự phát triển phong phú của các thiết bị đầu cuối cầm tay với cấu hình và khả năng xử lý ngày càng mạnh đã thúc đẩy hình thành rất nhiều dịch vụ cho chúng trên nền những thiết bị này.Theo đó, yêu cầu về GIS cho các thiết bị này cũng xuất hiện ngày càng nhiều. Bài viết này giới thiệu hệ thống phần mềm cung cấp dịch vụ giá trị gia tăng dựa trên công nghệ GIS cho mạng Internet phục vụ thiết bị cầm tay thông minh (PDA, điện thoại có chức năng PDA, POCKET PC). Hệ thống được xây dựng trên cơ sở mô hình chuẩn và tuân thủ các thỏa thuận của OGC, W3C nhằm đảm bảo chia sẻ dịch vụ, dữ liệu GIS với các nhà cung cấp dữ liệu, dịch vụ trên toàn thế giới.
1. GIỚI THIỆU
Cùng với sự phổ biến của Internet và Web, các ứng dụng được chuyển thành dạng Web ngày càng nhiều và GIS không phải là một ngoại lệ. Tuy nhiên, việc xây dựng hệ thống GIS trên Web gặp khá nhiều khó khăn:
- Dữ liệu GIS khá lớn nên không đáp ứng được tính thời gian thực khi tốc độ đường truyền không đủ lớn.
- Thao tác với GIS yêu cầu nhiều tính năng như: kéo, phóng to, thu nhỏ, lấy thông tin,…dẫn đến yêu cầu các phần mềm để hiển thị dữ liệu GIS phải có nhiều tính năng hơn trong môi trường WEB.
- Dữ liệu GIS từ trước đến nay vẫn được lưu trong các hệ thống phần mềm khác nhau như ESRI, Intergraph, Mapinfo,… và không thể thao tác trực tiếp dữ liệu của nhau nên giảm đi rất nhiều tính linh động trên Web.
Trước đây, để khắc phục các nhược điểm trên người ta chuyển toàn bộ dữ liệu GIS thành dạng ảnh (JPG, GIF,…) trước khi truyền về máy khách. Tuy nhiên dạng ảnh vẫn có nhiều nhược điểm vì thông tin thuộc tính của các đối tượng không lưu trên ảnh nên muốn có thông tin máy khách lại phải gửi yêu cầu tới máy chủ. Mặt khác với sự phát triển phong phú của các thiết bị cầm tay và các dịch vụ cho chúng, yêu cầu về GIS cho các thiết bị này xuất hiện ngày càng nhiều và việc đưa ảnh về máy khách gặp khó khăn khi tài nguyên của các thiết bị này hạn chế, kích thước hiển thị nhỏ hơn rất nhiều so với PC dẫn đến khi ảnh hiển thị được trên PC thì quá lớn đối với thiết bị cầm tay và ngược lại.Với các nhu cầu và hạn chế như trên, các tổ chức về Web, GIS, cơ sở dữ liệu (CSDL),… đã hợp tác xây dựng những thỏa thuận mới cho GIS trên Web:
- OGC (Open Gis Consortium) [1] đã đưa ra mô hình hệ thống cung cấp dịch vụ chuẩn để cung cấp dịch vụ GIS trên WEB, ngôn ngữ để truy vấn dữ liệu GIS trong các hệ thống CSDL,…
- W3C (World Wide Web Consortium) [2] đưa ra XML để mở rộng khả năng định dạng trên Web, các định dạng để hiển thị dữ liệu đồ họa trên Web,…
Mục tiêu của bài viết là giới thiệu hệ thống cung cấp dịch vụ GIS trên môi trường Web cho PC và các thiết bị di động, cầm tay như PDA, Smartphone,… Hệ thống được xây dựng trên cơ sở mô hình chuẩn và tuân thủ các thỏa thuận của OGC, W3C nhằm đảm bảo chia sẻ dịch vụ, dữ liệu GIS với các nhà cung cấp dữ liệu, dịch vụ trên toàn thế giới.
2. KHẢO SÁT CÁC WEBSITE CUNG CẤP DỊCH VỤ WEB MAP CHO THIẾT BỊ CẦM TAY2.1. Trên thế giới
- GIMODIG [3]: Dự án "Geospatial Info-Mobility Service by Real-Time Data-Integration and Generalisation" (GiMoDig) được đưa ra từ hiệp hội của châu Âu theo chương trình Information Society Technologies (IST). Đối tượng của dự án là phát triển các phương pháp phân phối dữ liệu địa lý cho các đầu cuối di động bằng việc khởi tạo và tích hợp dữ liệu thời gian thực.
- GEMURE [4]: Dự án GEMURE (Generalization and Multiple Representation for on-Demand Map Production and Delivery) tại Canada bắt đầu từ 2002, phục vụ cho việc phân phối thông tin bản đồ theo yêu cầu dựa trên tổng hợp bản đồ và đa hiển thị (multiple representation). Hệ thống thông minh cho du lịch trên cơ sở tổng hợp bản đồ và đa hiển thị gọi là SIGERT (Intelligent System for Tourism based on Cartographic Generalization and Multiple Representation) là một phần trong dự án trên.
- CitiWiz [5] cung cấp các dịch vụ bản đồ, tìm vị trí gần nhất cùng với Telenor dựa trên PocketIT đã có mặt trong hầu hết các thành phố của Scandinavia. Pocket IT cung cấp dịch vụ định vị mASP cho trang web này.
- Dịch vụ Maporama cho PDA [6] cung cấp công cụ lựa chọn bản đồ hoàn chỉnh cho người dùng.
- Palmtop Software BV [7] cung cấp cung cấp dịch vụ TomTom Navigator, Maps-on-line, Citymaps và Routeplanner. Các bản đồ của dịch vụ TomTom Navigator do TeleAtlas cung cấp. Dịch vụ citymaps bao gồm dữ liệu bản đồ của hơn 100000 thành phố và làng mạc ở châu Âu.
- Genimap [8] cung cấp các bản đồ có thể tải được cho bộ nhớ thiết bị đầu cuối di động Benefon Esc qua Internet. Dịch vụ bao gồm các bản đồ về địa hình, đường phố, thành phố và các biểu đồ hàng hải thuộc châu Âu.- AcrPad: cung cấp khả năng truy nhập đến dữ liệu GIS qua giao tiếp không dây WiFi.
2.1. Việt Nam
Có một vài nhà cung cấp dịch vụ GIS-WEB công cộng trên Internet, tuy nhiên thông dụng nhất và phổ biến nhất là sản phẩm của công ty Dolsoft [9] với một số dịch vụ như: tìm đường, khách sạn, nhà hàng, bến xe buýt,… Nhưng hiện nay sản phẩm này chưa cung cấp dịch vụ cho thiết bị cầm tay.
3. THIẾT KẾ HỆ THỐNG
3.1. Mô hình hệ thống
Mô hình tổng thể của hệ thống sẽ tuân thủ theo mô hình OpenGIS Web Services Framework của OGC. Một trong những mục đích chính của OGC Web Services là mô tả một mô hình kiến trúc chung cho các dịch vụ không gian địa lý dựa trên Web. OGC chỉ ra phạm vi, mục đích, hoạt động của một hệ thống và các thành phần chức năng chung cho các dịch vụ này. Đồng thời cũng mở rộng cho một số loại dịch vụ cụ thể khác. Mô hình kiến trúc này cũng chỉ ra các yêu cầu thiết kế để cho phép sự liên thông giữa các hệ thống Web Service khác nhau cùng sử dụng các tiêu chuẩn giao tiếp OpenGIS Web Services.
OpenGIS Web Services Framework là nền tảng cho các hệ thống định vị và hệ thống xử lý dữ liệu địa lý thế hệ kế tiếp. OpenGIS Services Framework (Hình 1) cung cấp tập giao diện chung giữa các phần chức năng với khả năng liên tác cao.
Các yếu tố chính của kiến trúc OpenGIS Web Service như sau:
- Client Services – các thành phần phía client (client-side) của ứng dụng client tương tác với người dùng và các thành phần phía server (server-side) tương tác với Server-side Client Applications, Application Servers và Data Servers. (Client Services là các dịch vụ có kiểu Geospatial Human Interaction Services như được định nghĩa trong OGC Abstract Specification Topic 12).
- Registry Services – cung cấp một kỹ thuật chung để phân loại, đăng ký, mô tả, tìm kiếm, bảo dưỡng và truy cập thông tin về tài nguyên mạng (dữ liệu và dịch vụ). Với OpenGIS Web Service 1.2, Registry Services bao gồm cả Web Registry Service (WRS).
- Processing-Workflow Services – nền tảng của dịch vụ application-building-block mà hoạt động trên dữ liệu địa lý và metadata, hỗ trợ các dịch vụ giá trị gia tăng. Với OpenGIS Web Service 1.2, Processing-Workflow Services bao gồm cả Sensor Planning Service (SPS) và Web Notification Service (WNS).- Portrayal Services – Portrayal Services cung cấp khả năng chuyên biệt hỗ trợ cho trình diễn thông tin địa lý. Portrayal Services là thành phần định sẵn một hoặc nhiều đầu vào và thủ tục biểu diễn đầu ra như biểu diễn bản đồ địa lý, phối cảnh địa hình, chú giải hình ảnh, xem các thay đổi động theo tượng trưng hoặc thời gian,…Với OpenGIS Web Service 1.2, Portrayal Services bao gồm Web Map Service (WMS), Coverage Portrayal Service (CPS) và Style Management Service (SMS).
Data Services – nền tảng của dịch vụ building blocks mà đáp ứng dữ liệu địa lý chuyên dụng. Với OpenGIS Web Service 1.2, Data Services bao gồm Web Object Service (WOS), Web Feature Service (WFS), Sensor Collection Service (SCS), Image Archive Service (IAS) và Web Coverage Service (WCS).
3.2. Truy vấn và hiển thị dữ liệu GISTruy vấn dữ liệu GIS trong CSDL
Nếu cần phân phối dữ liệu địa hình qua Web, ta có thể sử dụng một vài GIS Engine trên máy chủ để sinh ra ảnh bản đồ GIF và JPG, sau đó gắn vào trong trang HTML và gửi tới trình duyệt người dùng. Cách tiếp cận này là rõ ràng và hoạt động tốt khi người dùng chỉ đơn giản muốn hiển thị ảnh bản đồ với yêu cầu thấp, khả năng tương tác kém và không thể chia sẻ dữ liệu nhất là trong môi trường Internet. Vì vậy cần một tiêu chuẩn chung để có thể chia sẻ dữ liệu đồng thời tăng khả năng tương tác và tốc độ cho người sử dụng.
Vấn đề này đã được OGC giải quyết với GML (chi tiết xin tham khảo [1]) và chúng tôi cũng chọn GML để phục vụ cho hệ thống GIS WEB.
Hiển thị dữ liệu GIS
Với dữ liệu bản đồ 2D thì việc hiển thị dữ liệu bản đồ sử dụng SVG là định dạng hiển thị phù hợp nhất do:
- Được tiêu chuẩn hóa bởi W3C và được đa số các hãng cung cấp dịch vụ GIS hỗ trợ. (xem phụ lục các nhà cung cấp phần mềm đã được kiểm tra (test) trên W3C [2]).
- Kích thước dữ liệu nhỏ và có thể được nén để tối ưu kích thước dữ liệu khi truyền.
- Tương thích với XML nên khả năng kết hợp với các ứng dụng khác trên Web cao.
- Khả năng tùy biến hiển thị cao, phù hợp với mọi loại kích thước màn hình hiển thị. Hỗ trợ tốt cho các thiết bị di động và đã được nhiều nhà sản xuất thiết bị đầu cuối hỗ trợ.
- Được sự hỗ trợ của các nhà cung cấp thiết bị đầu cuối di động: Ví dụ như:
+ Nokia thông báo platform của series 60 có hỗ trợ SVG.
+ Sony Ericsson K700 hỗ trợ SVG sử dụng ZOOMON SVG Player.
+ Siemens CX65 cũng đã có SVG Tiny (SVG phiên bản cho thiết bị di động).
Chi tiết về SVG có thể tham khảo tại [2].
3.3 Thiết kế CSDL GIS
Với ứng dụng GIS cho PC chúng ta có thể đưa về lượng dữ liệu lớn để hiển thị bản đồ thích hợp trên màn hình PC. Nhưng nếu đưa cùng một lượng dữ liệu như vậy để hiển thị trên màn hình nhỏ của thiết bịdi động thì rất lãng phí đường truyền và mất nhiều thời gian xử lý dữ liệu để phía thiết bị di động hiển thị bản đồ. Vì vậy vấn đề đặt ra là làm sao để thiết kế được hệ CSDL thích hợp cho việc hiển thị dữ liệu bản đồ trên thiết bị di động ở từng mức độ khung nhìn khác nhau. Chúng tôi sử dụng CSDL đa hiển thị/đa độ phân giải MRDB (Multi – Resolution/Representation Database) để khắc phục những khó khăn này.
MRDB có thể được mô tả như một CSDL không gian dùng để lưu trữ các hiện tượng thế giới thực ở các mức độ chính xác và độ phân giải khác nhau. MRDB được hiểu vừa như một CSDL đa biểu diễn vừa như một CSDL đa độ phân giải. Trong MRDB, các khung nhìn khác nhau của cùng các đối tượng hoặc hiện tượng được lưu trữ và liên kết với nhau. Điều này dẫn đến sự khác nhau trong các đối tượng, ví dụ theo ngữ nghĩa và theo hình dạng hình học. Việc biểu diễn đồ họa cũng có thể được xem xét dẫn đến vô số biểu diễn theo ngữ nghĩa, theo dạng hình học và theo đồ họa.Có hai đặc điểm chính tiêu biểu cho MRDB (Hình 2).
- Các mức độ chi tiết (levels of detail - LoD) khác nhau được lưu trong một CSDL- Đối tượng trong các mức độ LoD khác nhau được liên kết với nhau.
Đặc điểm đầu tiên có thể so với một tập các bản đồ tương tự của NMA: những bản đồ này ở các mức độ tỉ lệ xích khác nhau tồn tại riêng rẽ với nhau và chỉ được liên kết bằng dạng hình học chung. Trong trường hợp thứ hai, các đối tượng được liên kết rõ ràng với nhau và vì vậy mỗi đối tượng đều biết đối tượng tương ứng của nó ở một độ phân giải khác.
4. XÂY DỰNG PHẦN MỀM
4.1 GIS WEB Server
Các module GIS Server trong môi trường Web
GisServer có thể chia thành hai package lớn, đó là package Geoserver và GeoTools. Geoserver là một Web Server, được xây dựng trên thư viện GeoTools. GeoTools sẽ thực thi tất cả các chức năng cần có của một hệ thống GIS.
Web Feature Service - WFS [10]
Module thực thi dịch vụ WFS được phát triển dựa trên nền tảng dự án mã nguồn mở Geoserver. Geoserver là một trong những dự án mã nguồn mở thực thi WFS đầy đủ nhất hiện nay. Xây dựng trên ngôn ngữ Java là một trong những ưu thế của Geoserver, vì vậy Geoserver có thể hỗ trợ nhiều hệ quản trị CSDL không gian khác nhau như Oracle, PostGIS, MySQL,…
Để đáp ứng yêu cầu của hệ thống, ngoài các phương thức như OpenGIS quy định, chúng tôi đã đưa thêm vào 3 phương thức, đó là:
- GetExtendedProjectDescriptor: GetExtendedProjectDescriptor mô tả các thuộc tính của project hiện tại bao gồm địa chỉ WFS server, DRS server, GCS server, RTS server, các lớp bản đồ thuộc project, khu vực bản đồ được quan tâm,…
- GetExtendedLayerDescriptor: GetExtendedLayerDescriptor mô tả các thuộc tính của một lớp bản đồ như trường dữ liệu đồ họa, trường tiêu đề, cách phân chia nhóm đối tượng,...- GetStyledLayerDescriptor: GetStyledLayerDescriptor mô tả các thuộc tính tô vẽ của lớp bản đồ. Hai method GetExtendedLayerDescriptor và GetStyledLayerDescriptor sử dụng kết hợp với nhau để quy định cách trình bày một lớp bản đồ.
Dịch vụ Geocoder
Dịch vụ Geocoder sẽ trả về vị trí địa lý của một điạ chỉ cụ thể (tên đường phố hoặc tên địa điểm dịch vụ). Các dịch vụ nằm trong nhóm dịch vụ OpenLS (Open Location Service) bao gồm geocoder, directory và route service chưa được Geoserver thực thi, chúng tôi thực thi các module này dựa trên quan điểm xây dựng dịch vụ của Geoserver. Ngoài ra, chúng tôi cũng sử dụng ưu thế của hệ quản trịCSDL Oracle để xây dựng các dịch vụ này.
Module Geocoder service được viết trên Java, thực thi đầy đủ dịch vụ Geocoder như OGC chỉ định trong phiên bản 1.0.
Thuật toán Geocode:
Khi máy chủ nhận được yêu cầu từ phía máy khách đề nghị geocode một địa chỉ cụ thể (tên đường phố hoặc tên điểm dịch vụ). Trước hết dịch vụ sẽ xác định thông tin về thành phố hoặc mã bưu điện phù hợp với vùng cần geocode. Nếu thông tin cần geocode là địa chỉ đường phố thì dịch vụ sẽ truy vấn bảng gc_road_vn để tìm ra tên đường phố cần geocode. Nếu tìm thấy đường phố này, dịch vụ sẽ tiếp tục dùng thông tin road_id lấy từ gc_road_vn để truy vấn bảng gc_road_segment_vn tìm đoạn đường có số nhà phù hợp với thông tin về số nhà trong yêu cầu phía máy khách. Nếu không tìm thấy đoạn đường nào có số nhà phù hợp với yêu cầu, dịch vụ sẽ trả về một vị trí mặc định trên đường phố đó. Nếu thông tin cần geocode là tên một điểm dịch vụ cụ thể thì dịch vụ sẽ truy vấn đến bảng gc_poi_vn để tìm vị trí của điểm dịch vụ đó.
Dịch vụ DirectoryDịch vụ Directory cho phép tìm kiếm địa chỉ đường phố, tên địa điểm dịch vụ hoặc nhóm dịch vụ, từ khóa. Cũng như Module Geocoder, Module Directory được viết trên Java, thực thi đầy đủ dịch vụ directory như OGC chỉ định trong phiên bản 1.0. Để thuận lợi hơn trong việc tìm kiếm và tra cứu thông tin, chúng tôi đã mở rộng các phương thức do OGC đưa ra và thêm vào phương thứcDirectoryListRequest. Phương thức này cho phép liệt kê tất cả các nhóm thông tin có trong CSDL.
Thuật toán tìm kiếm thông tin:
Dịch vụ Directory được thiết kế dưới dạng thông tin được tổ chức theo từng category cụ thể. Một địa điểm xác định có thể nằm trong một hoặc nhiều category tương ứng. Dịch vụ Directory gồm hai dịch vụ nhỏ: dịch vụ trang vàng và dịch vụ định vị.
Với dịch vụ trang vàng (tìm kiếm thông tin mà không quan tâm đến điểm mốc tìm kiếm), thuật toán tìm kiếm trước tiên sẽ vào bảng trong CSDL lưu trữ thông tin về các category để xác định xem thông tin yêu cầu tìm kiếm có thuộc một category cụ thể nào không. Nếu thông tin tìm kiếm là một category cụ thể thì dịch vụ trang vàng sẽ trả ra kết quả dưới dạng liệt kê ra tên của category đó. Nếu thông tin tìm kiếm không là một category nào thì thuật toán tìm kiếm sẽ vào tất cả các view trong CSDL để tìm ra được địa điểm phù hợp với yêu cầu tìm kiếm.
Với dịch vụ định vị (tìm kiếm thông tin mà có đưa vào điểm mốc để tìm kiếm), có hai trường hợp: tìm kiếm thông tin thỏa mãn tiêu chí tìm kiếm mà gần nhất với điểm mốc hoặc tìm kiếm thông tin thỏa mãn tiêu chí tìm kiếm mà nằm trong khu vực bán kính xác định tính từ điểm mốc.Trong cả hai dịch vụ tìm kiếm trên (dịch vụ trang vàng và dịch vụ định vị) đều có tìm kiếm nâng cao (tìm kiếm thông tin nằm trong các category cụ thể). Với cách tìm kiếm này ứng dụng sẽ vào bảng trong CSDL lưu thông tin về các category để tìm ra tất cả các view về các category đó, sau đó sẽ đi vào từng view này để tìm địa điểm phù hợp với yêu cầu.
Dịch vụ tìm đường
Do sự phức tạp trong việc tổ chức và thu thập dữ liệu về đường phố nên module này hiện chưa thực thi được đầy đủ như OGC chỉ ra trong phiên bản 1.0 nhưng cũng đã đáp ứng được phần nào yêu cầu tìm đường đi.
Các khả năng Route service có thể thực thi:
- Tìm đường đi ngắn nhất giữa hai điểm
- Tìm đường đi nhanh nhất giữa hai điểm
- Phân biệt đường hai chiều và một chiều
- Các điểm bắt đầu và kết thúc được cung cấp dưới dạng địa chỉ hoặc vị trí địa lý.
- Thuật toán tìm đường:
Khi máy chủ nhận yêu cầu tìm đường từ điểm bắt đầu đến điểm kết thúc dưới dạng địa chỉ (tên đường phố) hoặc tên địa điểm quan tâm (POI), dịch vụ tìm đường sẽ vào dịch vụ Geocoder để tìm ra điểm bắt đầu và điểm kết thúc đó nằm trên đoạn đường nào (edge_id), nằm ở vị trí tương đối nào trên đoạn đường đó. Từ đó sẽ tìm ra id của node bắt đầu và id của node kết thúc. Cuối cùng dựa vào thuật toán tìm đường ngắn nhất từ một node đến một node để tìm ra tuyến đường đi ngắn nhất từ điểm đầu đến điểm cuối.
Webmap ServerTiếp nhận các yêu cầu của webmap client, phân tích và chuyển cho các dịch vụ tương ứng để xử lý, sau đó chuyển dữ liệu kết quả trả về cho client.
4.2 Webmap Client
Với client là PC:
Webmap client là module được chạy tích hợp với SVG viewer, thực thi các chức năng sau:
- Xây dựng giao diện và tương tác với người sử dụng
- Kết nối với các dịch vụ: đưa ra các yêu cầu lên máy chủ dựa trên các yêu cầu của người dùng, lấy dữ liệu về và phân tích dữ liệu
- Chuyển đổi dữ liệu đồ họa và thông tin từ GML, XLS sang SVG để hiển thị trên bản đồ và sang dữ liệu text thông thường để hiển thị thông tin cho người dùng.
- Thực hiện các chức năng phía client của các dịch vụ WFS, GCS, DRS và RTS.
- Thực thi các chức năng cần thiết của một phần mềm GIS.
- Với client là thiết bị di động- Với các thiết bị có tích hợp sẵn SVG viewer: sử dụng SVG viewer sẵn có, thêm các packet mở rộng khả năng thao tác và hiển thị bản đồ.
- Với các thiết bị không tích hợp sẵn SVG viewer: cho client download SVG viewer được xây dựng trên cơ sở MIDP.
5. Kết luận
Hệ thống đang được Viện KHKT Bưu điện và Công ty VDC hoàn thiện, triển khai thử nghiệm tại website: www.smap.vdc.com.vn với các dịch vụ định vị, tra cứu thông tin, tìm đường trên dữ liệu TP. Hà Nội. Việc xây dựng hệ thống cung cấp dịch vụ GIS cho mạng Internet phục vụ thiết bị cầm tay thông minh đã đạt được các kết quả sau:
- Xây dựng được một nền tảng (framework) hệ thống chuẩn, phù hợp với các tiêu chuẩn quốc tế làm cơ sở để xây dựng và phát triển các dịch vụ. Framework này có khả năng tương tác dịch vụ và liênthông dữ liệu với các nhà cung cấp dịch vụ GIS khác trên Internet.
- Phát triển được phần mềm hiển thị, thao tác dữ liệu GIS có khả năng hoạt động tốt trên nền một số hệ điều hành thông dụng của các thiết bị cầm tay như: Windows Mobile, Symbian, PalmOS, Linux.
- Phát triển và cung cấp thử nghiệm một số dịch vụ chất lượng cao dựa trên công nghệ GIS cho các loại thiết bị truy nhập Internet như: PC, PDA, ĐTDĐ,…
Sản phẩm này chính là nền tảng cho việc phát triển thêm các dịch vụ mới như tra cứu thông tin, tìm đường, xác định vị trí cho các thiết bị cầm tay; sàn giao dịch thông tin nhà đất trên bản đồ; du lịch; giaothông; quản lý địa chính, tài nguyên trên Web; tra cứu các điểm cung cấp dịch vụ.