1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các cấu trúc dữ liệu trong hệ thống thông tin địa lý

80 520 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 2,72 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 2: Một số cấu trúc dữ liệu sử dụng trong GIS Chương này mô tả cấu trúc, các phép toán chèn, xoá, duyệt, truy vấn trên các kỹ thuật chỉ mục và tìm kiếm không gian như: cây k-d k-d

Trang 1

Tôi xin chân thành cảm ơn Trường THPT Chuyên Bắc Kạn đơn vị tôi đang công tác đã hết sức tạo điều kiện để tôi có thể hoàn thành nhiệm vụ học tập của mình

Cho phép tôi gửi lời cảm ơn tới các bạn học cùng CK12I - lớp chuyên ngành Khoa học máy tính, đã giúp đỡ, chia sẻ kinh nghiệm, cung cấp các tài liệu hữu ích trong thời gian tôi học tập, nghiên cứu tại Trường cũng như trong trong quá trình thực hiện luận văn tốt nghiệp vừa qua

Vì lượng kiến thức thực tế còn ít nên trong luận văn của em khó tránh khỏi những hạn chế và khiếm khuyết, em rất mong nhận được sự đóng góp ý kiến của các thầy giáo, cô giáo và các bạn để bản thân em có thể hoàn thành tốt hơn kiến thức của mình

Em xin trân trọng cảm ơn!

Thái Nguyên, tháng 9 năm 2015

Hạ Thị Thảo

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan bản luận văn “Các cấu trúc dữ liệu trong hệ thống thông tin địa lý.” là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của PGS.TS Đặng Văn Đức, tham khảo các nguồn tài liệu đã được chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo Các nội dung công bố và kết quả trình bày trong luận văn này là trung thực và chưa từng được ai công bố trong bất cứ công trình nào

Thái Nguyên, tháng 09 năm 2015

Hạ Thị Thảo

Trang 3

DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ

Ký hiệu/từ

Research Institute

Viện nghiên cứu Hệ thống môi trường Mỹ

GIS Geographic Information System Hệ thống thông tin địa lý

Trang 4

DANH MỤC CÁC BẢNG

Bảng 2.1: Các trường hợp của phép chèn vào cây tứ phân điểm 33

Bảng 2.2: Mô tả bốn cành của nút N trong cây tứ phân MX 35

Bảng 3.1 Các nút lệnh trên thanh công cụ 56

DANH MỤC CÁC HÌNH Hình 1.1 Hệ thông tin địa lý (ESRI) 3

Hình 1.2: Sự ảnh hưởng của lựa chọn kích thước tế bào 5

Hình 1.3: Trật tự không gian 6

Hình 1.4: Số liệu vectơ được biểu thị dưới dạng điểm (Point) 8

Hình 1.5: Số liệu vectơ được biểu thị dưới dạng Arc 8

Hình 1.6: Số liệu vectơ được biểu thị dưới dạng vùng (Polygon) 9

Hình 1.7: Các nhóm chức năng trong GIS 12

Hình 2.1: Cây k-d tương ứng khi cho các điểm có sẵn 20

Hình 2.2: Lưới bản đồ dựng cây 21

Hình 2.3: Trình tự chèn vào cây 2-d 22

Hình 2.4: Phép chèn cây k-d trên bản đồ 23

Hình 2.5: Cách phân hoạch mặt phẳng bởi các điểm xã trên cây tứ phân điểm 30

Hình 2.6: Tiến trình chèn vào cây tứ phân điểm 31

Hình 2.7: Mô hình một cây tứ phân điểm 32

Hình 2.8: Trình tự chèn vào cây tứ phân MX 36

Hình 2.9: Phép chèn điểm vào cây tứ phân MX 37

Hình 2.10: Sơ đồ R - Tree 39

Hình 2 11: Bản đồ mẫu mô tả cách nhóm các hình chữ nhật minh họa cây R 40

Hình 2.12: Ví dụ về tập hợp các đoạn thẳng được nhúng với lưới 4 x 4 41

Hình 2.13: Tập hợp các đoạn thẳng và không gian được bao bởi các hình chữ nhật42 Hình 2.14: Trình tự chèn vào cây R 44

Hình 2.15: Bản đồ mô tả phép chèn trong cây R 45

Hình 2.16: Mô tả phép tách 47

Hình 3.1: Mô hình Use Case của hệ thống 51

Hinh 3.2: Giao diện chính của chương trình 55

Hình 3.3: Bản đồ sau khi hiển thị cả lớp đường và lớp điểm 56

Hình 3.4 Bản đồ hiển thị lớp điểm 57

Hình 3.5 Truy vấn vùng trên bản đồ lớp điểm 57

Hình 3.6: Kết quả của truy vấn trên hình 3.5 58

Hình 3.7: Truy vấn vùng trên bản đồ tổng thể 58

Hình 3.8: Kết quả của truy vấn vùng trên bản đồ tổng thể 59

Trang 5

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ iii

DANH MỤC CÁC BẢNG iv

DANH MỤC CÁC HÌNH iv

MỤC LỤC v

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN ĐỊA LÝ (GIS) 3

1.1 Một số khái niệm cơ bản về GIS 3

1.2 Cấu trúc dữ liệu địa lý 3

1.2.1 Dữ liệu không gian 4

1.2.2 Dữ liệu phi không gian 9

1.3 Các chức năng của GIS 11

1.4 Tìm kiếm và phân tích dữ liệu không gian 13

1.4.1 Tìm kiếm nội dung trong vùng không gian 13

1.4.2 Tìm kiếm trong khoảng cận kề 14

1.4.3 Tìm kiếm hiện tượng và thao tác bao phủ (overlay) 14

1.4.4 Nội suy và mô hình hóa bề mặt 15

1.4.5 Phân tích đường đi và đường dẫn 15

1.4.6 Mô hình hóa tương tác không gian 15

1.4.7 Đồ họa và tương tác 16

CHƯƠNG 2: MỘT SỐ CẤU TRÚC DỮ LIỆU SỬ DỤNG TRONG GIS 17

2.1 Vấn đề lưu trữ và chỉ mục dữ liệu địa lý 17

2.2 Cây k-d (k-d tree) 18

2.2.1 Cấu trúc nút 19

2.2.2 Chèn và tìm kiếm trong cây 2-d 20

2.2.3 Xóa trong cây 2-d 24

2.2.4 Truy vấn khoảng trong cây 2-d 25

2.2.5 Cây k-d với k≥2 28

2.3 Cây tứ phân điểm (Point quadtree) 28

2.3.1 Chèn và tìm kiếm trong cây tứ phân điểm 30

2.3.2 Thao tác xoá trên cây tứ phân điểm 31

2.3.3 Truy vấn khoảng trong cây tứ phân điểm 33

Trang 6

2.4 Cây tứ phân Matrix MX (MX-Quadtree) 34

2.4.1 Chèn và tìm kiếm trong MX-Quadtree 35

2.4.2 Thao tác xoá trong MX-Quadtree 37

2.4.3 Truy vấn khoảng trong MX-Quadtree 38

2.5 Cây R (R - Tree) 39

2.5.1 Chèn và tìm kiếm trong R-Tree 42

2.5.2 Xoá trong R-Tree 45

2.5.3 Thuật toán tách nút (Node Splitting ) 46

2.5.4 Cây R* (R*- Tree) 47

2.6 So sánh các cây dữ liệu 48

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 50

3.1 Lựa chọn bài toán thử nghiệm và công nghệ sử dụng 50

3.1.1 Phát biểu bài toán 50

3.1.2 Cách giải quyết 50

3.2 Mô tả dữ liệu thử nghiệm 52

3.3 Phân tích và thiết kế chương trình thử nghiệm 53

3.3.1 Công cụ xây dựng chương trình 53

3.3.2 Đặc tả chức năng của chương trình 53

3.4 Đánh giá kết quả thu được 54

3.4.1 Cài đặt và thử nghiệm 54

3.4.2 Kết quả thử nghiệm 54

3.4.3 Nhận xét kết quả thu được 59

3.4.4 Hiệu quả truy vấn khi sử dụng các cấu trúc dữ liệu cây 59

KẾT LUẬN 61

TÀI LIỆU THAM KHẢO 62

PHỤ LỤC 63

Trang 7

MỞ ĐẦU

Ngày nay, hệ thống thông tin địa lý – Geographic Information System(GIS)

đã trở nên phổ biến và là yếu tố không thể thiếu đối với hầu hết các chuyên ngành GIS đánh giá được hiện trạng của các quá trình, các thực thể tự nhiên, kinh tế-xã hội thông qua các chức năng thu thập, quản lý, truy vấn, phân tích và tích hợp thông tin

Nó được gắn với một nền bản đồ số nhất quán trên cơ sở toạ độ của các dữ liệu đầu vào Về bản chất GIS là một hệ thống Các yếu tố cấu thành GIS là phần cứng, phần mềm, các cơ sở dữ liệu, phương pháp và con người Trong các yếu tố này, cơ sở dữ liệu có vai trò cực kỳ quan trọng trong hệ thống góp phần làm nên sức mạnh của hệ thống

Tình hình nghiên cứu, kết quả nghiên cứu đã có:

Cấu trúc dữ liệu là một thành phần quan trọng nhất và được coi là lõi của hệ thống thông tin địa lý GIS Do đó đây là vấn đề được đề cập đến rất nhiều trên thế giới, tuy nhiên cách tiếp xúc tiếp xúc vấn đề có nhiều khía cạnh khác nhau đặc biệt

là ở Việt Nam Để hình thức hoá, trừu Tượng hoá dữ liệu GIS người ta cần đến các

kỹ thuật như cây k-chiều, cây tứ phân, cây R Đồng thời còn phải quan tâm đến các phương pháp cài đặt các kĩ thuật này Các đề tài nghiên cứu đã có chỉ là ứng dụng CSDL GIS để xây dựng ứng dụng chứ chưa có đề tài nghiên cứu thể hiện các cấu trúc dữ liệu GIS cụ thể Do đó tác giả tập trung nghiên cứu các kỹ thuật trên các cây dữ liệu GIS

Có thể nói cấu trúc dữ liệu là phần khung và bản chất nhất của các hệ thống GIS, nó là cơ sở của các giải thuật GIS cũng như nói đến khả năng lưu trữ khai thác, phát triển hệ thống dữ liệu Những nghiên cứu của luận văn không có gì mới so với thế giới, nhưng là mới ở nước ta Xuất phát từ thực tế đó tôi chọn đề tài “Các cấu trúc dữ liệu trong hệ thống thông tin địa lý.”

Trong khuôn khổ luận văn, tôi trình bày một số vấn đề cơ bản về hệ thống thông tin địa lý (GIS), các kỹ thuật truy vấn không gian trong GIS Mô tả cấu trúc, các phép toán xây dựng, chèn, xóa, duyệt, truy vấn trên cấu trúc dữ liệu sử dụng

Trang 8

trong GIS Trong đó, tập trung nghiên cứu và cài đặt thử nghiệm một số cấu trúc dữ liệu không gian

Bố cục của luận văn bao gồm phần mở đầu, phần kết luận và ba chương nội dung được tổ chức như sau:

Chương 1: Tổng quan về hệ thống thông tin địa lý

Chương này trình bày tổng quan về hệ thống thông tin địa lý, các kỹ thuật truy vấn không gian trong GIS, khả năng của GIS

Chương 2: Một số cấu trúc dữ liệu sử dụng trong GIS

Chương này mô tả cấu trúc, các phép toán chèn, xoá, duyệt, truy vấn trên các

kỹ thuật chỉ mục và tìm kiếm không gian như: cây k-d (k-d Tree), cây tứ phân(Quadtree), cây R (R Tree), R* Tree và so sánh giữa chúng

Chương 3: Xây dựng chương trình thử nghiệm

Cài đặt thử nghiệm cây tứ phân điểm Chương trình được cài đặt từ cơ sở

dữ liệu đã có định dạng bằng Shapefile, với ngôn ngữ lập trình C#.NET cùng với thư viện hỗ trợ SharpMap

Trang 9

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN ĐỊA LÝ (GIS) 1.1 Một số khái niệm cơ bản về GIS

GIS - Geographic Information System hay hệ thống thông tin địa lý được hình thành từ ba khái niệm địa lý, thông tin và hệ thống Khái niệm “địa lý” liên quan đến các đặc trưng về không gian, vị trí Các đặc trưng này liên kết trực tiếp đến các đối tượng trong không gian Chúng có thể là vật lý, văn hoá, kinh tế, tự nhiên Khái niệm “thông tin” đề cập đến phần dữ liệu được quản lý bởi GIS Đó là các dữ liệu về thuộc tính và không gian của đối tượng GIS có tính “hệ thống” tức là hệ thống GIS được xây dựng từ các module Việc tạo module giúp thuận lợi trong việc quản lý và hợp nhất

Hình 1.1 Hệ thông tin địa lý (ESRI) [1]

GIS là một hệ thống có ứng dụng rất lớn Từ năm 1980 đến nay đã có rất nhiều các định nghĩa được đưa ra, tuy nhiên không có định nghĩa nào khái quát đầy

đủ về GIS vì phần lớn chúng đều được xây dựng trên khía cạnh ứng dụng cụ thể trong từng lĩnh vực Có ba định nghĩa được dùng nhiều nhất:

GIS là một hệ thống thông tin được thiết kế để làm việc với các dữ liệu trong một hệ toạ độ quy chiếu GIS bao gồm một hệ cơ sở dữ liệu và các phương thức để thao tác với dữ liệu đó.GIS là một hệ thống nhằm thu thập, lưu trữ, kiểm tra, tích hợp, thao tác, phân tích và hiển thị dữ liệu được quy chiếu cụ thể vào trái đất

GIS là một chương trình máy tính hỗ trợ việc thu thập, lưu trữ, phân tích và hiển thị dữ liệu bản đồ

1.2 Cấu trúc dữ liệu địa lý

Trang 10

Một cơ sở dữ liệu của hệ thống thông tin địa lý có thể chia ra làm 2 loại dữ liệu cơ bản: dữ liệu không gian và phi không gian Mỗi loại có những đặc điểm riêng và chúng khác nhau về yêu cầu lưu giữ số liệu, hiệu quả, xử lý và hiển thị

1.2.1 Dữ liệu không gian

Dữ liệu không gian là những mô tả số của hình ảnh bản đồ, chúng bao gồm toạ độ, quy luật và các ký hiệu dùng để xác định một hình ảnh bản đồ cụ thể trên từng bản đồ Hệ thống thông tin địa lý dùng các số liệu không gian để tạo ra một bản đồ hay hình ảnh bản đồ trên màn hình hoặc trên giấy thông qua thiết bị ngoại vi

Hệ thông tin địa lý sử dụng hai mô hình dữ liệu cơ bản để biểu diễn các đặc trưng không gian: mô hình dữ liệu raster và mô hình dữ liệu vectơ Mô hình không gian đặc biệt quan trọng vì cách thức biểu diễn thông tin sẽ ảnh hưởng đến khả năng hiển thị đồ họa của hệ thống

1.2.1.1 Mô hình dữ liệu raster

Đây là phương pháp biểu diễn các đặc trưng địa lý bằng các điểm ảnh Được hình thành dựa trên cơ sở quan sát nền thế giới thực

Mô hình dữ liệu raster hay còn gọi là lưới tế bào hình thành nền cho một số

hệ thông tin địa lý Các hệ thống trên cơ sở raster hiển thị, định vị và lưu trữ dữ liệu

đồ họa nhờ sử dụng các ma trận hay lưới tế bào Độ phân giải dữ liệu raster phụ thuộc vào kích thước của tế bào hay điểm ảnh, chúng có thể khác nhau từ vài đêximet đến vài kilômet Trong cấu trúc dữ liệu raster, point có thể được biểu diễn bằng một cell Line được biểu diễn bởi một tập các cell có hướng xác định, độ rộng của line bằng chiểu rộng của một cell Polygon được biểu diễn bởi một đãy các cell nằm kề sát nhau Tiến trình xây dựng lưới tế bào được mô tả như sau đây:[1]

Giả sử phủ một lưới lên bản đồ, dữ liệu raster được lập bằng cách mã hóa mỗi tế bào bằng một giá trị dựa theo các đặc trưng trên bản đồ, độ chính xác của một đối tượng phụ thuộc vào kích thước hay độ phân giải của các tế bào lưới

Trang 11

Hình 1.2: Sự ảnh hưởng của lựa chọn kích thước tế bào

Bản đồ lại được chia thành nhiều tầng, mỗi tầng bao gồm hàng triệu tế bào vì vậy cần áp dụng các thuật toán nén dữ liệu mà vẫn cho khả năng khôi phục dữ liệu ban đầu

Hình dạng bao phủ toàn bộ bản đồ gọi là khảm, khảm có thể là hình vuông, tam giác hay lục giác tuy nhiên khi sử dụng khảm hình tam giác hoặc lục giác sẽ khó khăn trong việc phân chia tế bào thành các tế bào nhỏ hơn, cách mã hóa, lưu trữ

tế bào khó khăn hơn rất nhiều

Lợi thế của hệ thống raster là mã dữ liệu đồ họa thành bản đồ trong máy tính nên các thao tác so sánh tế bào là dễ dàng song không thuận tiện cho việc biểu diễn đường, đoạn, điểm vì mỗi loại là một tập hợp các tế bào và có đoạn rộng, đoạn hẹp Một vấn đề khó khăn nữa là xử lý tế bào trộn là tế bào có nhiều hơn một đặc trưng (như trong ví dụ trên một số ô có thể đánh một trong hai giá trị tùy theo hoạt động của chương trình hay quan niệm của người lập), vấn đề này dẫn tới khó khăn khi có nhu cầu phân tích là phủ bản đồ Vì thế raster thích hợp hơn với hệ thống GIS hướng tài nguyên, môi trường vì hình thành trên sơ sở quan sát nền thế giới thực Raster có nhiều tầng bản đồ (địa hình, đất đai ) hơn so với mô hình vectơ

Cấu trúc dữ liệu raster

Số lượng dữ liệu của mô hình là rất lớn do đó cần có kĩ thuật quản lý khối dữ liệu sao cho dễ quản lý và dễ xâm nhập Các phương pháp hay dùng là phân hoạch

dữ liệu và xây dựng chỉ số xâm nhập nhanh

-Phân hoạch dữ liệu: Phân hoạch CSDL không gian để quản lý khối lượng lớn thông tin bằng tập giới hạn các thao tác Hai chiến lược được sử dụng đó là: mỗi phân hoạch chứa số lượng thông tin xấp xỉ nhau và kích thước địa lý có thể khác

Trang 12

nhau; phân hoạch địa lý cố định và lượng thông tin trong mỗi phân hoạch có thể khác nhau

-Xây dựng chỉ số xâm nhập nhanh (hay chỉ số không gian) Ý tưởng chính của xây dựng chỉ số không gian là sử dụng khái niệm xấp xỉ qua phân hoạch số lượng thông tin xấp xỉ Nếu mỗi đặc trưng có thêm trường chỉ số để chỉ ra nơi chứa chúng thì việc tìm kiếm địa chỉ sẽ giới hạn trong trường này Tiến trình đánh số chỉ

số thường sử dụng đó là phân hoạch đệ qui, kết quả là cho ta cấu trúc phân cấp gọi

là cây tứ phân Trong cây tứ phân mỗi vùng được chia thành bốn vùng và đánh chỉ

số khác nhau, mỗi vùng lại chia tiếp thành bốn phần cho đến khi đạt được kích thước tế bào cần thiết tuy nhiên phân hoạch như vậy là không hợp lý và tiến trình phân hoạch chỉ cần tiến hành ở những vùng có nhiều đặc trưng hay được quan tâm tới nhiều tùy vào các chức năng của bản đồ Cách đánh chỉ số ở đây thường áp dụng trật tự Z (sử dụng cách đánh số như nhau ở bốn góc phần tư), trật tự Pi () (sử dụng cách đánh số đối xứng ở bốn góc phần tư) như sau:

Trang 13

1.2.1.2 Mô hình dữ liệu vectơ

Đây là phương pháp biểu diễn các đặc trưng địa lý bằng các phần tử đồ họa

cơ bản (điểm, đường, đa giác, bề mặt ba chiều và khối trong 3D) Phương pháp vectơ hình thành dựa trên cơ sở quan sát đối tượng của thế giới thực Dưới đây là bảng các thành phần hình học cơ sở:

Kiểu thành

Bề mặt

Ma trận điểm; tập các tam giác, hàm toán học, đường đồng mức

Kiểu đối tượng điểm (Points)

Điểm được xác định bởi cặp giá trị đơn Các đối tượng đơn, thông tin về địa

lý chỉ gồm cơ sở vị trí sẽ được phản ánh là đối tượng điểm Các đối tượng kiểu điểm có đặc điểm:

* Là toạ độ đơn (x,y)

* Không cần thể hiện chiều dài và diện tích

Trang 14

Hình 1.4: Số liệu vectơ được biểu thị dưới dạng điểm (Point)

Tỷ lệ trên bản đồ tỷ lệ lớn, đối tượng thể hiện dưới dạng vùng Tuy nhiên trên bản đồ tỷ lệ nhỏ, đối tượng này có thể thể hiện dưới dạng một điểm Vì vậy, các đối tượng điểm và vùng có thể được dùng phản ánh lẫn nhau

Kiểu đối tượng đường (Arcs)

Đường được xác định như một tập hợp đãy của các điểm Mô tả các đối tượng địa lý dạng tuyến, có các đặc điểm sau:

* Là một đãy các cặp toạ độ

* Một arc bắt đầu và kết thúc bởi node

* Các arc nối với nhau và cắt nhau tại node

* Hình dạng của arc được định nghĩa bởi các điểm vertices

* Độ dài chính xác bằng các cặp toạ độ

Hình 1.5: Số liệu vectơ được biểu thị dưới dạng Arc

Trang 15

Kiểu đối tượng vùng (Polygons)

Vùng được xác định bởi ranh giới các đường thẳng Các đối tượng địa lý có diện tích và đóng kín bởi một đường được gọi là đối tượng vùng polygons, có các đặc điểm sau:

* Polygons được mô tả bằng tập các đường (arcs) và điểm nhãn (label points)

* Một hoặc nhiều arc định nghĩa đường bao của vùng

* Một điểm nhãn label points nằm trong vùng để mô tả, xác định cho mỗi một vùng

Hình 1.6: Số liệu vectơ được biểu thị dưới dạng vùng (Polygon)

Mô hình vectơ hợp với các hệ GIS định hướng các hệ thống quản trị CSDL, chúng ưu việt trong lưu trữ số liệu bản đồ bởi chỉ lưu đường biên của các đặc trưng chứ không lưu cả vùng như trong mô hình raster nên truy nhập, tìm kiếm, hiển thị

dễ dàng thông tin từ CSDL

1.2.2 Dữ liệu phi không gian

Dữ liệu phi không gian là những diễn tả đặc tính, số lượng, mối quan hệ của các hình ảnh bản đồ với vị trí địa lý của chúng Các dữ liệu phi không gian được gọi

là dữ liệu thuộc tính, chúng liên quan đến vị trí địa lý hoặc các đối tượng không gian và liên kết chặt chẽ với chúng trong hệ thống thông tin địa lý thông qua một cơ chế thống nhất chung Thông thường hệ thống thông tin địa lý có 4 loại số liệu

thuộc tính:

Trang 16

- Đặc tính của đối tượng: liên kết chặt chẽ với các thông tin không gian có thể thực hiện SQL (Structure Query Language) và phân tích

- Số liệu hiện tượng, tham khảo địa lý: miêu tả những thông tin, các hoạt động thuộc vị trí xác định

- Chỉ số địa lý: tên, địa chỉ, khối, phương hướng định vị, …liên quan đến các đối tượng địa lý

- Quan hệ giữa các đối tượng trong không gian, có thể đơn giản hoặc phức tạp (sự liên kết, khoảng tương thích, mối quan hệ đồ hình giữa các đối tượng)

Để mô tả một cách đầy đủ các đối tượng địa lý, trong bản đồ số chỉ dùng thêm các loại đối tượng khác: điểm điều khiển, toạ độ giới hạn và các thông tin mang tính chất mô tả (annotation)

Annotation: Các thông tin mô tả có các đặc điểm:

 Có thể nằm tại một vị trí xác định trên bản đồ

 Có thể chạy dọc theo arc

 Có thể có kích thước, màu sắc, các kiểu chữ khác nhau

 Nhiều mức của thông tin mô tả có thể được tạo ra với ứng dụng khác nhau

 Có thể tạo thông tin cơ sở dữ liệu lưu trữ thuộc tính

 Có thể tạo độc lập với các đối tượng địa lý có trong bản đồ

 Không có liên kết với các đối tượng điểm, đường, vùng và dữ liệu thuộc tính của chúng

* Bản chất một số thông tin dữ liệu thuộc tính như sau:

- Số liệu tham khảo địa lý: mô tả các sự kiện hoặc hiện tượng xảy ra tại một

vị trí xác định Không giống các thông tin thuộc tính khác, chúng không mô tả về bản thân các hình ảnh bản đồ Thay vào đó chúng mô tả các danh mục hoặc các hoạt động như cho phép xây dựng, báo cáo tai nạn, nghiên cứu y tế, … liên quan đến các

vị trí địa lý xác định Các thông tin tham khảo địa lý đặc trưng được lưu trữ và quản

lý trong các tệp độc lập và hệ thống không thể trực tiếp tổng hợp chúng với các hình ảnh bản đồ trong cơ sở dữ liệu của hệ thống Tuy nhiên các bản ghi này chứa các yếu tố xác định vị trí của sự kiện hay hiện tượng

Trang 17

- Chỉ số địa lý: được lưu trong hệ thống thông tin địa lý để chọn, liên kết và tra cứu số liệu trên cơ sở vị trí địa lý mà chúng đã được mô tả bằng các chỉ số địa lý xác định Một chỉ số có thể bao gồm nhiều bộ xác định cho các thực thể địa lý sử dụng từ các cơ quan khác nhau như là lập danh sách các mã địa lý mà chúng xác định mối quan hệ không gian giữa các vị trí hoặc giữa các hình ảnh hay thực thể địa

lý Ví dụ: chỉ số địa lý về trường học và địa chỉ địa lý liên quan đến trường học đó

- Mối quan hệ không gian: của các thực thể tại vị trí địa lý cụ thể rất quan trọng cho các chức năng xử lý của hệ thống thông tin địa lý Các mối quan hệ không gian có thể là mối quan hệ đơn giản hay lôgic, ví dụ tiếp theo số nhà 100 phải là số nhà 102 nếu là số nhà bên chẵn hoặc nếu là bên lẻ thì cả hai đều phải là các số lẻ kề

nhau Quan hệ Topology cũng là một quan hệ không gian Các quan hệ không gian

có thể được mã hoá như các thông tin thuộc tính hoặc ứng dụng thông qua giá trị toạ độ của các thực thể

- Mối quan hệ giữa dữ liệu không gian và phi không gian: thể hiện phương pháp chung để liên kết hai loại dữ liệu đó thông qua bộ xác định, lưu trữ đồng thời trong các thành phần không gian và phi không gian Các bộ xác định có thể đơn giản là một số duy nhất liên tục, ngẫu nhiên hoặc các chỉ báo địa lý hay số liệu xác định vị trí lưu trữ chung Bộ xác định cho một thực thể có thể chứa toạ độ phân bố của nó, số hiệu mảnh bản đồ, mô tả khu vực hoặc con trỏ đến vị trí lưu trữ của số liệu liên quan Bộ xác định được lưu trữ cùng với các bản ghi toạ độ hoặc mô tả số khác của các hình ảnh không gian và cùng với các bản ghi số liệu thuộc tính liên quan

1.3 Các chức năng của GIS

Các chức năng của GIS được chia thành 5 loại sau:

- Thu thập dữ liệu

- Xử lý sơ bộ dữ liệu

- Lưu trữ và truy cập dữ liệu

- Tìm kiếm và phân tích không gian

- Hiển thị đồ họa và tương tác

Sức mạnh của các chức năng của hệ thống GIS khác nhau là khác nhau Kỹ

Trang 18

thuật xây dựng các chức năng trên cũng khác nhau Hình 1.7 mô tả quan hệ giữa các nhóm chức năng và cách biểu diễn thông tin khác nhau của GIS [1]

Chức năng thu thập dữ liệu tạo ra dữ liệu từ các quan sát hiện tượng thế giới thực và từ các tài liệu, bản đồ giấy, đôi khi chúng có sẵn dưới dạng số Kết quả ta có

“tập dữ liệu thô”, có nghĩa là dữ liệu này không được phép áp dụng trực tiếp cho chức năng truy nhập và phân tích của hệ thống Chức năng xử lý sơ bộ dữ liệu sẽ biến đổi dữ liệu thô thành dữ liệu có cấu trúc để sử dụng trực tiếp các chức năng tìm kiếm và phân tích không gian Kết quả tìm kiếm và phân tích được xem như diễn giải dữ liệu, đó là tổ hợp hay biến đổi đặc biệt của dữ liệu có cấu trúc Hệ thống GIS phải có phần mềm công cụ để tổ chức và lưu trữ các loại dữ liệu khác nhau từ dữ liệu thô đến dữ liệu diễn giải Phần mềm công cụ này phải có các thao tác lưu trữ, truy nhập; đồng thời có khả năng hiển thị, tương tác đồ họa với tất cả loại dữ liệu.[1]

Hình 1.7: Các nhóm chức năng trong GIS

Trang 19

Khả năng của GIS là có thể trả lời các câu hỏi:

Location:What is at ? Tìm ra cái gì tồn tại ở vị trí cụ thể Vị trí được thể

hiện bằng tên, mã bưu điện hay tọa độ địa lý (kinh/vĩ độ)

Condition: Where is it? Tìm ra vị trí thỏa mãn một số điều kiện (vùng không

có rừng diện tích 2000m2 và xa đường quốc lộ 100m và loại đất phù hợp cho xây dựng nhà)

Trends: What has changed since ? Tìm ra sự khác biệt theo thời gian trong

vùng

Patterns: What spatial patterns exist? Tìm ra nơi nào phù hợp mẫu, ví dụ

ung thư là nguyên nhân chính của cái chết của người dân gần nhà máy nguyên tử?

Modeling:What if ? Câu hỏi này xác định cái gì xảy ra, ví dụ, nếu có đường

mới mở hay nếu chất độc thải vào nguồn nước

1.4 Tìm kiếm và phân tích dữ liệu không gian

Có rất nhiều các phương pháp tìm kiếm và phân tích dữ liệu không gian Đây

là chức năng đóng vai trò rất quan trọng trong GIS Nó tạo nên sức mạnh thực sự của GIS so với các phương pháp khác Truy vấn dữ liệu không gian giúp tìm ra những đối tượng đồ hoạ theo các điều kiện đặt ra hay hỗ trợ việc ra quyết định của người dùng GIS Các phương pháp khác nhau thường tạo ra các ứng dụng GIS khác nhau Sau đây là một số phương pháp được dùng phổ biến nhất:

1.4.1 Tìm kiếm nội dung trong vùng không gian

Các phép phân tích không gian tương đối đơn giản là tìm đặc trưng bản đồ hay một phần của chúng nằm trong vùng cho trước Vùng có thể là hình chữ nhật

và được xác định bằng hai cặp tọa độ Phép phân tích này có thể được xem như phép truy vấn CSDL không gian cơ bản Lý do để coi chúng là mức độ cao hơn truy nhập CSDL cổ điển là khả năng cắt xén đối tượng bao như đường và các cạnh đa giác theo biên cửa sổ Nhiệm vụ này không thể hoàn thành chỉ bằng ngôn ngữ truy nhập CSDL quan hệ như SQL mà phải có những xử lý đăck biệt khác Tìm kiếm nội dung trong vùng không gian còn được thực hiện trên vùng tạo ra từ các đối tượng

Trang 20

không gian sẵn có như vùng xác định bởi các đường biên hành chính xã huyện, khu công nghiệp [1]

1.4.2 Tìm kiếm trong khoảng cận kề

Có một vài phương pháp tìm kiếm trong khoảng cận kề Phương pháp thứ nhất được xem như mở rộng của tìm kiếm nội dung trong vùng, trong đó vùng được tìm kiếm được xác định bởi xấp xỉ tới hiện tượng có sẵn Việc tìm kiếm này được thực hiện trong vùng tạo bởi mở rộng đối tượng nào cho trước theo một khoảng cách cho trước Theo khái niệm GIS thì vùng này được gọi là vùng đệm Vùng đệm được xây dựng xung quanh đối tượng điểm, đối tượng đường hay đối tượng vùng Trong các hệ thống trên cơ sở raster thì việc tạo lập vùng đệm được thực hiện nhờ chức năng spread

Phương pháp thứ hai của tìm kiếm cận kề là tìm ra các vùng nối trực tiếp với đối tượng xác định từ trước, thí dụ tìm các mảnh đất liền kề với mảnh sẽ xây dựng nhà máy

Phương pháp thứ ba xảy ra khi cần phải tìm kiếm những vùng đất gần nhất với tập các vị trí mẫu phân tán không đều Các mẫu thường là các điểm Tìm kiếm này thực hiện bằng cách tạo lập đa giác Thiessen, nó xác định các vùng xung quanh mỗi điểm mà gần điểm này hơn các điểm khác Sơ đồ đa giác Thiessen được gọi là

sơ đồ Voronoi Chúng được sử dụng để lập ra bản đồ đất sử dụng từ các mẫu đất cách biệt [1]

1.4.3 Tìm kiếm hiện tượng và thao tác bao phủ (overlay)

Kỹ thuật tìm kiếm hiện tượng được chia thành nhóm dữ kiện dựa trên tính chất tìm kiếm đó là:

Tìm một hiện tượng, không quan tâm đến các hiện tượng còn lại Trường hợp này khá đơn giản, việc tìm kiếm sẽ là truy nhập các đối tượng không gian chỉ dựa trên thuộc tính xác định trước Thí dụ yêu cầu tìm kiếm tất cả các huyện có số người thật nghiệp vượt quá mức cho trước Trong thực tế tìm kiếm loại này thường phải được giới hạn bởi địa điểm Chúng có thể được giới hạn bởi khoảng cận kề Thí dụ tìm các thành phố cách đường quốc lộ 500m

Trang 21

Tìm những vùng được xác định bởi tổ hợp các hiện tượng Một yếu tố thúc đẩy phát triển GIS là nhu cầu phân tích dữ liệu Mục đích của chúng là tìm kiếm các vùng thỏa mãn điều kiện cho trước.Thí dụ các ứng dụng về sử dụng đất hoặc đặc tính đất trồng Tiến trình này được thực hiện nhờ phép phủ các bản đồ chuyên đề biểu diễn từng chỉ báo quan tâm như loại thực vật, loại đất trồng, độ dốc để điều chỉnh kế hoạch trồng trọt Ngày nay kỹ thuật này đã được tự động hóa nhờ công nghệ GIS trên mô hình dữ liệu raster hay vectơ Nói chung phân tích phủ hợp với hệ thống lưu trữ dữ liệu theo tầng.[1]

1.4.4 Nội suy và mô hình hóa bề mặt

Nhu cầu thực tế đòi hỏi chức năng nội suy tăng lên khi dữ liệu đo đạc được xem như các điểm mẫu bề mặt; nói cách khác là phải tính toán giá trị tại mọi điểm trong không gian Khi dữ liệu được nội suy từ các điểm mẫu thành lưới đều các điểm thì kỹ thuật thường được sử dụng là ước lượng mỗi điểm (nút) lưới như tổng trọng lượng của các điểm mẫu lân cận của điểm lưới đó.[1]

1.4.5 Phân tích đường đi và đường dẫn

Phân tích đường đi là việc tìm kiếm đường đi ngắn nhất, rẻ nhất giữa hai vị trí Giải pháp của vấn đề này hình thành nhờ sử dụng mô hình mạng hay mô hình

dữ liệu raster trên cơ sở tế bào lưới Mô hình dữ liệu mạng được sử dụng để biểu diễn tập xác định các đường dẫn như đường quốc lộ, sông ngòi Sự chuyển động thực hiện từ nút này đến nút khác hay từ tế bào này đến tế bào lân cận của mô hình

dữ liệu raster Trong mạng giao thông thì đường đi còn liên quan đến tốc độ hạn chế, chất lượng mặt đường Trong mô hình địa hình tìm đường đi liên quan đến loại mặt đất và hiện diện của chướng ngại vật như đầm lầy, [1]

1.4.6 Mô hình hóa tương tác không gian

Ngày nay GIS được sử dụng rộng rãi cho mục đích nhận ra các vùng tối ưu

để xây dựng các công trình công cộng như chợ, trạm cứu hỏa, cây ATM, trạm xe buýt Khi xác định được vị trí các điểm này kỹ thuật định vị được sử dụng để xác định toàn bộ vị trí trên mạng giao thông sao cho phù hợp nhất.[1]

Trang 22

1.4.7 Đồ họa và tương tác

Tầm quan trọng bản chất không gian trong GIS là đặc tả truy vấn và báo cáo kết quả được thực hiện hiệu quả là nhờ sử dụng bản đồ Do vậy chức năng lập bản

đồ thường thấy trong GIS Trong các hệ thống GIS đơn giản chỉ có các công cụ cơ

sở thì cũng có được bản đồ động và mềm dẻo hơn bản đồ giấy rất nhiều Khi truy vấn dữ liệu bản đồ trên hệ thống GIS người dùng sẽ có các đặc trưng trên màn hình máy tính hay có các đường biên giới hạn kết quả không gian tìm kiếm trên chúng Kết quả truy vấn thu được bằng xen thêm các đặc trưng khác vào bản đồ đang hiển thị hay phát sinh ra bản đồ hoàn toàn mới Chúng còn có thể in thành bản đồ giấy hoặc hiển thị bản đồ 3D từ các điểm quan sát khác nhau.[1]

Trong chương này đã trình bày những kiến thức tổng quan nhất về GIS từ đó cho ta thấy lập bản đồ và phân tích địa lý không phải là kỹ thuật mới, nhưng GIS thực thi các công việc này tốt hơn và nhanh hơn các phương pháp thủ công cũ Trước công nghệ GIS, chỉ có một số ít người có những kỹ năng cần thiết để sử dụng thông tin địa lý giúp ích cho việc giải quyết vấn đề và đưa ra các quyết định Khi nói đến GIS, chúng ta cũng có thể nghĩ đến việc lưu trữ và truy vấn dữ liệu, đặc biệt

là dữ liệu không gian đồ sộ và CSDL không gian trong GIS chiếm vai trò trung tâm Việc phân tích một số cấu trúc dữ liệu trong GIS sẽ được trình bày rõ hơn trong chương tiếp theo

Trang 23

CHƯƠNG 2: MỘT SỐ CẤU TRÚC DỮ LIỆU SỬ DỤNG TRONG GIS 2.1 Vấn đề lưu trữ và chỉ mục dữ liệu địa lý

Chỉ mục CSDL là trình diễn thông tin đặc biệt về đối tượng để nâng cao hiệu năng tìm kiếm Tệp chỉ mục là tệp bổ trợ để nâng cao khả năng tìm kiếm Mỗi bản ghi trong tệp chỉ mục chỉ có 2 trường: giá trị khóa, địa chỉ của những trang trong tệp

dữ liệu, những bản ghi trong tệp chỉ mục thường có thứ tự, có thể sử dụng thứ tự không gian và tổ chức cấu trúc dữ liệu để sử dụng tìm kiếm riêng Một cấu trúc chỉ mục không gian tổ chức những đối tượng với một tập những thùng (bucket) thông thường những thùng này tương ứng với những trang trong bộ nhớ phụ (second memory), mỗi thùng có một liên kết vùng, một phần của không gian chứa tất cả những đối tượng lưu trữ trong thùng, những vùng thường là những hình chữ nhật đối với những cấu trúc dữ liệu điểm, những vùng này thường rời rạc và chúng chia cắt không gian và chính vì vậy mỗi điểm có liên quan chính xác đến một thùng đối với một vài cấu trúc dữ liệu hình chữ nhật những vùng có thể chồng lên nhau

Chỉ mục không gian được sử dụng bởi những cơ sở dữ liệu không gian để tối

ưu truy vấn không gian Những phương pháp chỉ mục không gian phổ biến bao gồm: cây tứ phân (Quadtree), Cây R (R tree), cây kd (k-d tree)

Lợi ích cơ bản của chỉ mục không gian:

Chỉ mục làm tăng tốc độ tìm kiếm bản ghi dữ liệu trong CSDL Cho khả năng xâm nhập ngẫu nhiên thay cho trình tự Về mặt logic, chỉ mục CSDL tương

tự chỉ mục trong quyển sách in Cấu trúc dữ liệu không gian ngoài được thêm vào hệ thống, cung cấp những thuộc tính không gian cây B (B tree) cho những thuộc tính tuyến tính

Những đối tượng không gian được ánh xạ vào không gian một chiều 1- D,

sử dụng một trật tự không gian (ví dụ: trật tự Z, trật tự Hilbert), vì vậy chúng được lưu trữ trong một chỉ mục chuẩn 1-D như cây B (B tree) Dưới đây là Ví dụ chỉ mục B tree (Balanced Tree) một chiều Thay vì phải mất 8 lần tìm kiếm trong

dữ liệu không được chỉ mục khi tìm kiếm số 36, thì với chỉ mục dữ liệu thì chỉ mất 5 lần tìm kiếm bằng cách sắp xếp dữ liệu thành 3 mức khác nhau, mỗi mức

Trang 24

chia thành các thùng Mức 1 chứa giá trị nhỏ hơn hoặc lớn hơn 36, mức 2 chứa giá trị nhỏ hơn hoặc lớn hơn 68, mức 3 chứa giá trị nhỏ hơn hoặc lớn hơn 72 Số mức và số thùng đối với mỗi mức có thể tối ưu hóa đối với mỗi loại dữ liệu [3]

Chỉ mục không gian giống như bất kỳ chỉ mục khác, cung cấp một cơ chế để giới hạn việc tìm kiếm, nhưng trong trường hợp này cơ chế là dựa vào tiêu chuẩn không gian như sự giao nhau và chứa đựng nhau Một chỉ mục không gian cần:

- Tìm những đối tượng trong khoảng một không gian dữ liệu chỉ mục mà

nó tương tác với một điểm đã cho hoặc một vùng quan tâm (truy vấn vùng)

- Tìm những cặp đối tượng từ khoảng 2 không gian dữ liệu chỉ mục mà chúng tương tác không gian với mỗi trong chúng (kết nối không gian)

Chỉ mục không gian được sử dụng bởi những cơ sở dữ liệu không gian để tối ưu truy vấn không gian Có nhiều cấu trúc dữ liệu khác nhau được sử dụng để biểu diễn việc tách phân cấp vùng

2.2 Cây k-d (k-d tree)

Cây k-d được sử dụng để lưu trữ dữ liệu điểm k-chiều không sử dụng nó để lưu trữ dữ liệu vùng Như vậy, cây 2-d (khi k=2) lưu trữ dữ liệu điểm 2-chiều, cây 3-d lưu trữ dữ liệu điểm 3-chiều

Trang 25

2.2.1 Cấu trúc nút

Trong cây 2-d, mỗi nút có cấu trúc bản ghi nhất định với kiểu như sau:

nodetype = record INFO: infotype;

XVAL: real; YVAL: real;

hay nó có thể là bản ghi bao gồm các trường name:string và population:integer

Trường XVAL, YVAL biểu thị tọa độ điểm kết hợp với nút Các trường LLINK và RLINK trỏ đến hai cành Giả sử T trỏ đến gốc của cây 2-d Nếu N là nút trong cây, thì mức của N được xác định qui nạp như sau:

level(N)= 0 nếu N là gốc của cây

level(P)+1 nếu cha của N là P

Cây 2-d là cây nhị phân bất kỳ nếu thoả mãn điều kiện sau:

1 Nếu N là nút trong cây và level(N) là chẵn thì mỗi nút M trong cành rẽ nhánh từ N.LLINK có tính chất M.XVAL < N.XVAL, mỗi nút P trong cành rẽ

nhánh từ N.RLINK có tính chất P.XVAL ≥ N.XVAL

2 Nếu N là nút trong cây và level(N) là lẻ thì mỗi nút M trong cành rẽ nhánh

từ N.LLINK có tính chất M.YVAL < N.YVAL, mỗi nút P trong cành rẽ nhánh từ N.RLINK có tính chất P.YVAL ≥ N.YVAL

Thuật toán dựng cây k-d [2]

Algorithm BuildKdTree(P, depth)

1 If P chỉ chứa duy nhất 1 điểm

2 then return Một lá chứa điểm

3 else if depth là chẵn

Trang 26

4 then Split P with một đường thẳng l đi qua giữa trục x chia nó thành 2 phần P1 bên trái l và P2 bên phải l

5 else Split P with một đường nằm ngang qua giữa trục y chia nó thành 2 phần P1 bên dưới trục y, P2 bên trên trục y

Một cây k-d có thể dựng trong khoảng thời gian là: O(nlogn)

Hình 2.1: Cây k-d tương ứng khi cho các điểm có sẵn

2.2.2 Chèn và tìm kiếm trong cây 2-d

Việc chèn nút N vào cây do T trỏ tới được phát biểu phi hình thức như sau: Kiểm tra xem N và T có thống nhất các trường XVAL và YVAL hay không Nếu thống nhất thì chỉ việc viết đè nút T và kết thúc Nếu không hãy rẽ trái nếu N.XVAL<T.XVAL hoặc rẽ phải trong trường hợp ngược lại Giả sử P là nút con ta đang khảo sát Nếu N và P thống nhất các trường XVAL và YVAL thì chỉ cần viết

đè P và kết thúc, nếu không thì rẽ trái khi N.YVAL<P.YVAL hoặc rẽ phải trong trường hợp ngược lại Lặp thủ tục này, hãy rẽ nhánh theo XVAL khi ta đang ở mức chẵn trong cây, và theo YVAL khi ta đang ở mức lẻ

Trang 27

Hình 2.2: Lưới bản đồ dựng cây

Thí dụ trên hình 2.2 là lưới bản đồ Gốc (0, 0) ở góc dưới trái của lưới Giả

sử ta phải xây dựng cây 2-d, trường INFO chỉ chứa tên địa điểm

Danh sách các địa điểm như sau đây:

Khởi động cây là rỗng Hình 2.3 là trình tự chèn vào cây Các cây này

được xây dựng như sau đây:

Trang 28

19, bên trái có tọa độ nhỏ hơn 19 Địa Linh biểu diễn vùng bên phải của đường thẳng

đứng a của hình 2.4

3 Khi chèn Quảng Khê, trước hết ta so sánh trường XVAL của Quảng Khê

và Nam Cường Trường này của Quảng Khê là 38, của Nam Cường là 19, vậy ta phải rẽ phải Sau đó so sánh trường YVAL của Quảng Khê với YVAL của Địa Linh YVAL của Quảng Khê là 38, của Địa Linh là 50, do vậy phải rẽ trái Kết quả trên hình 2.3c Địa Linh chia đôi vùng bằng đường nằm ngang b của hình 2.4 Vùng

Trang 29

phía trên đường thẳng có tọa độ x lớn hơn hay bằng 19, tọa độ y lớn hơn hay bằng

50 Vùng phía dưới đường thẳng có toạ độ x nhỏ hơn 19 và tọa độ y nhỏ hơn 50

Hình 2.4: Phép chèn cây k-d trên bản đồ

4 Khi chèn Yến Dương, trước hết phải so sánh XVAL của Yến Dương và Nam Cường Giá trị XVAL của Yến Dương là 54, còn của Nam Cường là 19, vậy phải rẽ phải Sau đó so sánh YVAL của Yến Dương (40) và Địa Linh (50), vậy phải

rẽ trái Tiếp tục so sánh XVAL của Yến Dương (54) và Quảng Khê (38), vậy phải rẽ

phải (hình 2.3d)

5 Cuối cùng, khi chèn xã Quảng Bạch, ta phải so sánh XVAL của Quảng Bạch và Nam Cường Ta rẽ trái vì tọa độ x của Quảng Bạch nhỏ hơn của Nam Cường Kết quả được mô tả trên hình 2.3d và 2.3e

Trong trường hợp tồi nhất thì độ cao của cây 2-d với k nút là (k-1), việc tìm kiếm nút cho trước sẽ mất O(k) lần

Thuật toán chèn vào cây k-d: [2]

KDNode insert(Point x, KDNode t, int cd) {

If (t == null)

T = new KDNode(x)

Trang 30

2.2.3 Xóa trong cây 2-d

Công việc phức tạp nhất với cây 2-d là huỷ bỏ điểm khỏi cây Giả sử T là cây 2 chiều, điểm sẽ huỷ bỏ có tọa độ (x, y) Bước thứ nhất của việc huỷ bỏ là tìm ra nút N trong T sao cho N.XVAL=x và N.YVAL=y Nếu N là nút lá thì huỷ N

là dễ dàng, chỉ việc đặt NIL cho LLINK, RLINK trong nút cha N, giải phóng vùng nhớ N Nếu N là nút trong cây thì phức tạp hơn Trong trường hợp này, cây con

có gốc tại N.LLINK (đặt tên là Tl) hay tại N.RLINK (đặt tên là Tr) là không rỗng Cái ta muốn bây giờ là tìm nút R từ Tl hay Tr có thể thay thế nút N và có thể lần lượt được huỷ bỏ khỏi cây con Như vậy các bước của thuật toán huỷ bỏ nút N bên trong cây sẽ là:

Bước 1: Tìm nút ứng viên thay thế R trong Ti với i∈{l, r}

Bước 2: Thay thế mọi trường không có liên kết của N bởi các trường của R

Bước 3: Huỷ bỏ đệ qui R khỏi Ti

Đệ qui trên đây có điểm dừng vì Ti với i∈{l, r} có độ cao nhỏ hơn cây T Bước phức tạp nhất trong thuật toán trên là tìm ra nút ứng viên thay thế Nút

R muốn thay thế phải có quan hệ không gian với mọi nút P trong Tl và Tr sao cho N dẫn tới P Có nghĩa rằng, nếu P ở phía tây nam N thì P phải ở tây nam R, nếu P ở tây bắc N thì P phải ở tây bắc R, Như vậy, nút mong muốn thay thế R phải thoả các tính chất sau:

1 Mọi nút M trong Tl thoả M.XVAL<R.XVAL nếu level(N) là chẵn và M.YVAL<R.YVAL nếu level(N) là lẻ

Trang 31

2 Mọi nút M trong Tr thoả M.XVAL ≥R.XVAL nếu level(N) là chẵn và M.YVAL ≥R.YVAL nếu level(N) là lẻ

Nếu Tr không rỗng và level(N) là chẵn, thì bất kỳ nút nào trong Tr mà có trường XVAL nhỏ nhất thì là nút ứng viên thay thế Thí dụ, trong hình 2.3e, nếu ta

lấy N là nút chứa Nam Cường, thì nút ứng viên thay thế từ cây con bên phải là nút liên kết với Quảng Khê vì nó có tọa độ x nhỏ nhất trong các nút của cây con phía phải Nam Cường Mặt khác, nếu Tr không rỗng và level(N) là lẻ thì bất kỳ nút nào

trong Tr mà có trường YVAL nhỏ nhất thì là nút ứng viên thay thế

Tổng quát thì việc tìm kiếm nút thay thế từ cây con bên trái chỉ có thể thắng

lợi dưới một số điều kiện nhất định Nếu level(N) là chẵn thì nút thay thế phù hợp

trong Tl là nút bất kỳ nếu thoả mãn trường XVAL của nó có giá trị lớn nhất Tương

tự nếu level(N) là lẻ thì ta có thể sử dụng nút bất kỳ trong Tl mà có trường YVAL

Cái gì xảy ra nếu N có cây phải rỗng (N.RLINK=NIL) Trong trường hợp này ta có thể chọn nút thay thế R từ Tl có giá trị x nhỏ nhất trong Tl (nếu level(N) là chẵn) hay có giá trị y nhỏ nhất trong Tl (nếu level(N) là lẻ) Sau đó ta sửa đổi bước

2 trong thuật toán trên đây như sau:

Bước 2 (sửa đổi): Thay thế toàn bộ các trường không có liên kết của nút N bằng nút R Đặt N.RLINK=N.LLINK và N.LLINK=NIL

2.2.4 Truy vấn khoảng trong cây 2-d

Truy vấn khoảng trên cây 2-d có tên T là truy vấn theo chỉ định điểm (xc, yc)

và khoảng r Kết quả cho lại là tập điểm (x, y) trong cây T sao cho (x, y) nằm trong khoảng R của (xc, yc) Nói cách khác khoảng truy vấn xác định vòng tròn bán kính

Trang 32

r có tâm (xc, yc) và tìm mọi điểm trong cây 2-d nằm trong vòng tròn

Khi xử lý truy vấn khoảng, ta nhớ lại rằng mỗi nút N trong cây 2-d biểu diễn vùng RN, nếu vòng tròn và vùng RN không giao nhau thì không tìm thấy điểm nào trong cây con có gốc là nút N Hãy quan sát các vùng trong hình 2.6d

1 Nút có nhãn Nam Cường biểu diễn vùng chứa các điểm (x, y) của các số thực

2 Nút có nhãn Địa Linh biểu diễn vùng chứa mọi điểm (x, y) với x≥19; nó

có thể được thu nhận bởi biểu thức {(x, y) | x≥19}

3 Nút có nhãn Quảng Khê biểu diễn vùng chứa mọi điểm (x, y) với x≥19 và

y<50; nó có thể được thu nhận bởi biểu thức {(x, y) | x≥19&y<50}

4 Nút có nhãn Yến Dương biểu diễn vùng chứa mọi điểm (x, y) với x≥38 và

y<50; nó có thể được thu nhận bởi biểu thức {(x, y) | x≥38&y<50}

5 Cuối cùng, nút nhãn Quảng Bạch biểu diễn vùng chứa mọi điểm (x, y) với

3 YLB: Ràng buộc này biểu diễn cận dưới của y và có khuôn dạng y≥c3

4 YUB: Ràng buộc này biểu diễn cận trên của y và có khuôn dạng y<c4

Có thể mở rộng định nghĩa kiểu dữ liệu nodetype thành newnodetype bằng

cách gộp các trường vừa mô tả trên như sau:

newnodetype = record INFO: infotype;

XVAL, YVAL: real;

XLB, XUB, YLB, YUB: real  {+, -};

LLINK, RLINK: newnodetype;

end

Trang 33

Khi xen nút ta chỉ phải làm như sau đây:

1 Với gốc cây: đặt - vào XLB và YLB, đặt + vào XUB và YUB

2 Nếu nút N có nút P là cha và mức level(P) là chẵn thì

N.XLB=P.XLB nếu N=P.LLINK

N.XLB=P.XVAL nếu N=P.RLINK

N.XUB=P.XVAL nếu N=P.LLINK

N.XUB=P.XUB nếu N=P.RLINK

N.YLB=P.YLB

N.YUB=P.YUB

3 Nếu nút N có nút P là cha và mức level(P) là lẻ thì

N.YLB=P.YLB nếu N=P.LLINK

N.YLB=P.YVAL nếu N=P.RLINK

N.YUB=P.YVAL nếu N=P.LLINK

N.YUB=P.YUB nếu N=P.RLINK

N.XLB=P.XLB

N.XUB=P.XUB

Thí dụ sau đây xem xét truy vấn khoảng trên bản đồ Huyện Ba Bể, tỉnh Bắc Kạn (hình 2.5) Cho trước vòng tròn tâm (35, 46) và bán kính 9.5 Câu trả lời là hai điểm Quảng Khê và Địa Linh sẽ thoả mãn

Tiến trình truy vấn như sau: Vùng biểu diễn gốc cây 2-d không cắt vòng

tròn, vậy ta kiểm tra xem Nam Cường có trong vòng tròn hay không? Câu trả lời là

nó không nằm trong

Tiếp tục xem xét hai cành của Nam Cường, bên trái biểu diễn mọi điểm (x,

y) thoả x<19 Vì vùng này không cắt vòng tròn nên ta sẽ không xem xét cành này

Mặt khác cành phía phải của Nam Cường biểu diễn mọi điểm (x, y) thoả x≥19, chắc

Trang 34

cành có trong vòng tròn? Câu trả lời là có, vậy ta trả lại cành của nó (Quảng Khê)

Hãy xem xét con của Quảng Khê (Yến Dương) Vùng này được biểu diễn bởi

tập điểm (x, y) thoả x≥38 và y<50, và vùng này cắt đường tròn Vậy cần kiểm tra

xem Yến Dương trong vòng tròn Câu trả lời là không, do vậy có thể dừng tại đây

2.2.5 Cây k-d với k≥2

Cây 2-d để biểu diễn điểm trong không gian 2-d Cây k-d với k≥2 biểu diễn điểm trong không gian k-d Thí dụ, cây 3-d biểu diễn các điểm (x, y, z) và cây 4-d biểu diễn điểm dưới dạng (x, y, x, t) Tổng quát, điểm trong không gian k-d có dạng (x1, , xk), trong đó xi là số thực

Để biểu diễn nút cây k-d, ta giả sử rằng các trường XVAL, YVAL sử dụng

trong cây 2-d bị loại bỏ, thay vì nodetype hay newnodetype sẽ có trường VAL mới

Nó là mảng độ dài k của các số thực

Cây T có cấu trúc nút như vậy được gọi là cây k-d nếu với mỗi nút N trong cây T ta có:

1 Giả sử level(N) mod k=i

2 Với mỗi nút M trong cành trái của N ta có M.VAL[i]<N.VAL[i]

3 Với mỗi nút P trong cành phải N ta có P.VAL[i]≥N.VAL[i]

Mọi thuật toán của cây 2-d tổng quát hóa cho cây k-d với k≥2 Nếu k=1 ta có cây tìm kiếm nhị phân chuẩn

Nhận xét: Ưu điểm của cây k-chiều là dễ cài đặt Cũng như trên cây tìm

kiếm nhị phân, dễ dàng thấy rằng, thời gian thực hiện các phép toán tìm kiếm, xen, loại trên cây k-chiều là O(h), trong đó h là độ cao của cây Trong trường hợp xấu nhất, cây k-chiều với n đỉnh có thể có độ cao n, và do đó thời gian thực hiện các phép toán tìm kiếm, xen, loại là O(n) Người ta đã chứng minh được rằng, thời gian thực hiện phép toán tìm kiếm phạm vị trên cây k-chiều với n đỉnh là O( kn1-1/k ); nói riêng với k = 2, tìm kiếm phạm vi trên cây 2-chiều đòi hỏi thời gian O(2 n)

2.3 Cây tứ phân điểm (Point quadtree)

Một cây tứ phân điểm giống như cây 2-d nó được sử dụng để biểu diễn các điểm dữ liệu trong không gian hai chiều Có điều không giống như cây 2-d là cây tứ

Trang 35

phân điểm luôn phân một vùng thành 4 phần Trong cây 2-d, nút N phân một vùng thành hai phần do vẽ một đường thẳng đi qua điểm (N.XVAL, N.YVAL) Đường

kẻ này có thể là đường nằm ngang nếu cấp của N là lẻ hoặc là đường thẳng đứng trong trường hợp cấp của N là chẵn Đối với cây tứ phân điểm thì nút N phân một vùng mà nó biểu diễn do vẽ cả đường thẳng đứng và đường nằm ngang qua điểm

(N.XVAL, N.YVAL) Bốn phần được tạo ra được gọi là các góc NW (Tây Bắc),

SW (Tây Nam), NE (Đông Bắc) và SE (Đông Nam) xác định bởi nút N và mỗi góc tương ứng với một con của nút N Do đó các nút trong cây bốn nhánh có thể xác định 4 cành Trước khi thực hiện các thao tác đối với cây bốn cành chúng ta đưa ra định nghĩa đơn giản của cấu trúc nút cho một nút của cây tứ phân điểm như sau:

(a) Điểm N phân hoạch một miền thành bốn phần

(b) Điểm N được biểu diễn bởi một đỉnh có bốn con

Cấu trúc đỉnh của cây tứ phân tương tự như cấu trúc đỉnh của cây 2-chiều, chỉ khác là ta cần đưa vào bốn con trỏ trỏ tới bốn đỉnh con

struct Node {

infoType info ;

double Xval ;

Trang 36

2.3.1 Chèn và tìm kiếm trong cây tứ phân điểm

Bây giờ chúng ta hãy khảo sát tập 5 điểm (Nam Cường, Địa Linh, Quảng Khê, Yến Dương và Quảng Bạch) đã được thể hiện với cây 2-d, nó sẽ được thể hiện

như thế nào thông qua một cây tứ phân Hình 2.6 cho thấy quá trình xây dựng cây

tứ phân Tiến trình này được mô tả như sau:

1 Khởi đầu cây tứ phân là rỗng, việc chèn Nam Cường tạo ra nút gốc của

cây được gán nhãn với cặp (19, 45)

2 Việc chèn Địa Linh tạo ra vùng miêu tả bởi Nam Cường được phân thành

4 phần thông qua việc vẽ một đường nằm ngang và một đường thẳng đứng qua (19,

45) Địa Linh ở vị trí (40, 50), nằm trong góc phần tư NE, do vậy Nam Cường có con NE là Địa Linh

Hình 2.5: Cách phân hoạch mặt phẳng bởi các điểm xã trên cây tứ phân điểm

Trang 37

Hình 2.6: Tiến trình chèn vào cây tứ phân điểm

3 Việc chèn Quảng Khê được tiến hành như sau: Quảng Khê nằm theo hướng SE (Đông Nam) của Nam Cường Do vùng này hiện tại chưa có điểm nào nên chúng ta đặt Quảng Khê làm con SE của Nam Cường

4 Việc chèn Yến Dương phức tạp hơn Chúng ta thấy rằng Yến Dương nằm ở

SE (Đông Nam) của Nam Cường Do vậy chúng ta chuyển đến nhánh SE của Nam Cường Kết quả là góc phần tư SE được chia bởi vẽ đường nằm ngang và đường thẳng đứng qua điểm Quảng Khê Với kết quả bốn phần được tạo ra, Yến Dương ở góc NE và như vậy Yến Dương trở thành nút con NE của Quảng Khê

5 Cuối cùng, việc chèn Quảng Bạch là không quá phức tạp bởi vì nó nằm ở

SW (Tây Nam) của Nam Cường Do hiện tại con trỏ này là rỗng nên ta đặt nút này chứa thông tin liên quan đến Quảng Bạch Nhìn chung chiều cao của một cây tứ phân chứa n nút có thể có giá trị lớn nhất là n-1, điều đó có nghĩa là thời gian để tìm

kiếm hay chèn là nhỏ hơn số lượng nút

2.3.2 Thao tác xoá trên cây tứ phân điểm

Khi xoá nút N từ cây tứ phân có gốc T cũng có những nét giống như chúng

ta đã thực hiện với cây 2-d để tìm một nút thay thế thích hợp cho các nút không phải

Trang 38

là lá Đối với trường hợp các nút lá thì việc xoá không có vấn đề gì: Chúng ta đặt trường liên kết tương ứng của nút cha của N trỏ tới NIL và giải phóng không gian lưu trữ

Hình 2.7: Mô hình một cây tứ phân điểm

Việc xoá trong cây tứ phân là rất phức tạp Hình 2.7 chỉ ra tại sao lại phức tạp Đầu tiên mỗi nút trong cây tứ phân thể hiện một vùng và vùng này được định nghĩa hơi khác hơn so với cây 2-d Đối với cây 2-d nó đủ để kết hợp 4 ràng buộc dưới dạng x≥c1, x<c2, y≥c3, y<c4 với các hằng số c1, , c4 Do đó như trong

trường hợp cây 2-d khi mà chúng ta mở rộng nodetype thành cấu trúc nút mới newnodetype, chúng ta cũng có thể mở rộng cấu trúc nút qtnodetype thành một cấu trúc nút mới newqtnodetype với cùng kiểu trường như trên đây (XLB, YLB, XUB,

YUB)

newqtnodetype = record

INFO: infotype;

XVAL, YVAL: real;

XLB, YLB, XUB, YUB: real ∪ { ∞, +∞}

NW, SW, NE, SE: ↑newqtnodetype

end

Khi chèn nút N vào cây T chúng ta cần đảm bảo những điểm dưới đây:

1 Nếu N là gốc của cây T, thì N.XLB=-∞, N.YLB=-∞, N.XUB=+∞, và N.YUB=+∞

2 Nếu P là cha của N thì khi đó bảng dưới đây mô tả những giá trị của các trường XLB, YLB, XUB, YUB của N tuỳ thuộc vào việc N là con NW, SW, NE hay SE của P

Trang 39

Chúng ta sử dụng ký hiệu w=(P.XUB–P.XLB) và h=(P.YUB – P.YLB)

Bảng 2.1: Các trường hợp của phép chèn vào cây tứ phân điểm

Để vận dụng thành công kỹ thuật xoá trong với cây tứ phân điểm thì khi xoá một nút trong N ta phải tìm một nút thay thế R từ một trong các cây con của N (từ một trong N.NW, N.SW, N.NE, N.SE) sao cho mỗi nút R1 trong N.NW là ở phía tây bắc của R, mỗi nút R2 trong N.SW ở phía tây nam R, mỗi nút R3 trong N.NE ở phía đông bắc của R và mỗi nút R4 trong N.SE ở phía đông nam của R

Hãy xem xét cây tứ phân trên hình 2.5 và hình 2.6 Giả sử chúng ta muốn

xoá Nam Cường từ cây tứ phân này Trong trường hợp này, nút thay thế thực tế được tìm là Quảng Khê Không nút nào khác thoả mãn những điều kiện đã đặt ra ở

trên

Tuy nhiên, không phải luôn có khả năng tìm được một nút thay thế Do vậy trong trường hợp xấu nhất việc xoá một nút N có thể yêu cầu việc chèn lại một số nút trong cây con trỏ bởi N.NE, N.SE, N.NW và N.SW Trong phần sau ta sẽ khảo sát cây tứ phân MX cho phép xóa nút một cách dễ dàng hơn

2.3.3 Truy vấn khoảng trong cây tứ phân điểm

Các truy vấn khoảng trong cây tứ phân được thực hiện gần như cách thức thực hiện trong cây 2-d Mỗi nút trong một cây tứ phân thể hiện một vùng và phương pháp tính toán và truy vấn khoảng tránh việc tìm kiếm các cành bắt nguồn

từ những nút mà các vùng liên quan đến chúng không giao với đường tròn định nghĩa bởi truy vấn khoảng Ví dụ như nếu chúng ta đang tìm kiếm cây tứ phân điểm bắt nguồn từ T với tất cả các điểm trong một đường tròn C, tâm (xc, yc) và có bán kính là r, giải thuật được nêu ra như sau:

Giải thuật:

Trang 40

proc RangeQueryPointQuadtree(T: newptnodetype, C: circle)

1 If region(T)  C =  then Halt

2.4 Cây tứ phân Matrix MX (MX-Quadtree)

Trong cả hai trường hợp cây 2-d và cây tứ phân điểm, hình dạng của cây phụ thuộc vào thứ tự các đối tượng được chèn vào cây hay nói cách khác một tập điểm được biểu diễn duy nhất 1 cây tứ phân MX Đặc biệt, thứ tự ảnh hưởng đến chiều cao của cây, do đó ảnh hưởng đến độ phức tạp của các thao tác tìm kiếm và chèn Mỗi nút N của cây 2-d và cây tứ phân điểm biểu diễn vùng và phân chia vùng thành

2 (trường hợp cây 2-d) hoặc 4 (trường hợp cây tứ phân) vùng con Việc phân chia

có thể không đều vì nó phụ thuộc vào vị trí điểm (N.XVAL, N.YVAL) trong vùng biểu diễn bởi N

Ngược lại, mục tiêu của cây MX-quadtree là để đảm bảo hình dạng (và chiều

cao) của cây độc lập với số lượng các nút của cây, cũng như thứ tự chèn các nút

này Hơn nữa MX-quadtree có các giải thuật xoá và tìm kiếm có hiệu quả

Một cách ngắn gọn, cây MX-quadtree làm việc như sau: Đầu tiên chúng ta

giả định rằng bản đồ đang được phân thành một lưới kích thước (2k x 2k) Điểm ở góc dưới bên trái được xem là có toạ độ (0, 0), điểm ở góc trên bên phải có toạ độ (2k, 2k) Người phát triển ứng dụng tự do lựa chọn k và một khi nó được chọn thì nó phải cố định điểm (i, j) trên lưới với 0 i, j  2k – 1

MX-quadtree có cấu trúc nút tương tự như cây tứ phân điểm, đó là chúng có kiểu newptnodetype Có một sự khác biệt là gốc của MX-quadtree miêu tả vùng xác

Ngày đăng: 13/08/2016, 17:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Đặng Văn Đức, Hệ thống thông tin địa lý (2001), NXB Khoa học và kỹ thuật, Hà Nội.Tiếng Anh Sách, tạp chí
Tiêu đề: Hệ thống thông tin địa lý
Tác giả: Đặng Văn Đức, Hệ thống thông tin địa lý
Nhà XB: NXB Khoa học và kỹ thuật
Năm: 2001
[2]. Jacqueline Stoilkovic, The Design and Analysis of Spatial Data Structures (2014), Addison-Wesley Publishing Company, Inc, USA Sách, tạp chí
Tiêu đề: The Design and Analysis of Spatial Data Structures
Tác giả: Jacqueline Stoilkovic, The Design and Analysis of Spatial Data Structures
Năm: 2014
[3]. Paul A. Longley, Michael F. Goodchild, David J. Maguire, David W. Rhind, Geographic Information Systems and Science 2nd Edition (2005), John Wiley &amp;Sons Ltd, The Atrium, Southern Gate, Chichester,West Sussex PO19 8SQ, England, pp.231-235 Sách, tạp chí
Tiêu đề: Geographic Information Systems and Science 2nd Edition
Tác giả: Paul A. Longley, Michael F. Goodchild, David J. Maguire, David W. Rhind, Geographic Information Systems and Science 2nd Edition
Năm: 2005
[4]. Philippe Rigaux, Michel Scholl, Agnès Voisard, Spatial Databases With Application to GIS (2002), Elsevier Science, USA, pp. 237-251 Sách, tạp chí
Tiêu đề: Spatial Databases With Application to GIS
Tác giả: Philippe Rigaux, Michel Scholl, Agnès Voisard, Spatial Databases With Application to GIS
Năm: 2002
[5]. Samet Hanan, Applications of Spatial Data Structures (1990), Addison-Wesley Publishing Company, Inc, USA Sách, tạp chí
Tiêu đề: Applications of Spatial Data Structures
Tác giả: Samet Hanan, Applications of Spatial Data Structures
Năm: 1990
[6]. Samet Hanan, The Design and Analysis of Spatial Data Structures (1990), Addison-Wesley Publishing Company, Inc, USA Sách, tạp chí
Tiêu đề: The Design and Analysis of Spatial Data Structures
Tác giả: Samet Hanan, The Design and Analysis of Spatial Data Structures
Năm: 1990

HÌNH ẢNH LIÊN QUAN

Hình 1.4: Số liệu vectơ được biểu thị dưới dạng điểm (Point). - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 1.4 Số liệu vectơ được biểu thị dưới dạng điểm (Point) (Trang 14)
Hình 1.6: Số liệu vectơ được biểu thị dưới dạng vùng (Polygon) - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 1.6 Số liệu vectơ được biểu thị dưới dạng vùng (Polygon) (Trang 15)
Hình 1.7: Các nhóm chức năng trong GIS - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 1.7 Các nhóm chức năng trong GIS (Trang 18)
Hình 2.2: Lưới bản đồ dựng cây - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 2.2 Lưới bản đồ dựng cây (Trang 27)
Hình 2.3: Trình tự chèn vào cây 2-d - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 2.3 Trình tự chèn vào cây 2-d (Trang 28)
Hình 2.4: Phép chèn cây k-d trên bản đồ - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 2.4 Phép chèn cây k-d trên bản đồ (Trang 29)
Hình 2.5: Cách phân hoạch mặt phẳng bởi các điểm xã trên cây tứ phân điểm - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 2.5 Cách phân hoạch mặt phẳng bởi các điểm xã trên cây tứ phân điểm (Trang 36)
Hình 2.6: Tiến trình chèn vào cây tứ phân điểm - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 2.6 Tiến trình chèn vào cây tứ phân điểm (Trang 37)
Hình 2.8: Trình tự chèn vào cây tứ phân MX - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 2.8 Trình tự chèn vào cây tứ phân MX (Trang 42)
Hình 3.1: Mô hình Use Case của hệ thống - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 3.1 Mô hình Use Case của hệ thống (Trang 57)
Hình 3.3: Bản đồ sau khi hiển thị cả lớp đường và lớp điểm. - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 3.3 Bản đồ sau khi hiển thị cả lớp đường và lớp điểm (Trang 62)
Bảng 3.3 Các nút lệnh trên thanh công cụ - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Bảng 3.3 Các nút lệnh trên thanh công cụ (Trang 62)
Hình 3.8: Kết quả của truy vấn vùng trên bản đồ tổng thể - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
Hình 3.8 Kết quả của truy vấn vùng trên bản đồ tổng thể (Trang 65)
Hình PL2.2 : Kiến trúc SharpMap - Các cấu trúc dữ liệu trong hệ thống thông tin địa lý
nh PL2.2 : Kiến trúc SharpMap (Trang 72)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w