LỜI MỞ ĐẦU
Ngày nay thuật ngữ Hệ thống thông tin địa lý (GIS – Geography InFormation System) không còn xa lạ với những người làm việc trong lĩnh vực tin học vì lợi ích thực tế và những hứa hẹn của GIS trong tương lai. Công nghệ GIS có ứng dụng trong rất nhiều lĩnh vực như: giao thông vận tải, quân sự, quản lý đô thị, quản lý hệ thống viễn thông, thuỷ lợi Một hệ thống GIS hoàn chỉnh kết hợp với kĩ thuật truyền thông và điện tử, một công ty vận tải biển có thể biết vị trí các con tàu của mình với độ chính xác cao và được cập nhật liên tục hành trình. Hệ thống GIS được trang bị những luật suy diễn đúng đắn có thể đưa ra các dự đoán về ảnh hưởng của một dự án với môi trường trong tương lai nếu được tiến hành và từ đó đưa ra quyết định nên hay không nên tiến hành dự án đó. Điều quan trọng là các thao tác đó được thể hiện trên một giao diện bản đồ thân thiện nhằm đem lại cho người sử dụng một cái nhìn trực quan nhất cho mọi câu hỏi đặt ra khi tác nghiệp.
Từ các lợi ích to lớn của GIS, em đã đi vào nghiên cứu các thế mạnh, khả năng của GIS với ước muốn xây dựng một chương trình tra cứu thông tin địa lý biển để công việc tác nghiệp của các ngành có sử dụng bản đồ trở nên hiệu quả hơn.
MỤC LỤC
Nội dung Trang
LỜI MỞ ĐẦU 3
PHẦN I: HỆ THỐNG THÔNG TIN ĐỊA LÝ GIS VÀ ỨNG DỤNG TRONG QUẢN LÝ DỮ LIỆU BẢN ĐỒ SỐ
1. Khái niệm hệ thống thông tin địa lý (GIS) 4
2. Các phép chiếu không gian của GIS 7
3. Cơ sở dữ liệu trong hệ thống thông tin địa lý 11
4. Các phương pháp xây dựng bản đồ số 17
5. Khả năng làm việc của GIS 22
6. Các lĩnh vực ứng dụng GIS 23
PHẦN II: KIẾN TRÚC CỦA CHƯƠNG TRÌNH ỨNG DỤNG GIS
1. Hệ quản trị cơ sở dữ liệu GIS 27
2. Kiến trúc của chương trình ứng dụng GIS 31
PHẦN III: GIẢI PHÁP SỐ HOÁ VÀ TỔ CHỨC DỮ LIỆU BẢN ĐỒ VỊNH BẮC BỘ (VBB)
1. Giải pháp số hoá và tổ chức bản đồ số VBB 34
PHẦN IV: GIỚI THIỆU VỀ MAPINFO, MAPX VÀ TỔ CHỨC DỮ LIỆU BẢN ĐỒ
1. Giới thiệu về MAPINFO 38
2. Giới thiệu về MAPX 39
3. Cách thức tổ chức dữ liệu bản đồ của MAPINFO 43
PHẦN V: PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH
1. Phân tích các yêu cầu đặt ra cho chương trình 48
2. Phân tích chức năng nhận tín hiệu GPS 50
3. Phân tích và thiết kế chương trình 60
4. Thiết kế module của chương trình 71
KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77
77 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2943 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Ứng dụng công nghệ GIS xây dựng hệ thống thông tin địa lý biển Vịnh Bắc Bộ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t với độ phân giải cao.
Để số hoá các bản đồ giấy bằng bàn số hoá, nội dung phương pháp này đã được trình bầy trong phần I.4. Trong phương pháp này điều quan trọng nhất là phải lựa chọn các điểm mốc phù hợp để thực hiện cố định bản đồ giấy trong quá trình mã hoá đồng thời xác định hệ quy chiếu hợp lý. Trên các bản đồ, đối tượng thể hiện có toạ độ chính xác nhất đó là các đèn biển do đó để cố định bản đồ giấy em lựa chọn các đèn biển làm các điểm mốc qua đó số hoá các đối tượng khác có vị trí tương đối với các đèn biển. Sau đó thực hiện chỉnh sửa các đối tượng trên bản đồ số bằng phương pháp xác định biên bản đồ. Trước hết các bản đồ giấy được quét về dạng ảnh số bằng máy quét có độ phân giải cao, sau đó dùng MapInfo Professional import các ảnh số về dạng Raster. Để có thể chỉnh sửa các sai số của bản đồ được số hoá bằng bàn số hoá so với bản đồ giấy thực hiện trồng khít layer được số hoá và layer Raster bằng cách xác định sao cho các vị trí đèn biển trùng khít với nhau. Khi 2 layer này được trồng khít với nhau ta dễ dàng nhận ra các sai số của bản đồ số với bản đồ giấy và chỉnh sửa lại vị trí giữa chúng. Kết quả của quá trình chỉnh sửa là bản đồ số thu được có độ chính xác gần như tuyệt đối so với bản đồ giấy.
1.2. Tổ chức dữ liệu bản đồ số VBB
Với mục đích xây dựng hệ thống thông tin địa lý Biển Vịnh Bắc Bộ đi sâu vào lĩnh vực an toàn hàng hải, các đối tượng của Vịnh Bắc Bộ cần số hoá phục vụ cho quá trình tác nghiệp khi hành trình trên biển gồm :
Đối tượng hải đảo và đất liền : Các hòn đảo nằm rải rác trong vịnh và phần đất liền trải dài tiếp giáp với vịnh.
Đối tượng bãi lầy : là các khu vực có độ sâu từ 0m đến 2m so với mực nước biển, các khu vực này chỉ lộ lên trên mặt nước khi thuỷ chiều xuống mức thấp nhất. Phần lớn các khu vực bãi lầy là các bãi cát chạy dọc bờ biển.
Đối tượng đá ngầm : gồm các bãi đá ngầm nằm rải rác trong các khu vực khác nhau trong Vịnh Bắc Bộ.
Đối tượng chỉ số độ sâu : là chỉ số độ sâu tại các điểm khác nhau trong Vịnh Bắc Bộ, các chỉ số này được đo vào lúc thuỷ triều xuống thấp nhất trong ngày và lấy trung bình trong năm.
Đối tượng đường đẳng sâu : là các đường nối các điểm có chỉ số độ sâu tương đồng nhau nhằm thuận tiện cho quá trình hành trình trên biển.
Đối tượng lớp nước theo độ sâu : Các khu vực có độ sâu trong khoảng giới hạn sẽ được xác định là một vùng chung, các vùng này được phân biệt với nhau theo màu sắc thể hiện.
Đối tượng khu vực nguy hiểm : là các khu vực cần chú ý trong quá trình hành trình trên biển, các khu vực này có thể là khu vực có độ sâu chênh lệch cao so với vùng xung quanh hoặc các khu vực có dòng chảy nguy hiểm, các khu vực có chất nổ.
Đối tượng hệ thống công trình an toàn hàng hải : là hệ thống hải đăng trên các hòn đảo, dọc bờ biển và hệ thống phao tiêu dẫn đường vào các luồng lạch. Các đối tượng này đặc biệt quan trọng trong quá trình tác nghiệp hành trình trên biển.
Đối tượng xác tàu đắm : là các vị trí có tàu đắm nhưng không được trục vớt trong biển Vịnh Bắc Bộ, chúng có thể là các xác tàu nổi trên mặt nước, chìm dưới mặt nước với độ sâu nhỏ hơn 18m hoặc lớn hơn 18m.
Như vậy bản đồ số phục vụ yêu cầu an toàn hàng hải phải có tối thiểu 9 layer như sau :
Layer
Mục đích lưu trữ
Dao
Lưu trữ các đối tượng hải đảo, đất liền
Bailay
Lưu trữ các đối tượng bãi lầy
Dangam
Lưu trữ các khu vực có đá ngầm
Dosau
Lưu trữ các chỉ số độ sâu
Ctbien
Lưu trữ các đối tượng thuộc hệ thống an toàn hàng hải
Kvnguyhiem
Lưu trữ các khu vực nguy hiểm
Kvnuoc
Lưu trữ các khu vực phân lớp nước theo độ sâu
Dangsau
Lưu trữ các đường đẳng sâu
Taudam
Lưu trữ các vị trí tàu đắm
Ngoài ra còn các layer : layer Diadanh lưu trữ tên các đối tượng, layer Khung lưu trữ khung bản đồ và các đường kinh, vĩ tuyến nhằm mục đích tạo thuận lợi khi tác nghiệp trên bản đồ số.
Tuy nhiên do tỷ lệ các bản đồ được số hoá là khác nhau, các đối tượng được thể hiện khác nhau nên số layer mã hoá của các bản đồ cũng khác nhau.
Với bản đồ tổng quát Vịnh Bắc Bộ (tỷ lệ 1:1.000.000)
Số hiệu bản đồ : I-1000-01
Phạm vi thể hiện :- Kinh độ :1020 10’ 00’’ ÷ 1090 05’ 00’’
- Vĩ độ :150 00’ 00’’ ÷ 230 30’00’’
Bản đồ này có tỷ lệ lớn (1:1.000.000) nên không thể hiện các đối tượng bãi lầy và đá ngầm, khi số hoá bản đồ này thiếu 2 layer chứa các đối tượng kể trên.
Với bản đồ chi tiết vùng biển Hải Phòng (tỷ lệ 1:100.000)
Số hiệu bản đồ : IA-100-03
Phạm vi thể hiện :- Kinh độ :1060 32’ 00’’ ÷ 1070 10’ 40’
- Vĩ độ :200 12’ 00’’ ÷ 210 01’00’’
Đây là bản đồ có tỷ lệ nhỏ (1:100.000) các đối tượng được thể hiện đầy đủ do đó bản đồ này gồm đủ các layer như đã kể trên.
PHẦN IV
GIỚI THIỆU MAPINFO, MAPX VÀ TỔ CHỨC DỮ LIỆU BẢN ĐỒ
1.Giới thiệu về MAPINFO
Mapinfo là công ty chuyên các sản phẩm GIS, các sản phẩm của Mapinfo đã có mặt ở Việt Nam từ rất sớm, các chương trình ứng dụng GIS sử dụng bản đồ được số hoá trên nền Mapinfo chiếm tỷ lệ khá lớn.
Mapinfo gồm các sản phẩm nền cho phép làm các công việc như thu thập dữ liệu, thực hiện các phân tích không gian, thao tác, tích hợp dữ liệu từ nhiều nguồn khác nhau, tạo các loại bản đồ chuyên đề và đặc biệt là có thể số hoá dữ liệu như Mapinfo Professional, Mapinfo ProPress, MapBasic… Mapinfo cung cấp các công cụ phát triển như Mapinfo MapX… cho phép xây dựng các ứng dụng GIS độc lập dùng bản đồ số hoá trên nền Mapinfo từ các ngôn ngữ lập trình chuẩn trong môi trường Windows như : Visual Basic, Visual C++, Delphi, ...
Mapinfo lưu trữ dữ liệu theo hệ thống file riêng của mình gồm các file : *.tab, *.dat (*.mdb, *.aid,*.dbf), *.map, *.id, *.ind. Chức năng của từng loại file này sẽ được trình bầy trong phần tiếp theo.
Mapinfo dễ dàng Import dữ liệu về dạng chuẩn của Mapinfo từ các nguồn dữ liệu khác nhau như MGE, Arc/Info, Arc/View, CAD, v.v...Ngoài ra Mapinfo còn dễ dàng kết nối với các thiết bị ngoại vi phục vụ công việc số hoá bản đồ như bàn số hoá…
Mapinfo dễ dàng Export dữ liệu từ dạng chuẩn của Mapinfo về các định dạng dữ liệu khác nhau theo yêu cầu của người sử dụng như MGE, Arc/Info, Arc/View, CAD, Bitmap...
Mapinfo sử dụng công nghệ hướng đối tượng làm nền tảng, lợi dụng tính kế thừa nên giảm khối lượng lưu trữ và xử lý.
Mapinfo có ưu điểm có thể quản lý đồng thời CSDL không gian và CSDL phi không gian mà không phải cài bất kì phần mềm nào, điều này bảo đảm tính thống nhất của CSDL. Ngoài ra Mapinfo còn dễ dàng kết nối với các CSDL phi không gian khác thông qua ODBC.
2.Giới thiệu về Mapx
Mapx là công cụ phát triển thuộc họ các sản phẩm của Mapinfo cho phép xây dựng các ứng dụng GIS độc lập sử dụng bản đồ số hoá trên nền Mapinfo từ các ngôn ngữ lập trình chuẩn trong môi trường Windows như : Visual Basic, Visual C++, Delphi... Mapx được đóng gói dưới dạng một OCX 32 bit do đó các ứng dụng GIS có sử dụng Mapx chỉ chạy được trên nền Windows 32 bit. Mapx cho phép các ứng dụng GIS sử dụng nó thực hiện các chức năng hiển thị các layer, phóng to, thu nhỏ, dịch chuyển bản đồ, quay bản đồ, nhận dạng đối tượng, truy xuất thông tin đối tượng…ngoài ra còn có thể xử lý các sự kiện trên đối tượng như kích chuột, ấn phím. Để thực hiện được các khả năng đó Mapx xử lý thông qua hai đối tượng cơ bản là Geoset và Dataset.
2.1. Geoset
Geoset được tạo nên bởi các layer bản đồ số và các đặc trưng của nó. Ví dụ bản đồ số thành phố Hải Phòng có thể được coi là một Geoset được tạo nên bởi các layer đường giao thông, địa hình, nhà ở, hệ thống cống ngầm…Geoset là phương tiện để Mapx có thể tác động tới từng layer bản đồ số. Một ứng dụng GIS có sử dụng Mapx khi hiển thị và tác động tới các layer bản đồ trước hết phải khởi tạo một Geoset hoặc tải một Geoset đã tồn tại từ trước vào bộ nhớ. Geoset cung cấp các phương thức để có thể mở, hiển thị và tác động tới một layer bản đồ một cách thuận tiện. Khi một Geoset được xác lập các layer tạo nên Geoset đó sẽ được Mapx nhận dạng khi đó ta thực hiện các thao tác trên layer như với một đối tượng (Layer Object).
Object.geoset=” đường dẫn” : Mở một geoset đã tồn tại
Object.layers.add=” đường dẫn” : Thêm một layer vào Geoset hiện tại.
Tất cả các layer tạo nên bản đồ số được quản lý bởi Geoset, chúng có thể chia làm 3 loại cơ bản. Đó là layer ẩn (Hidelayer), layer lựa chọn (Selectablelayer), layer động (Animation layer).
Layer ẩn là các layer không được hiển thị trong nền bản đồ số hoặc được hiển thị nhưng không được tác động. Layer này được sử dụng trong trường hợp một layer không được hiển thị trên bản đồ chuyên đề hoặc layer đó là layer không cho phép tác động khi hiển thị. Để xác lập một layer về trạng thái ẩn sử dụng phương thức :
Object.layers(i).Visible=true : Xác lập layer thứ i của Geoset về trạng thái hiển thị (= false - không hiển thị).
Object.layers(“name”).Visible=true : Xác lập layer có tên “name” của Geoset về trạng thái hiển thị (= false - không hiển thị).
Layer lựa chọn là layer khi hiển thị trên nền bản đồ số có thể được tác động thông qua các trạng thái kích chuột hoặc được nhận dạng thông qua các phương thức lựa chọn của Mapx. Ví dụ trong bản đồ chuyên đề biển Vịnh Bắc Bộ khi muốn tác động duy nhất tới các đối tượng đảo chỉ xác lập trạng thái lựa chọn cho layer chứa các đối tượng đảo. Để xác lập trạng thái lựa chọn một layer ta sử dụng phương thức :
Object.layers(i).Selectable=true: Xác lập layer thứ i trong Geoset về trạng thái được lựa chọn (= false - huỷ về trạng thái ẩn).
Object.layers(“name”).Selectable=true: Xác lập layer có tên “name” trong Geoset về trạng thái được lựa chọn (= false - huỷ về trạng thái ẩn).
Layer động là layer được sử dụng khi thông tin trên layer được cập nhật liên tục một cách tuần tự như trong một ứng dụng GIS thời gian thực. Ví dụ bài toán xây dựng một ứng dụng GIS cần cập nhật toạ độ vị trí của các con tàu từ hệ thống định vị toàn cầu GPS (Global Positioning System) sau đó hiển thị các vị trí đó trên nền bản đồ số. Các đối tượng được chứa trong layer động sẽ được vẽ lại nhanh hơn nhiều lần so với các layer còn lại. Khi một layer được xác lập là layer động nó sẽ được ưu tiên vẽ trên tất cả các layer còn lại không phụ thuộc vào thứ tự của layer đó trong geoset. Trong một geoset chỉ duy nhất tồn tại tối đa một layer động. Để xác lập layer về trạng thái layer động sử dụng phương thức :
Object.layers.AnimationLayer = layers(i): Xác lập layer thứ i trong geoset về trạng thái layer động.
Object.layers.AnimationLayer = nothing: Tắt bỏ trạng thái động của layer
2.2.DataSet
Dataset cung cấp các phương thức cho phép kết nối dữ liệu phi không gian với bản đồ số. Ngoài việc cung cấp các phương thức giúp liên kết dữ liệu phi không gian với các đối tượng đồ hoạ tương ứng trên bản đồ số Dataset còn cung cấp các phương thức để có thể cập nhật dữ liệu vào cơ sở dữ liệu thuộc tính nếu chúng được xây dựng và quản lý trên nền Mapinfo. Ví dụ khi có một cơ sở dữ liệu thuộc tính về các hòn đảo và muốn kết nối chúng với các đối tượng đảo tương ứng trên nền bản đồ số Mapx sẽ sử dụng các phương thức của layer Dataset. Để liên kết dữ liệu Dataset sử dụng phương thức :
Object.Datasets.add Type, Source, [name], [geofield], [Secondary geofield], [Bindlayer],[Fields],[Dynamic]
Với :
Tham số Type
Kiểu dữ liệu liên kết
miDataSetDAO
Dữ liệu Access
miDataSetODBC
Cơ sở dữ liệu ODBC
miDataSetUnbound
Mapx yêu cầu dữ liệu từ tệp tin chứa
miDataSetGlobalHandle
Bảng dữ liệu không giới hạn
miDataSetOLEData
Dữ liệu nguồn OLE
miDataSetLayer
Dữ liệu từ bảng của Mapinfo
miDataSetNotesQuery
Lotus Notes Query
miDataSetNotesView
Lotus Notes View
miDataSetDelphi
Dữ liệu sinh từ Delphi
miDataSetSafeArray
Dữ liệu mảng
2.3.Các phương thức khác
Bản thân Mapx cũng có các phương thức để hiển thị bản đồ số độc lập không phải thông qua các đối tượng Geoset và DataSet. Do không thông qua đối tượng quản lý layer (Geoset) và đối tượng liên kết dữ liệu (DataSet) nên các phương thức chỉ có thể hiển thị các layer bản đồ và không thể tác động trực tiếp vào các layer cũng như các thao tác liên kết dữ liệu. Tuy nhiên các phương thức này không phải khởi tạo thông qua một đối tượng khác do đó tốc độ thực hiện sẽ nhanh hơn. Các phương thức này cho phép phóng to, thu nhỏ bản đồ số, in bản đồ hay lựa chọn các công cụ tác động tới bản đồ số. Các phương thức có thể kể đến là :
Object.CurrentTool =type
Tham số Type
Công cụ lựa chọn
miCenterTool
Lựa chọn trung tâm
miPanTool
Công cụ di chuyển
miSelectTool
Công cụ lựa chọn
Nhiều tham số khác
MAPX
Geoset
DataSet
Phương thức #
HideLayer
Selectable layer
AnimationLayer
Label Layer
Liên kết dữ liệu
Cập nhật dữ liệu
Xuất dữ liệu
Phóng to, thu nhỏ
In bản đồ
Chọn công cụ
Mô hình tổng quan của Mapx
3.Cách thức tổ chức dữ liệu bản đồ của MAPINFO
Mapinfo sử dụng công nghệ hướng đối tượng làm nền tảng do đó đơn vị quản lý nhỏ nhất của Mapinfo là các đối tượng điểm. Mỗi đối tượng gồm các thông tin không gian và phi không gian được lưu trữ một cách riêng rẽ trong các file khác nhau. Tập hợp các đối tượng có đặc điểm giống nhau theo một tiêu chí của người dùng sẽ được đưa vào một layer. Dữ liệu về layer sẽ được lưu trữ trong các file khác nhau như:
Các file *.tab: lưu trữ cấu trúc của layer, khi xâm nhập dữ liệu của Mapinfo phải thông qua file này. Trong cấu trúc của mình phải tồn tại ít nhất một trường.
Các file *.dat (*.mdb, *.aid,*.dbf) : lưu trữ dữ liệu theo các danh sách liên kết.
Các file *.map : mô tả các đối tượng đồ hoạ, file này sẽ không tồn tại nếu trong layer không tồn tại một đối tượng nào.
Các file *.id : lưu trữ địa chỉ tham chiếu nhằm liên kết các đối tượng với dữ liệu của nó cũng như liên kết giữa dữ liệu không gian và phi không gian. File này cũng không tồn tại nếu như không có một đối tượng nào trong layer.
Các file *.ind : mỗi đối tượng khi được sinh ra sẽ được chương trình quản lý thông qua index và dữ liệu về index sẽ được lưu trữ trong file này, index file sẽ giúp tìm kiếm một đối tượng trong quá trình tìm kiếm.
Các layer của cùng một bản đồ chuyên đề được quản lý dưới dạng một Geoset (*.gst). Ví dụ bản đồ chuyên đề về hệ thống giao thông công cộng của thành phố Hải Phòng có thể coi là 1 Geoset được tạo thành từ các layer : layer nhà cửa, layer địa hình, layer đường bộ, layer đường sắt…
Dữ liệu đồ hoạ của Mapinfo gồm các dạng như : điểm, đường, vùng, hình chữ nhật, ellip và text ... chúng được lưu trữ như sau :
Nếu không tồn tại một dữ liệu đồ hoạ nào trong layer, Mapinfo sẽ lưu trữ duy nhất một bản ghi có nội dung
NONE
Dữ liệu điểm sẽ được lưu trữ bởi 2 thông số, một thông số về toạ độ X và thông số kia là toạ độ Y. Ngoài ra có thể lựa chọn dạng hiển thị của điểm thông qua SYMBOL, giá trị SYMBOL là một số tự nhiên ứng với thứ tự của kí hiệu trong bảng. Nếu giá trị SYMBOL bị bỏ trống khi đó chương trình sẽ sử dụng kí hiệu mặc định của Mapinfo.
POINT X Y
[ SYMBOL]
Dữ liệu đường được lưu trữ theo 4 thông số đó là toạ độ X, Y của 2 điểm tạo nên đường đó. Ngoài ra chúng ta có thể lựa chọn dạng hiển thị của đường thông qua tham số PEN. Nếu giá trị này bị bỏ trống chương trình sẽ hiển thị đường theo dạng mặc định mà Mapinfo đang sử dụng.
LINE X1 Y1 X2 Y2
[PEN]
Dữ liệu đường gấp khúc được lưu trữ dựa theo các thông số: số lượng điểm, toạ độ X, Y của mỗi điểm, dạng hiển thị của đường qua tham số PEN. Ngoài ra còn có tham số làm trơn đuờng SMOOTH, nếu giá trị SMOOTH càng lớn độ trơn đường càng cao.
PLINE numpts
X1 Y1
X2 Y2
:
[ PEN]
[SMOOTH]
Một đối tượng vùng có thể được tạo thành bởi một hoặc nhiều đường gấp khúc. Do đó để lưu trữ một đối tượng vùng chúng ta phải lưu trữ các đường gấp khúc tạo nên nó, với mỗi một đường gấp khúc cần lưu các tham số về toạ độ X, Y của từng điểm. Có thể lựa chọn dạng hiển thị của vùng qua tham số BRUSH và dạng hiển thị của đường biên qua tham số PEN. Nếu 2 tham số này không được xác lập chương trình sẽ sử dụng định dạng hiển thị của vùng và đường biên theo mặc định. Tham số CENTER X Y lưu trữ toạ độ trọng tâm của đối tượng vùng.
REGION # pgons
Numpts1
X1 Y1
X2 Y2
:
Numpts2
X1 Y1
X2 Y2
:
[ PEN]
[BRUSH]
[ CENTER X Y]
Một đối tượng cung được xác định thông qua một hình chữ nhật bao quanh cung có diện tích nhỏ nhất và các góc bắt đầu (a), góc kết thúc (b). Do đó một đối tượng cung được lưu trữ cùng các tham số về toạ độ đỉnh trên trái, đỉnh dưới phải của hình chữ nhật và độ lớn các góc bắt đầu (a) góc kết thúc (b), các góc được xác định theo chiều quay của kim đồng hồ. Tham số PEN xác lập dạng hiển thị của cung.
ARC X1 Y1 X2 Y2
a b
[PEN]
Một đối tượng TEXT được lưu trữ gồm một chuỗi kí tự mà nó thể hiện cùng với toạ độ các đỉnh trên trái, dưới phải của hình chữ nhật có diện tích nhỏ nhất bao quanh đối tượng TEXT đó. Có thể lựa chọn font chữ thể hiện cùng mầu sắc của đối tượng text qua thông số FONT. Nếu thông số này không được xác lập Mapinfo sẽ sử dụng dạng mặc định của mình để hiển thị đối tượng TEXT.
TEXT “ text string”
X1 Y1 X2 Y2
[FONT]
Một đối tượng là hình chữ nhật được lưu trữ qua các thông số về toạ độ các đỉnh trên trái, dưới phải của hình chữ nhật. Các tham số PEN và BRUSH xác định dạng thể hiện của hình chữ nhật. Nếu các tham số này không được thiết lập chương trình sẽ thể hiện theo dạng mặc định của Mapinfo.
REC X1 Y1 X2 Y2
[PEN]
[BRUSH]
Một đối tượng hình chữ nhật góc tròn được lưu trữ bằng các tham số chỉ toạ độ các đỉnh trên trái, dưới phải của hình chữ nhật và độ lớn góc vát (a). Các tham số PEN và BRUSH được xác lập để xác định dạng thể hiện của hình chữ nhật. Nếu các tham số này không được thiết lập chương trình sẽ thể hiện theo dạng mặc định của Mapinfo.
ROUNDREC X1 Y1 X2 Y2
a
[PEN]
[BRUSH]
Một đối tượng ELLIPSE được lưu trữ bằng các thông số xác định toạ độ các đỉnh trên trái, dưới phải của hình chữ nhật bao quanh ELLIPSE có diện tích nhỏ nhất. Các tham số PEN và BRUSH xác định dạng thể hiện của hình ELLIPSE. Nếu các tham số này không được thiết lập chương trình sẽ thể hiện theo dạng mặc định của Mapinfo.
ELLIPSE X1 Y1 X2 Y2
[PEN]
[BRUSH]
Các tham số PEN, BRUSH, SYSBOL, FONT được xác định như sau :
Tham số PEN thường được sử dụng để xác định dạng thể hiện của các đường hoặc các đường biên của vùng. Cấu trúc tham số như sau :
PEN= PEN (width, pattern, style, color)
Tham số BRUSH được sử dụng để xác định dạng thể hiện của vùng. Cấu trúc của tham số này gồm :
BRUSH= BRUSH (pattern, forecolor, backcolor)
Tham số SYSBOL được thiết lập để xác định dạng thể hiện của điểm.Cấu trúc của tham số này gồm :
SYSBOL= SYSBOL (number, color, size)
Tham số FONT thiết lập để xác định dạng thể hiện của đối tượng TEXT. Cấu trúc của tham số này gồm :
FONT=FONT(“”, style, size, forecolor [, back color])
PHẦN V
PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH
1. Phân tích các yêu cầu đặt ra cho chương trình
Trong chương trình ứng dụng GIS CSDL là thành phần quan trọng nhất, có thể coi đây là trọng tâm của chương trình. Với chương trình ứng dụng GIS bất kì CSDL bao gồm CSDL không gian (CSDL đồ hoạ) và CSDL phi không gian (CSDL thuộc tính), chúng có thể được quản trị song song trên cùng một hệ quản trị CSDL hoặc quản trị độc lập trên các hệ quản trị CSDL khác nhau tuỳ thuộc theo yêu cầu và thiết kế của chương trình.
Với bài toán xây dựng hệ thống thông tin địa lý biển Vịnh Bắc Bộ, CSDL của chương trình gồm CSDL đồ hoạ các đối tượng và CSDL thuộc tính tương ứng của các đối tượng đó. Tuy nhiên các đối tượng lại có đặc điểm là ít thay đổi theo thời gian như vậy CSDL đồ hoạ có thể coi là không đổi. Do đó tính độc lập giữa CSDL đồ hoạ và thuộc tính là lớn. Nhằm tạo khả năng linh hoạt trong quá trình xử lý dữ liệu chương trình được xây dựng trên cơ sở của kiến trúc đối ngẫu.
Theo đó CSDL của chương trình gồm 2 mảng riêng biệt, các dữ liệu đồ hoạ được lưu trữ bằng phần mềm quản lý dữ liệu MAPINFO qua hệ thống gồm các tệp tin : *.tab, *.map, *.ID, *.Dat…
Ví dụ : thông tin đồ hoạ về đảo, đất liền thuộc layer DAO được lưu trữ qua hệ thống 4 tệp tin sau :
Dao.tab : Lưu trữ cấu trúc của layer Dao. Khi tác động các đối tượng của layer DAO trước hết chương trình phải đọc tệp tin này để xác định cấu trúc layer.
Dao.ID : Lưu trữ địa chỉ tham chiếu của các đối tượng thuộc layer đảo. Các địa chỉ tham chiếu này được sử dụng trong quá trình tác động tới từng đối tượng đồ hoạ riêng biệt.
DAO.map : Mô tả đặc điểm chi tiết các đối tượng đồ hoạ thuộc layer DAO để có thể xử lý khi hiển thị và cập nhật đối tượng.
DAO.dat : tệp tin này liên kết các đối tượng thuộc layer DAO theo danh sách móc nối.
Tương tự như vậy thông tin đồ họa của các đối tượng thuộc các layer Bailay, Ctbien… cũng được lưu trữ theo hệ thống tệp tin tương ứng.
Điều này giúp chúng ta dễ dàng quản lý, hiển thị cũng như cập nhật thông tin cho các đối tượng thuộc các layer khác nhau. Đây chính là thế mạnh của hệ quản trị CSDL GIS so với các hệ quản trị CSDL thường gặp.
CSDL thuộc tính được lưu trữ bằng hệ quản trị CSDL Access thông qua tệp tin GISOS.mdb nhằm tăng sự linh hoạt với CSDL đồ hoạ, ngoài ra điều này cũng giúp cho quá trình cập nhật các thông tin thuộc tính cho các đối tượng cũng như tìm kiếm, truy vấn thông tin được thực hiện nhanh chóng và dễ dàng hơn khi tích hợp chúng với CSDL đồ hoạ.
MapX
Giao diện chương trình
PM quản lý dữ liệu Mapinfo
Hệ quản trị CSDL Access
CSDL Hình Học
Tệp tọa độ
Tệp tôpô
CSDL Thuộc Tính
Bảng thuộc tính
Tệp tôpô
Mô hình của hệ thống thông tin địa lý biển VBB
2. Phân tích chức năng nhận tín hiệu GPS
Nội dung chức năng này của chương trình cho phép nhận tín hiệu từ vệ tinh thông qua máy thu GPS khi kết nối máy này với máy tính, hiển thị toạ độ thu được qua quá trình phân tích tín hiệu GPS lên bản đồ số theo những khoảng thời gian đã được định trước.
2.1. GPS và tín hiệu GPS
2.1.1.GPS là gì
Hệ Định vị Toàn cầu (Global Positioning System - GPS) là hệ dẫn đường dựa trên một mạng lưới 24 quả vệ tinh được đặt trên quỹ đạo không gian.
(Các hệ thống dẫn đường truyền thống hoạt động dựa trên các trạm phát tín hiệu vô tuyến điện. Được biết nhiều nhất là các hệ thống có tên gọi LORAN – LOng RAnge Navigation – hoạt động ở giải tần 90-100kHz chủ yếu dùng cho hàng hải, hay TACAN – TACtical Air Navigation – dùng cho quân đội Mỹ và biến thể với độ chính xác thấp VOR/DME – VHF Omnidirectional Range/Distance Measuring Equipment – dùng cho hàng không dân dụng. Gần như đồng thời với Mỹ phát triển GPS, Liên Xô cũng phát triển một hệ thống tương tự với tên gọi GLONAS. Hiện nay Cộng đồng Châu Âu đang phát triển hệ dẫn đường vệ tinh của mình mang tên Galileo. Chú ý rằng cả GPS và GLONAS đều được phát triển trước hết cho mục đích quân sự. Nên mặc dù chúng có cho dùng dân sự nhưng không hệ nào đưa ra sự đảm bảo tồn tại liên tục và độ chính xác. Vì thế chúng không thoả mãn được những yêu cầu an toàn cho dẫn đường dân sự hàng không và hàng hải, đặc biệt là tại những vùng và tại những thời điểm có hoạt động quân sự của những quốc gia sở hữu các hệ thống đó. Chỉ có hệ thống dẫn đường vệ tinh châu Âu GALILEO (đang được xây dựng) ngay từ đầu đã đáp ứng các yêu cầu nghiêm ngặt của dẫn đường và định vị dân sự.)
GPS ban đầu chỉ dành cho các mục đích quân sự, nhưng từ năm 1980 đã được sử dụng dân sự. GPS hoạt động trong mọi điều kiện thời tiết, mọi nơi trên trái đất, 24 giờ một ngày. Không mất phí thuê bao hoặc mất tiền trả cho việc thiết lập sử dụng GPS.
2.1.2.GPS hoạt động thế nào
Các vệ tinh GPS bay vòng quanh trái đất hai lần trong một ngày theo một quỹ đạo rất chính xác và phát tín hiệu có thông tin xuống trái đất. Các máy thu GPS nhận thông tin này và bằng phép tính lượng giác tính được chính xác vị trí của người dùng. Về bản chất máy thu GPS so sánh thời gian tín hiệu được phát đi từ vệ tinh với thời gian nhận được chúng. Sai lệch về thời gian cho biết máy thu GPS ở cách vệ tinh bao xa. Rồi với nhiều quãng cách đo được tới nhiều vệ tinh máy thu có thể tính được vị trí của người dùng và hiển thị lên bản đồ điện tử của máy. Máy thu GPS phải khoá được với tín hiệu của ít nhất ba quả vệ tinh để tính ra vị trí hai chiều (2D, kinh độ và vĩ độ) và để theo dõi được chuyển động. Với bốn hay nhiều hơn số quả vệ tinh trong tầm nhìn thì máy thu có thể tính được vị trí ba chiều (3D, kinh độ, vĩ độ và độ cao). Một khi vị trí người dùng đã tính được thì máy thu GPS có thể tính các thông tin khác, như tốc độ, hướng chuyển động, bám sát di chuyển, khoảng hành trình, quãng cách tới điểm đến, thời gian mặt trời mọc, lặn và nhiều thứ khác nữa.
2.1.3.GPS chính xác bao nhiêu ?
Các máy thu GPS hôm nay cực kì chính xác, nhờ vào thiết kế nhiều kênh hoạt động song song của chúng. Các máy thu 12 kênh song song (của Garmin) nhanh chóng khoá vào các quả vệ tinh khi mới bật lên và chúng duy trì chắc chắn liên hệ này, thậm chí trong tán lá rậm rạp hoặc thành phố với các toà nhà cao tầng. Tình trạng nhất định của khí quyển và các nguồn gây sai số khác có thể ảnh hưởng tới độ chính xác của máy thu GPS. Các máy thu GPS có độ chính xác trung bình trong vòng 15 mét.
Các máy thu mới hơn với khả năng WAAS (Hệ Tăng Vùng Rộng, Wide Area Augmentation System) có thể tăng độ chính xác trung bình tới dưới 3 mét. Không cần thêm thiết bị hay mất phí để có được lợi điểm của WAAS. Người dùng cũng có thể có độ chính xác tốt hơn với GPS Vi sai (Differential GPS, DGPS) sửa lỗi các tín hiệu GPS để có độ chính xác trong khoảng 3 đến 5 mét. Cục Phòng vệ Bờ biển Mỹ vận hành dịch vụ sửa lỗi này. Hệ thống bao gồm một mạng các đài thu tín hiệu GPS và phát tín hiệu đã sửa lỗi bằng các máy phát hiệu. Để thu được tín hiệu đã sửa lỗi, người dùng phải có máy thu hiệu vi sai bao gồm cả ăn-ten để dùng với máy thu GPS của họ.
Hệ thống vệ tinh GPS gồm 24 quả vệ tinh làm nên vùng không gian GPS trên quỹ đạo 12 nghìn dặm cách bề mặt trái đất. Chúng chuyển động ổn định, hai vòng quỹ đạo trong khoảng thời gian gần 24 giờ. Các vệ tinh này chuyển động với vận tốc 7 nghìn dặm một giờ.
Các vệ tinh được nuôi bằng năng lượng mặt trời. Chúng có các nguồn pin dự phòng để duy trì hoạt động khi chạy khuất vào vùng không có ánh sáng mặt trời. Các tên lửa nhỏ gắn ở mỗi quả vệ tinh giữ chúng bay đúng quỹ đạo đã định.
2.1.4.Tín hiệu GPS - Cấu trúc tín hiệu GPS
Các vệ tinh GPS phát hai tín hiệu vô tuyến công suất thấp giải L1 và L2. (Giải L là phần sóng cực ngắn của phổ điện từ trải rộng từ 0.39 tới 1.55GHz). GPS dân sự dùng tần số L1 1575.42 MHz trong giải UHF. Tín hiệu truyền trực thị, có nghĩa là chúng sẽ xuyên qua mây, thuỷ tinh và nhựa nhưng không qua phần lớn các đối tượng cứng như núi và nhà. Tín hiệu GPS chứa ba mẩu thông tin khác nhau – mã giả ngẫu nhiên, dữ liệu thiên văn và dữ liệu lịch. Mã giả ngẫu nhiên đơn giản chỉ là mã định danh để xác định được quả vệ tinh nào là phát thông tin nào. Có thể nhìn số hiệu của các quả vệ tinh trên trang vệ tinh của máy thu Garmin để biết nó nhận được tín hiệu của quả nào. Dữ liệu thiên văn cho máy thu GPS biết quả vệ tinh ở đâu trên quỹ đạo ở mỗi thời điểm trong ngày. Mỗi quả vệ tinh phát dữ liệu thiên văn chỉ ra thông tin quỹ đạo cho vệ tinh đó và mỗi vệ tinh khác trong hệ thống. Dữ liệu lịch được phát đều đặn bởi mỗi quả vệ tinh, chứa thông tin quan trọng về trạng thái của vệ tinh (lành mạnh hay không), ngày giờ hiện tại. Phần này của tín hiệu là cốt lõi để phát hiện ra vị trí. Các máy nhận tín hiệu GPS phần lớn được thiết kế kết nối với máy tính qua cổng RS232 (cổng com).
Một trong những kỹ thuật đo GPS đã và đang được ứng dụng rộng rãi hiện nay là DGPS (Differential Global Positioning System – Phép đo GPS vi sai). Dữ liệu GPS khi đó sẽ được định dạng theo chuẩn GPGGA, cấu trúc 1 frame dữ liệu GPS có dạng :
$GPGGA,hhmmss.ss,llll.ll,r,yyyyy.yy,r,a,qq,b.b,c.c,M,d.d,M,e.e,xxxx*hh
Đoạn dữ liệu
Ý nghĩa
$GPGGA
Frame dữ liệu nhận được theo chuẩn GPGGA
hhmmss.ss
Thời gian xác lập tín hiệu theo giờ GMT
llll.ll
Xác định vĩ độ
R
N - Bắc; S – Nam; W – Tây; E – Đông.
Yyyyy.yy
Xác định kinh độ
A
Xác định chất lượng tín hiệu:
-0 = Tín hiệu lỗi
-1 = tín hiệu nhận đựơc theo phép đo GPS thường
-2 = Tín hiệu nhận được theo phép đo GPS vi sai
qq
Số lượng vệ tinh đã khoá tín hiệu
c.c
Thông tin về quĩ đạo vệ tinh
M
Định đơn vị
d.d
Thông tin về vệ tinh
e.e
Thông tin về tín hiệu
xxxx*hh
Kiểm tra tín hiệu
Theo cách phân tích dữ liệu chuẩn GPGGA 1 frame dữ liệu được chia thành 15 đoạn dữ liệu khác nhau, mỗi đoạn được xác định và ngăn cách nhau bởi dấu “,“ .
Vd khi giải mã đoạn tín hiệu :
$GPGGA,011123.80,2049.5430423,N,10642.0399564,E,2,09,1.1,-2.34,M,-17.60,M,6.0,0647*4B
$GPGGA : chỉ rõ tín hiệu nhận được theo chuẩn $GPGGA.
011123.80 : thời gian tín hiệu được xác lập là 1giờ 11 phút 23 giây 80 giờ GMT khi đổi sang giờ Việt Nam là 8 giờ 11 phút 23 giây 80.
2049.5430423: Vĩ độ của đối tượng được xác định là 20 độ 49 phút 54.30423 giây.
N: Vĩ độ bắc.
10642.0399564: kinh độ của đối tượng được xác định là 106 độ 42 phút 03.99564 giây.
E: Kinh độ đông.
2 : Tín hiệu nhận được theo kĩ thuật đo DGPS (phép đo GPS vi sai)
09 : Tín hiệu nhận được đã được khoá với 9 vệ tinh.
Các thông số còn lại liên quan tới hướng và tình trạng của vệ tinh.
2.2. Phương pháp đọc tín hiệu GPS từ máy thu GPS qua cổng RS232
Trong môi trường Windows việc truyền thông trực tiếp qua cổng com (RS232) được thực hịên qua một ActiveX có sẵn là Microsoft Comm Control. ActiveX này được lưu trữ trong file MSCOMM32.OCX . Để sử dụng Microsoft Comm Control chỉ cần bổ xung ActiveX này vào Basic Project thông qua menu Project > Components như các ActiveX đơn thuần khác. Sau đây là một số thuộc tính của đối tượng Microsoft Comm Control được sử dụng trong chương trình đọc và phân tích tín hiệu nhận được thông qua máy thu GPS.
Thuộc tính
Mô tả
CommPort
Số thứ tự cổng truyền thông
Input
Nhận kí tự từ bộ đệm
Output
Xuất kí tự qua cổng nối tiếp
PortOpen
Đóng / Mở cổng tuyền thông
Settings
Xác định các tham số truyền thông
Settings:
Xác định các tham số cho cổng nối tiếp. Cú pháp:
MSComm1.Settings = ParamString
MSComm1: tên đối tượng
ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S"
BBBB: tốc độ truyền dữ liệu (bps) trong đó các giá trị hợp lệ là:
110
2400
38400
300
9600 (mặc định)
56000
600
14400
188000
1200
19200
256000
P: kiểm tra chẵn lẻ, với các giá trị:
Giá trị
Mô tả
O
Odd (kiểm tra lẻ)
E
Even (kiểm tra chẵn)
M
Mark (luôn bằng 1)
S
Space (luôn bằng 0)
N
Non (không kiểm tra)
D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit .
S: số bit stop (1, 1.5, 2).
VD: MSComm1.Settings = "9600,O,8,1" sẽ xác định tốc độ truyền 9600bps,
kiểm tra parity lẻ với 1 bit stop và 8 bit dữ liệu.
CommPort:
Xác định số thứ tự của cổng truyền thông. Cú pháp:
MSComm1.CommPort = PortNumber
PortNumber là giá trị nằm trong khoảng từ 1 tới 99, mặc định là 1.
VD: MSComm1.CommPort = 1 xác định mở dữ liệu cổng COM1
PortOpen:
Ðặt trạng thái hay kiểm tra trạng thái đóng / mở của cổng nối tiếp. Nếu dùng thuộc tính này để mở cổng nối tiếp thì phải sử dụng trước 2 thuộc tính Settings và CommPort. Cú pháp :
MSComm1.PortOpen = True | False
Giá trị xác định true để mở cổng và false để đóng cổng đồng thời xoá toàn bộ nội dung trong bộ đệm truyền và nhận.
VD: Mở cổng COM1 với tốc độ truyền 9600 bps
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
Các thuộc tính nhận dữ liệu:
Input:
Nhận một chuỗi ký tự từ bộ đệm nhận và xoá khỏi bộ đệm nhận. Cú pháp:
InputString = MSComm1.Input
Thuộc tính này kết hợp với InputLen xác định số ký tự đọc vào. Nếu InputLen = 0 thì sẽ đọc toàn bộ dữ liệu có trong bộ đệm.
InBufferCount:
Số ký tự có trong bộ đệm nhận. Cú pháp:
Count = MSComm1.InBufferCount
Thuộc tính này cũng được dùng để xoá bỏ bộ đệm nhận bằng cách gán giá trị 0.
MSComm1.InBufferCount = 0
InBufferSize:
Đặt và xác định kích thước bộ đệm nhận (tính bằng byte). Cú pháp:
MSComm1.InBufferCount = NumByte
Giá trị mặc định là 1024 byte. Kích thước bộ đệm này phải đủ lớn để tránh tình trạng mất dữ liệu.
VD: Ðọc toàn bộ nội dung trong bộ đệm nhận nếu có dữ liệu
MSComm1.InputLen = 0
If MSComm1.InBufferCount 0 Then
InputString = MSComm1.Input
End If
Các thuộc tính xuất dữ liệu:
Bao gồm các thuộc tính Output, OutBufferCount và OutBufferSize, chức năng của các thuộc tính này giống như các thuộc tính nhập.
CDTimeout:
Ðặt và xác định khoảng thời gian lâu nhất (tính bằng ms) từ lúc phát hiện sóng mang cho tới lúc có dữ liệu. Nếu quá khoảng thời gian này mà vẫn chưa có dữ liệu thì sẽ gán thuộc tính CommEvent là CDTO (Carrier Detect Timeout Error) và tạo sự kiện OnComm.Cú pháp:
MSComm1.CDTimeout = NumTime DSRTimeout:
Xác định thời gian chờ tín hiệu DSR trước khi xẩy ra sự kiện OnComm.
CTSTimeout:
Ðặt và xác định khoảng thời gian lớn nhất (tính bằng ms) đợi tín hiệu CTS trước khi đặt thuộc tính CommEvent là CTSTO và tạo sự kiện OnComm. Cú pháp:
MSComm1.CTSTimeout = NumTime
DSRTimeout:
Xác định thời gian chờ tín hiệu DSR trước khi xẩy ra sự kiện OnComm.
CTSTimeout:
Ðặt và xác định khoảng thời gian lớn nhất (tính bằng ms) đợi tín hiệu CTS trước khi đặt thuộc tính CommEvent là CTSTO và tạo sự kiện OnComm. Cú pháp:
MSComm1.CTSTimeout = NumTime
CTSHolding:
Xác định đã có tín hiệu CTS hay chưa, tín hiệu này dùng cho quá trình bắt tay bằng phần cứng (cho biết DCE sẵn sàng nhận dữ liệu) trả về giá trị True hay False.
DSRHolding:
Xác định trạng thái DSR (báo hiệu sự tồn tại của DCE), trả về giá trị True hay False.
CDHolding:
Xác định trạng thái CD, trả về giá trị True hay False.
DTREnable:
Ðặt hay xoá tín hiệu DTR để báo sự tồn tại của DTE. Cú pháp:
MSComm1.DTREnable = True | False
RTSEnable:
Ðặt hay xoá tín hiệu RTS yêu cầu truyền dữ liệu đến DTE. Cú pháp:
MSComm1.RTSEnable = True | False
NullDiscard:
Cho phép nhận các ký tự NULL (rỗng) hay không (= True: cấm). Cú pháp:
MSComm1.NullDiscard = True | False
SThreshold:
Số byte trong bộ đệm truyền làm phát sinh sự kiện OnComm. Nếu giá trị này bằng 0 thì sẽ không tạo sự kiện OnComm. Cú pháp: MSComm1.SThreshold = NumChar
HandShaking:
Chọn giao thức bắt tay khi thực hiện truyền dữ liệu. Cú pháp:
MSComm1.HandShaking = Protocol
Các giao thức truyền bao gồm:
Giao thức
Giá trị
Mô tả
ComNone
0
Không bắt tay (mặc định)
ComXon/Xoff
1
Bắt tay phần mềm
ComRTS
2
Bắt tay phần cứng
ComRTSXon/Xoff
3
Bắt tay phần cứng và phần mềm
CommEvent:
Trả về các lỗi truyền thông, các sự kiện xẩy ra tại cổng nối tiếp
Lỗi
Giá trị
Mô tả
ComBreak
1001
Nhận tín hiệu Break
ComCTSTO
1002
Carrier Detect Timeout
ComFrame
1004
Lỗi khung
ComOver
1006
Phần cứng không đọc ký tự trước khi gửi
ComCDTO
1007
Carrier Detect Timeout
ComRxOver
1008
Tràn bộ đệm nhận
ComRxParity
1009
Lỗi parity
ComTxFull
1010
Tràn bộ đệm truyền
3. Phân tích và thiết kế chương trình
3.1. Biểu đồ phân cấp chức năng
Hệ Thống thông tin
Hiển thị bản đồ
Cập nhật bản đồ
Tìm kiếm và hiển thị
Các tiện ích bản đồ
Mở bản đồ
Phóng to, thu nhỏ
Di chuyển bản đồ
Hiện bản đồ theo layer
Cập nhật thông tin đối tương
Thêm đối tượng mới
Xoá bỏ đối tượng
Tìm đối tượng theo yêu cầu
Hiển thị thông tin đối tượng
Di chuyển nhanh
Đo khoảng cách
Đánh dấu toạ độ
Phân quyền
Thêm người dùng cấp II
Xoá người dùng cấp II
Thay đổi password
Phân tích tín hiệu GPS
Cấu trúc chương trình gồm 5 khối chức năng cơ bản :
Khối hiển thị bản đồ : với chức năng hiển thị bản đồ số theo các yêu cầu khác nhau.
Khối cập nhật bản đồ: có chức năng cập nhật dữ liệu không gian và phi không gian.
Khối tìm kiếm và hiển thị: có chức năng tìm kiếm và hiển thị thông tin các đối tượng trên bản đồ số.
Khối các tiện ích bản đồ : với chức năng cung cấp cho người dùng những tiện ích khi thao tác với bản đồ số.
Khối phân quyền : với chức năng phân quyền hạn của người sử dụng chương trình.
Trong chế độ phân quyền người dùng được phân thành 3 cấp khác nhau. Người dùng cấp I (mặc định là administrator) là người dùng duy nhất có khả năng thêm hoặc xoá một người dùng cấp II. Thông tin về người dùng cấp I, II sẽ được lưu trữ trong kho dữ liệu người dùng và được lấy ra so sánh khi người dùng đăng nhập hệ thống. Để bảo đảm an toàn dữ liệu các thông tin này trước khi được lưu trữ trong CSDL người dùng đã được mã hoá bằng hàm băm RSA tự xây dựng. Người dùng cấp I, II có thể thực hiện cả 5 khối chức năng của chương trình. Người dùng cấp III là người dùng không cần đăng nhập hệ thống khi sử dụng chương trình và chỉ có thể sử dụng 3 khối chức năng cơ bản : khối chức năng hiển thị bản đồ, khối chức năng tìm kiếm và hiển thị, khối chức năng tiện ích bản đồ.
3.2.Biểu đồ luồng dữ liệu
3.2.1. Biểu đồ mức ngữ cảnh
Người dùng cấp II
Người dùng cấp I
Người dùng cấp III
0
Hệ thống thông tin địa lý biển
(1)
(3)
(5)
(4)
(6)
(6)
(2))
(3)
(3)
(6)
(5)
(2)
1) Yêu cầu tạo, xoá ngưòi dùng cấp II.
2) Yêu cầu cập nhật thông tin bản đồ.
3) Yêu cầu tìm kiếm, hiển thị thông tin và thực hiện các tiện ích bản đồ.
4) Thực hịên tạo, xoá người dùng cấp II.
5) Thực hiện yêu cầu cập nhật thông tin bản đồ.
6) Thực hiện các yêu cầu tìm kiếm, hiển thị thông tin và các tiện ích bản đồ.
3.2.2.Biểu đồ mức đỉnh
1) Các yêu cầu hiển thị bản đồ từ người sử dụng .
2) Các kết quả trả về từ chương trình tương ứng với các yêu cầu hiển thị của người dùng.
3) Các yêu cầu cập nhật bản đồ từ người sử dụng cấp Ivà II
4) Các kết quả trả về từ chương trình tương ứng với các yêu cầu cập nhật của người sử dụng .
5) Các yêu cầu tìm kiếm đối tượng và hiển thị thông tin về đối tượng của người sử dụng .
6) Đối tượng được tìm thấy hoặc thông tin về đối tượng được hiển thị theo các yêu cầu của người sử dụng .
7) Các yêu cầu sử dụng các tiện ích bản đồ từ người sử dụng .
8) Các kết quả trả về từ chương trình tương ứng với các yêu cầu cập nhật của người sử dụng .
10) Các yêu cầu cập nhật thông tin người sử dụng từ người dùng cấp I hoặc II
11) Các kết quả trả về từ chương trình tương ứng với các yêu cầu cập nhật của người sử dụng .
3.2.3.Biểu đồ mức dưới đỉnh
2.2.3.1. Khối hiển thị bản đồ
1) Yêu cầu mở bản đồ từ người sử dụng, có thể đó là yêu cầu mở bản đồ VBB tỷ lệ 1:1.000.000 hoặc bản đồ biển Hải Phòng với tỷ lệ 1:100.000
2) Kết quả trả về là bản đồ được mở theo yêu cầu của người dùng
3) Yêu cầu thực hiện các công cụ bản đồ như phóng to, thu nhỏ …
4) Bản đồ được phóng to, thu nhỏ theo yêu cầu của người sử dụng.
5) Yêu cầu di chuyển bản đồ nhằm hiển thị phần bản đồ bị che khuất của người dùng.
6) Bản đồ được di chuyển để hiển thị vùng bị che khuất theo yêu cầu.
7) Yêu cầu hiện toàn bản đồ hay hiện một số layer cần thiết.
8) Bản đồ hiển thị theo các layer yêu cầu.
9) Quá trình kiểm tra kho CSDL bản đồ xem dữ liệu bản đồ hiện có có thể thực hiện được các yêu cầu của người dùng không.
10) Quá trình lấy các dữ liệu cần thiết cho quá trình xử lý.
3.2.3.2. Khối cập nhật bản đồ
Kho DL bản đồ
(10)
(2)
(1)
(7)
(8)
(7)
(8)
(9)
(5)
(6)
Kho DL thuộc tính
Người dùng cấpI,II
(2.1)
Cập nhật thông tin đối tượng
(2.3)
Xoá đối tượng
(2.2)
Thêm đối tượng mới
(3)
(4)
(11)
1) Yêu cầu cập nhật thông tin thuộc tính cho các đối tượng.
2) Quá trình cập nhật CSDL thuộc tính theo yêu cầu.
3) Quá trình lấy CSDL thuộc tính phù hợp với yêu cầu.
4) Kết quả trả về là thông tin thuộc tính được cập nhật.
5) Yêu cầu thêm đối tượng đồ hoạ trên bản đồ số.
6) Cập nhật CSDL đồ hoạ theo yêu cầu.
7) Quá trình lấy các đối tượng đồ hoạ từ CSDL phù hợp với yêu cầu.
8) Kết quả trả về là đối tượng mới được thêm trên bản đồ số.
9) Yêu cầu xoá đối tượng đồ hoạ trên bản đồ số.
10) Kết quả trả về là đối tượng được chọn bị xoá trên bản đồ số.
11) Kiểm tra trong CSDL thuộc tính xem có tồn tại dữ liệu thuộc tính về đối tượng muốn xoá, nếu có xoá dữ liệu về đối tượng đó trước khi xoá trong CSDL đồ hoạ.
3.2.3.3. Khối tìm kiếm và hiển thị Người dùng
(3.1)
Tìm đối tượng
(3.2)
Hiển thị đối tượng
Kho DLthuộc tính
Kho DL bản đồ
(1)
(2)
(3)
(4)
(7)
(8)
(10)
(9)
(6)
(5)
(11)
(12)
1) Yêu cầu tìm kiếm đối tượng (nhóm đối tượng) của người dùng.
2) Kết quả chương trình trả về gồm vị trí, thông tin của đối tượng.
3) Quá trình kiểm tra trong CSDL thuộc tính để xác định ID của đối tượng cần tìm (nhóm đối tượng cần tìm).
4) Kết quả trả về là ID của các đối tượng cần tìm.
5) Từ ID nhận được kiểm tra trong CSDL bản đồ để xác định đối tượng.
6) Đối tượng tìm kiếm sẽ được hiển thị trên nền bản đồ số.
7) Yêu cầu hiển thị thông tin của một đối tượng trên nền bản đồ.
8) Kết quả chương trình trả về là thông tin của đối tượng.
9) Quá trình kiểm tra trong CSDL bản đồ để xác định ID của đối tượng cần hiển thị thông tin (nhóm đối tượng cần tìm).
10) Kết quả trả về là ID của các đối tượng cần hiển thị.
11) Kiểm tra trong CSDL thuộc tính theo ID để xác định thông tin đối tượng.
12) Các thông tin của đối tượng sẽ được chương trình lấy ra hiển thị.
3.2.3.4. Khối các tiện ích bản đồ
Người dùng
Kho DL bản đồ
4.1
4.2
4.3
4.4
Máy thu GPS
Di chuyển nhanh
Đo khoảng cách
Đánh dấu điểm
Nhận tín hiệu GPS
(8)
(1)
(3)
(5)
(9)
(10)
(7)
(7)
(7)
(7)
(2)
(4)
(6)
(11)
(8)
(8)
(8)
1) Yêu cầu di chuyển nhanh bản đồ tới vị trí đã xác định.
2) Kết quả trả về của chương trình là bản đồ đã được di chuyển nhanh tới vị trí yêu cầu.
3) Yêu cầu đo khoảng cách từ 2 điểm bất kì trên bản đồ của người dùng.
4) Kết quả của quá trình đo được hiển thị.
5) Yêu cầu đánh dấu các toạ độ bất kì của người dùng.
6) Đối tượng đánh dấu sẽ được thêm vào bản đồ.
7) Quá trình kiểm tra kho dữ liệu bản đồ để lấy các dữ liệu cần thiết cho quá trình xử lý.
8) Dữ liệu được lấy ra phù hợp với các yêu cầu sử dụng .
9) Yêu cầu đọc tín hiệu từ máy thu GPS và hiển thị toạ độ đó lên bản đồ số.
10) Tín hiệu nhận được từ máy thu GPS qua cổng RS 232.
11) Tín hiệu sau khi được phân tích và hiển thị toạ độ tương ứng lên bản đồ số.
3.2.3.5.Khối phân quyền
Dữ liệu người dùng
(5.1)
Thêm người dùngcấp2
(5.3)
Thay đổi Password
(5.2)
Xoá
người dùngcấp2
Người dùng cấp I
Người dùng cấp II
Người dùng cấp I
Người dùng cấp II
(1)
(2)
(4)
(3)
(5)
(6)
(8)
(7)
(8)
(7)
(4)
(3)
(3)
(4)
1) Yêu cầu thêm người dùng cấp II từ người dùng cấp I.
2) Người dùng cấp II được thêm theo yêu cầu của người dùng cấp I.
3) Quá trình cập nhật dữ liệu người dùng theo các yêu cầu.
4) Quá trình lấy các dữ liệu người dùng phù hợp với yêu cầu.
5) Yêu cầu xoá người dùng cấp II từ người dùng cấp I.
6) Người dùng cấp II bị xoá theo yêu cầu của người dùng cấp I.
7) Yêu cầu thay đổi Password từ người dùng.
8) Password được thay đổi trong CSDL người dùng.
3.3.Cơ sở dữ liệu thuộc tính :
CSDL thuộc tính gồm các bảng dữ liệu lưu trữ thông tin thuộc tính của các đối tượng đồ hoạ tương ứng, cấu trúc của các bảng như sau :
Diadanh : Lưu trữ dữ liệu thuộc tính về đối tượng địa danh.
Tên
Kiểu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Dao : Lưu trữ thông tin thuộc tính về các đối tượng đảo
Tên
Kiểu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Kinhdo
Text
30
Lưu trữ kinh độ của đối tượng
Vido
Text
30
Lưu trữ vĩ độ của đối tượng
Dientich
Text
20
Lưu trữ diện tích của đảo
Danso
Text
20
Lưu trữ dân số trên đảo
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Ctbien : Lưu trữ thuộc tính về các công trình trên biển (đèn biển, phao tiêu…)
Tên
Kiểu DL
Độ rộng
Mô tả
Madt
Num,
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Loaidt
Num
4
Lưu trữ mã loại công trình biển
Tgbatdau
Text
20
Lưu trữ khoảng tg được đưa vào sử dụng
Tgbaotri
Text
20
Lưu trữ tg bảo trì theo định kỳ
Kinhdo
Text
30
Lưu trữ kinh độ của đối tượng
Vido
Text
30
Lưu trữ vĩ độ của đối tượng
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Loaict : Lưu trữ các loại công trình trên biển
Ten
Kieu DL
Độ rộng
Mô tả
Mact
Num
4
Lưu trữ mã loại công trình biển
Tenct
Text
50
Lưu trữ tên thể hiện của loại công trình
Taudam :Lưu trữ thông tin về các đối tượng tàu đắm trong VBB
Ten
Kieu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Loaidt
Num
4
Lưu trữ mã loại tàu đắm
Kinhdo
Text
30
Lưu trữ kinh độ của đối tượng
Vido
Text
30
Lưu trữ vĩ độ của đối tượng
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Loaitau : Lưu trữ các loại tàu đắm
Ten
Kieu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ mã loại tàu đắm (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của loại tàu đắm
Bailay :Lưu trữ thông tin thuộc tính về các bãi lầy
Ten
Kieu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Kvnuoc :Lưu trữ thông tin thuộc tính về các khu vực nước được phân layer.
Ten
Kieu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Kvnguyhiem :Lưu trữ thông tin thuộc tính về các khu vực nguy hiểm
Ten
Kieu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của khu vực (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của khu vực
Kinhdo
Text
30
Lưu trữ kinh độ của khu vực
Vido
Text
30
Lưu trữ vĩ độ của khu vực
Dacdiem
Text
250
Lưu trữ đặc điểm của khu vực
Dangsau :Lưu trữ thông tin thuộc tính về các đường đẳng sâu
Ten
Kieu DL
Độ rộng
Mô tả
Madt
Num
4
Lưu trữ ID của đối tượng (khoá chính)
Tendt
Text
50
Lưu trữ tên thể hiện của đối tượng
Dacdiem
Text
250
Lưu trữ đặc điểm của đối tượng
Baomat : Lưu trữ thông tin về người dùng cấp I,II
Ten
Kieu DL
Độ rộng
Mô tả
Name
Text
20
Lưu trữ tên đăng nhập của người dùng
Passw
Text
20
Lưu trữ mật khẩu đăng nhập
Mối liên hệ giữa các bảng trong CSDL :
4. Thiết kế module của chương trình
Giao diện Form chính của chương trình
Trên Form chính khi sau khi lựa chọn một đối tượng, muốn thao tác với đối tượng đó, có thể kích chuột phải chọn các chức năng trong menu được mở ra hoặc kích chọn theo các menu bên trên hay các biểu tượng trên thanh toolbar.
Để chọn hiển thị hay không hiển thị một layer ta chọn hoặc bỏ chọn check có tên layer đó ở Panel bên trái.
Để chọn layer được tác động chọn tên layer theo combobox trong panel.
Muốn di chuyển nhanh bản đồ tới một vị trí kích vào vị trí đó trên bản đồ nhỏ hoặc kích vào nút Dịch tới.
Khi lựa chọn chức năng mở bản đồ (Lựa chọn > Mở bản đồ) Form mở bản đồ sẽ hiển thị cho phép người dùng có thể lựa chọn mở bản đồ theo các tỷ lệ có sẵn là 1:100.000 hay 1 :1.000.000.
Giao diện Form mở bản đồ theo tỷ lệ
Sau khi lựa chọn đối tượng trên Form chính, có thể cập nhật thông tin cho đối tượng qua Form thông tin :
Giao diện Form thông tin đối tượng
Nếu muốn thêm loại đối tượng kich vào nút “Thêm loại” khi đó Form thêm loại đối tượng sẽ xuất hiện :
Giao diện Form thêm loại đối tượng
Khi chọn chức năng tìm kiếm đối tượng các Form tìm kiếm xuất hiện :
Giao diện Form tìm kiếm đối tượng
Khi chọn chức năng kết nối GPS Form kết nối sẽ được hiển thị :
Giao diện Form kết nối GPS
Sau khi kết nối với thiết bị thu GPS thành công tại ô text đầu tiên sẽ hiển thị tất cả dữ liệu nhận được thông qua kết nối. Sau khi kiểm tra dữ liệu nếu được xác định đúng khuôn dạng của tín hiệu GPS sẽ được hiển thị ở ô text thứ 2 (tín hiệu sau khi lọc). Nếu quá trình phân tích dữ liệu thành công các thông tin phân tích được sẽ thể hiện ở các ô text tiếp theo.
Trong quá trình nhận dữ liệu có thể thay đổi cấu hình hệ thống nhận dữ liệu phù hợp theo hệ thống phát :
Giao diện Form cấu hình thu tín hiệu GPS
Để hiển thị tiếng Việt trong các thông báo lỗi, chương trình đã sử dụng đối tượng MyMsgbox thay thế cho đối tượng Msgbox. Đối tượng MyMsgbox là đối tượng được xây dựng riêng với chức năng hiển thị tiếng Việt Unicode trên các thông báo.
KẾT LUẬN
Cùng với sự phát triển nhanh chóng của ngành Công nghệ thông tin, công nghệ GIS ngày càng được ứng dụng rộng rãi trong các lĩnh vực khác nhau của đời sống. Đặc biệt trong các ngành có sử dụng bản đồ, công nghệ GIS giúp việc tác nghiệp trên bản đồ trở nên nhanh chóng, thuận tiện, chính xác và nhờ đó đã mang lại những hiệu quả cao trong công việc.
Trong thời gian làm luận văn tốt nghiệp em đã nắm bắt được những khái niệm cơ bản về GIS, cách thức thiết lập một hệ GIS, các công cụ, kỹ thuật cần thiết để số hóa bản đồ. Trên cơ sở đó đề tài đã giải quyết được các vấn đề cơ bản sau :
Số hoá thành công bản đồ biển Vịnh Bắc Bộ
Xây dựng hệ GIS theo kiến trúc phân tầng về địa lý biển Vịnh Bắc Bộ.
Phân tích và thiết kế hệ thống bài toán.
Xây dựng chương trình đáp ứng được các yêu cầu cơ bản khi tác nghiệp trên bản đồ số.
Bài toán xây dựng hệ thống thông tin địa lý biển Vịnh Bắc Bộ đòi hỏi khối lượng dữ liệu lớn và được cập nhật liên tục theo thời gian. Trong phạm vi luận văn tốt nghiệp, chương trình xây dựng đã đáp ứng được các yêu cầu cơ bản khi tác nghiệp trên bản đồ số. Tuy nhiên để trở thành một hệ thống thông tin địa lý biển thực sự, trong quá trình sử dụng, dữ liệu chương trình phải được cập nhật liên tục theo các yêu cầu tác nghiệp.
Trong thời gian tới, em sẽ tiếp tục phát triển chương trình với mong muốn xây dựng hệ thống thông tin địa lý biển Việt Nam với các bản đồ số được mã hoá chi tiết và dữ liệu cập nhật đầy đủ.
Một lần nữa, em xin chân thành gửi lời cảm ơn đến thầy giáo Phạm Quý Phương đã động viên và hướng dẫn em làm đề tài này.
TÀI LIỆU THAM KHẢO
Microsoft - MSDN Library - July 2001.
Mapx Developer‘s Guide.
MapInfo Professional 6.0 Developer‘s Guide.
TS.Nguyễn Thế Thận, TS. Trần Công Yên –Tổ chức hệ thông tin địa lý & phần mềm MapInfo 4.0 -Nhà xuất bản Xây dựng 2000.
TS. Đặng Văn Đức - Hệ thông tin địa lý GIS –Nhà xuất bản Khoa học và kỹ thuật 2001.
Các hệ quy chiếu địa lý sử dụng trong bản đồ biển – Phòng bảo đảm hàng hải, Quân chủng hải quân.
Quy phạm kí hiệu bản đồ biển - Phòng bảo đảm hàng hải, Quân chủng hải quân.
9. Hệ thống định vị toàn cầu GPS, hệ qui chiếu và hệ toạ độ quốc gia 2000 – Phòng biên vẽ bản đồ biển, Quân chủng hải quân.
10. Giáo trình ghép nối máy tính trong Windows.
Các file đính kèm theo tài liệu này:
- Hệ thống thông tin địa lý biển Vịnh Bắc Bộ.doc