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

Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”

92 784 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng
Trường học Trường Đại học Công nghệ và Quản lý, Đại học Quốc gia Hà Nội
Chuyên ngành Khoa học Máy tính và Công nghệ Thông tin
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 92
Dung lượng 3,78 MB

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

Nội dung

Các thông tin khônggian và thông tin thuộc tính này MapInfo được liên kết với nhau một cách chặtchẽ, không thể tách rời thông qua chỉ số ID, được lưu trữ và quản lý chúngcho cả hai loại

Trang 1

LỜI NÓI ĐẦU

Các bài toán trên đồ thị có nhiều ứng dụng trong các lĩnh vực khác nhaunhư mạng thông tin, đồ họa, ứng dụng lập kế hoạch Các bài toán đặt ra trongcác ứng dụng như vậy thường có cơ sở dữ liệu lớn nên việc rút ngắn thời giantính toán để trả lời một câu truy vấn có ý nghĩa thực tiễn cao Ngoài ra trongthực tế, các đồ thị được sử dụng trong các bài toán có thể liên tục thay đổitheo thời gian, ví dụ như các đỉnh hay các cạnh của nó có thể được thêm vàohay xóa đi (đồ thị động), hoặc thay đổi độ dài, lượng thông qua

Mỗi lần có một thay đổi như vậy cấu trúc dữ liệu của bài toán, thông tin

về các đỉnh cũng như các cạnh cũng bị thay đổi theo Trong khi đó yêu cầu đặt

ra là phải liên tục trả lời các câu hỏi về thông tin trong đồ thị như tính liênthông của đồ thị, rừng bao trùm tối thiểu, 2 đỉnh bất kỳ có nằm trên cùng mộtcây bao trùm tối thiểu hay không, đường đi ngắn nhất Một cách tiếp cận đểgiải quyết các bài toán trên đồ thị động là sử dụng các cấu trúc dữ liệu và thuậttoán truyền thống trong đồ thị tĩnh và chạy lại chúng mỗi khi có sự thay đổitrong đồ thị Tuy nhiên cách tiếp cận như vậy không tận dụng được thông tincủa đồ thị trước khi thay đổi dẫn đến độ phức tạp để trả lời một câu truy vấn

về đồ thị sau mỗi bước thay đổi là lớn

Trong đồ án tốt nghiệp này, em xin trình bày các nghiên cứu, khảo sátthực nghiệm và ứng dụng một số cấu trúc dữ liệu được đưa ra gần đây nhằmgiúp quản lý các đồ thị động một cách mềm dẻo Dựa trên các cấu trúc dữ liệunày, một số bài toán trên đồ thị động như kiểm tra tính liên thông, xây dựngcây bao trùm, tìm đường đi ngắn nhất được giải quyết với độ phức tạp thờigian nhỏ hơn so với việc chạy lại các thuật toán truyền thống trên đồ thị tĩnhmỗi khi có sự thay đổi trong đồ thị

Trang 2

Đề tài của đồ án là “Nghiên cứu, cài đặt thuật toán giải bài toán lậphành trình người đưa thư và ứng dụng” được đặt ra với mục tiêu:

 Nghiên cứu thuât toán giải và xây dựng ứng dụng giải quyết bài toántìm hành trình tối ưu nhất cho người đưa thư, báo với các điểm đưathư, báo cố định hoặc thay đổi tuỳ theo nhiệm vụ phân công

 Mô tả bằng đồ hoạ trên bản đồ tuyến đường lựa chọn cho người đưathư, đảm bảo nhanh và ít tốn kém nhất

 Cài đặt cho mô hình trung tâm phát hành báo với tập hợp người đưathư hữu hạn, hoặc chọn tuyến đường cho xe phục vụ đưa đón họcsinh, sinh viên

Thuật toán tìm hành trình tối ưu nhất cho người đưa thư là một thuậttoán quan trọng, khó khăn và ý nghĩa to lớn trong thực tế tìm lộ trình dichuyển của bất kỳ đối tượng di động nào đó như: người, xe máy, ô tô…Với hệthống này mang lại nhiều tiện ích và hiệu quả cho người sử dụng, đặc biệt làhiệu quả về kinh tế, tiết kiệm thời gian, công sức…trong việc lựa chọn đường

đi cho hợp lý Bên cạnh đó với màn hình mô phỏng trực tiếp trên bản đồ giúpcho người sử dụng dễ quan sát, dễ sử dụng, mang tính chất thực tế cao Môhình này có thể triển khai cho nhiều ứng dụng thực tế:

- Hệ thống tìm đường đi tối ưu cho người đưa thư, người giao báo…

- Hệ thống tìm đường đi tối ưu cho các dịch vụ đưa đón học sinh, sinhviên…

- Hệ thống xác định lộ trình cho các tour du lịch…

Nôi dung của đồ án đề cập tới các vấn đề sau:

- Nghiên cứu lý thuyết đồ thị và ứng dụng

- Nghiên cứu cụ thể về các thuật toán tìm đường đi trên đồ thị, đặc biệt làthuật toán giải bài toán lập hành trình cho người đưa thư

Trang 3

- Nghiên cứu về lập trình sử dụng cơ sở dữ liệu trên bản đồ(cụ thể làMapInfo).

- Nghiên cứu về số hoá bản đồ, thực hiện số hoá một vùng cụ thể(ví dụ:khu vực Hà Nội), số hoá điểm, đường, và các mốc quan trong trên bản

đồ cần thiết cho việc xác định đường đi đường biểu diễn cụ thể trên bảnđồ

- Phân tích và cài đặt thuật toán người đưa thư

- Viết chương trình tìm đường đi cho người đưa thư, và thể hiện kết quảtrên bản đồ cụ thể

Sau 6 tháng thực hiện đế nay em đã xây dựng được chương trình trênngôn ngữ C#, kết hợp với cơ sở dữ liệu MapInfo mô phỏng được các tácnghiệp trên bản đồ Chương trình có thể sử dụng tại các Trung tâm phát hànhbáo chí tại các quận nội thành Hà Nội

Trong quá trình thực hiện đồ án tốt nghiệp em xin chân thành cảm ơnthầy giáo đã tận tình chỉ bảo để em có thể hoàn thành nhiệm vụ

Trang 4

CHƯƠNG 1: TÌM HIỂU VỀ PHẦN MỀM MAPINFO 6.0

1.1.Cài đặt phần mềm MapInfo 6.0:

* Những yêu cầu về hệ thống:

Để đảm bảo cho phần mềm MapInfo 6.0 có thể chạy ổn định trên máytính trước khi cài đặt phần mềm phải chắc chắn đảm bảo được các yêu cầusau đây:

- Máy tính tối thiểu là 586 với bộ nhớ tối thiểu 32Mb RAM

- Màn hình cần có màn hinh VGS hoặc các màn hình có độ phân giải caohơn

- Môi trường hệ thống: đòi hỏi môi trường hệ thống là Windows 95/98hoặc Windows NT 4.0

1.2 Tổ chức thông tin bản đồ trong MapInfo:

1.2.1 Tổ chức thông tin theo các tập tin:

MapInfo tổ chức tất cả các thông tin bao gồm dữ liệu không gian và dữliệu phi không gian dưới dạng bảng cơ sở dữ liệu(Table) Các thông tin khônggian và thông tin thuộc tính này MapInfo được liên kết với nhau một cách chặtchẽ, không thể tách rời thông qua chỉ số ID, được lưu trữ và quản lý chúngcho cả hai loại dữ liệu Mỗi một bảng dữ liệu là một nhóm các tệp với cácphần đuôi mở rộng khác nhau:

- Filename.tab: mô tả cấu trúc của bảng dữ liệu

- Filename.dat: hoặc filename.dbf hoặc filename.wks hoặc filename.xlsbao gồm dữ liệu kiểu bảng xếp thành hàng, cột, những dữ liệu đượcnhập vào Mapinfor thông qua phần mềm dBase/foxBase Lotus 1-2-3,exel, mã ASCII hoặc Microsolt Access thì cơ sở dữ liệu Mapinfor sẽbao gồm filename.tab và tệp dữ liệu hay bảng tính Với dữ liệu nhập

Trang 5

vào dạng Raster, phần đuôi mở rộng tương ứng có thể là bmp, tif hoặcgif.

- Filename.map: mô tả các đối tượng đồ hoạ

- Filename.id: là một tệp chỉ số có tác dụng liên kết dữ liệu với các đốitượng

Đối với bảng dữ liệu của Microsoft Access Chúng có tệp filename.Aidthay thế cho tệp filename.id tệp này có tác dụng liên kết dữ liệu gắn các đốitượng với bảng thông tin trong Microsoft Access

Ngoài ra, khi muốn ghi lại cách quản lý và lưu trữ tổng hợp nhiều bảng dữliệu hoặc nhiều cửa sổ thông tin khác nhau trong Mapinfor có thể ghi lại các sắpxếp này vào một tập tin filename.wor

1.2.2 Tổ chức thông tin theo các đối tượng:

Các bản đồ Máy tính được tở chức , quản lý theo từng lớp (layers) Có thểhình dung các lớp như là các tờ giấy bóng suốt chồng xếp lên nhau Mỗi một lớpthông tin chỉ thể hiện một khía cạnh của mảnh bản đồ

Trong Mapinfor có thể coi mỗi bảng dữ liệu (Table) là một lớp đối tượng.Mỗi một lớp có thể chứa đựng các đối tượng khác nhau dưới dạng vùng (region).Điểm(Point), đường (line), và chữ(text)

+ Đối tượng vùng (region): thể hiện các đối tượng khép kín hình học và baophủ một vùng diện tích nhất định, chúng có thể là các đa giác, hình chữ nhật.+ Đối tượng điểm(Point): thể hiện vị trí cụ thể của các đối tượng địa lý

+ Đối tượng đường(Line): thể hiện các đối tượng không khép kín hình học vàchạy theo một khoảng cách nhất định Chúng có thể là đường thẳng, các đườnggấp khúc và các cung

Trang 6

+ Đối tượng dạng chữ(text): thể hiện các đối tượng không gian không phải địa

lý bản đồ như nhãn tiêu đề, ghi chú

Ví dụ: một lớp bao gồm các vùng với viền bao là ranh giới hành chính, tệpthứ hai gồm các ký hiệu tuyến Thể hiện đường giao thông, lớp thứ ba ký hiệu thểhiện tại vị trí các thành phố thị xã, lớp thứ tư thể hiện địa danh của các thành phố

đó Bằng cách đặt các lớp thông tin này chống lên nhau Chúng ta đã thấy xuấthiện một bản đồ Cứ như vậy cùng một lúc có thể hiển thị một, hai hoặc nhiềulớp

Với các bản đồ được xây dựng thành từng lớp như vậy có thể dễ dàng sắpxếp, thêm hay bớt các lớp thông tin để phù hợp với nội dung và mục đích của bản

đồ cần thành lập

1.3 Thực đơn và các chức năng cơ bản của MapInfo:

(đọc tài liệu tham khảo”giáo trình MapInfo-Hướng dẫn sử dụng phần mềmMapinfor 6.0”)

1.4 Số hoá bản đồ:

1.4.1 Trước khi số hoá bản đồ:

Trước khi số hoá bản đồ cần đặt cho bản đồ một thông số tham chiếu.Trên bản đồ số hoá phải có các tham chiếu cần thiết nếu không bản đồ số hoátạo ra sẽ không chính xác Khi đăng ký toạ độ cần phải đặt những điểm khốngchế bắt buộc ít nhất là 4 điểm và có một điểm kiểm tra(toạ độ này đựơc nhậpkhi MapInfor yêu cầu) Mapinfor sẽ tính toán các thông số toạ độ từ bản đồnày, và sẽ tính toán các lỗi, nếu thoả mãn yêu cầu thì tiếp tục các công việctiếp theo, ngược lại thì phải làm lại từ đầu, sai số càng cao thì bản đồ càngkhông chính xác

1.4.2 Bắt đầu số hoá:

Trang 7

Chọn file trên thanh menu chọn Open:

Trang 8

Rồi tiến hành đăng ký toạ độ cho bản đồ như sau:

Chọn đơn vị bản đò thông qua chọn lưới chiếu bản đồ thông qua

tiến hành đăng ký toạ độ và bấm chuột vào điểm cần đăng ký toạ độ:Nhập toạ độ X, nhập toạ độ Y vào và chọn OK thực hiện các thao tác trên khi hếtcác điểm cần đăng ký thì thôi ( chú ý chọn tối thiểu là 4 điểm) các Image X vàImage Y là các toạ độ đã được chuyển đổi

Sau khi đăng ký xong kiểm tra lỗi và chọn OK

Sau đó tiến hành số hoá

Những vấn đề chung về số hoá:

Khi cửa sổ số hoá được kích hoạt, ta tiến hành các công việc số hoá, thứ tự sốhoá

 Công cụ vẽ phải được lựa chọn

 Cửa sổ bản đồ phải được kích hoạt

 Chắc chắn rằng các điểm toạ độ đã lựa chọn là phù hợp và đầy đủ

 Hãy bấm phím “ S “ để bắt đầu

Trang 9

1.5 Các hàm cơ bản trong Mapinfor:

a) Những toán tử so sánh:

Sử dụng những hộp thoại biểu thức để công thức hoá những biểu thức chữ

số và toán học trong một vài hộp thoại của Mapinfor Những toán tử so sánh đểtạo ra các biểu thức Một số toán tử so sánh phổ biến:

%: dấu gộp cho nhiều ký tự

b) ký tự, số, ngày tháng năm:

- Khi nhập riêng những chuỗi ký tự, số và ngày tháng trong biểu thức cần tuântheo các nguyên tắc trình bày dưới đây:

* Với những chuỗi ký tự: khi nhập các mẫu tin ký tự vào trong một biểu thức thìphải nhập chúng trong dấu ngoặc kép

* Với số (numbers): khi nhập giá trị đặc biệt bằng số không sử dụng dấu phảy,dấu đô la, hoặc bất kỳ những chữ số nào khác hơn chữ số Có thể sử dụng mũ e

để thực hiện

* Với ngày tháng năm: năm thì có thể sử dụng hai hoặc bốn chữ số nếu muốn,ngày tháng năm cách nhau một dấu ”-” hoặc “/” Nếu năm không chỉ rõ thì nó sẽmặc định đồng hồ máy Chú ý phải được cho vào dấu nháy kép Ví dụ:

MM/dd/yy: “09/08/2009”

MM/dd/yyyy: “09/08/2009”

Trang 10

yy/MM/dd: “2009/08/09”

dd-MMM-yy: “09/08/2009”

c) Một số hàm toán học thông dụng:

Ads(num): cho giá trị tuyệt đối của một số

Cos(num): cho cosin của một số, số đó phải là Radian

Int(num): cho phần số nguyên của một số

Maximum(num,num): cho số lớn hơn của 2 chữ số

Curdate(): cho ngày tháng hiện thời

Day(date): cho phần ngày

Month(date): cho phần tháng

Weekday(date): cho ngày của tuần (1-7)(1- là chủ nhật)

Year(date): cho năm

Chr$(num): cho một ký tự mà tương ứng với mã

d) Câu truy vấn SQL:

Thủ tục chung để sử dụng SQL select như sau:

B1: Mở một bảng muốn hỏi.

B2: Chọn Query SQLSelect

Tiến hành điền những câu hỏi và chọn OK Mapinfor sẽ thực hiện các câu hỏi :

Trang 11

Trong đó:

* Select columns: những cột lựa chọn, bao gồm những cột trongbảng kết quả, theo mặc định thì là tất cả, nhưng nếu muốn có thểthay đổi những sự mặc định này bằng cách lựa chọn các cột thể hiệntrong bảng kết quả bằng cách chọn tên và cột và mỗi cột cách nhaumột dấu phẩy

* From table: cho Mapinfor biết những bảng đã để, nếu hỏi hơn haibảng thì tên mỗi bảng cách nhau bằng một dấu phẩy Nếu có hơn haibảng thì phải chỉ rõ một biểu thức để cho Mapinfor nối các bảng vàovới nhau trong where condition Mapinfor cho một biểu thức mặcđịnh thích hợp tuy nhiên nếu sử dụng hơn hai bảng thì phải điềuchỉnh biểu thức điều kiện sao cho phù hợp, hãy chú ý rằng chỉ có thể

sử dụng cơ sở và không sử dụng được bảng câu hỏi

* Where condition: lĩnh vực này phục vụ các mục đích khác nhau,phụ thuộc vào tính chất câu hỏi

Trang 12

Chỉ khi lựa chọn một bảng trong việc hỏi thì lựa chọn này là tuỳchọn khi chọn lựa hơn hai bảng thì phải chỉ rõ điều kiện để Mapinfornối các bảng với nhau.

* Group by columns: tập hợp các cột cho phép tính tổng của những kếtquả trong bảng Nếu nhập vào một tên cột(hoặc một nhóm cột cũngcách nhau bởi một dấu phẩy) thì Mapinfor cho những kết quả của sựtính tổng đó mà không thể hiện những dòng trong bảng Cũng có thể

để trống nếu như không tính

Chú ý: Những cột hàm tổng thể thì không được liệt kê trong lựa chọn này, các

B3: Mapinfor tự động lựa chọn tất cả các dòng trong bảng kết quả Như vậy sau

khi thực hiện có những toán tử với những dòng của toàn bộ bảng, nhưng có thểthay đổi màu khác bằng việc chọn Options / region cũng có thể copy nhữngdòng lựa chọn Thông thường bất kỳ sự thay đổi nào trong bảng kết quả thì sẽđược tự động cập nhật cho bảng gốc (cơ sở) như xoá các hàng trong bảng kếtquả thì các hàng đó sẽ bị xoá trong bảng gốc, tuy nhiên đối với những câu hỏitính tổng số thì có thể thay đổi mà không làm thay đôi đến bảng gốc

B4: Chọn file > save as nếu như muốn sao chép để sử dụng lâu dài và nếu như

không cất giữ thì khi thoát khỏi mainfor sẽ bị xoá

Việc lựa chọn những cột được đưa ra trong bảng kết quả

Trang 13

Việc lựa chọn những cột được dựa vào những tính toán mà những cột đó cần thểhiện Những cột lựa chọn có thể là cột tạm thời, cột đặc biệt trên bảng cơ sở Để

có thể đưa ra các cột qua một mệnh đề, thực hiện theo một thao tác sau:

mà lựa chọn để tham gia tạo kết quả cho biểu thức ( bí danh chính làtên cột)

4 Sau đó có thể lựa chọn các cột thể hiện kết quả

Trang 14

CHƯƠNG 2: TÌM HIỂU VỀ PHẦN MỀM MAPXTREME 2005 2.1 Giới thiệu tổng quan về MapXtreme 2005:

Phần mềm này là sản phẩm chính của hãng MapInfo Nó cho phép tạocác ứng dụng bản đồ tuỳ biến và ứng dụng bản đồ để triển khai ở môi trườngWeb và Desktop với Microsoft Windown

MapXtreme 2005 là một môi trường phát triển và tạo ra các ứng dụngbản đồ, bản đồ trung tâm Nó là công cụ có thể giúp bạn phát triển các ứngdụng dùng ngôn ngữ lập trình ưa thích Một số khái niệm bản đồ trongMapXtreme 2005

2.1.1 Maps:

Một bản đồ sẽ trình bày mối quan hệ không gian giữa các đối tượng bản

đồ, bản đồ định hướng cho bạn tới vị trí của các đối tượng và những điều màchúng trình bày Ngoài ra các đối tượng, các thành phần trên bản đồ có thểchứa các nhãn(label), các nhan đề(title), các chú giải, và các chủ đề Các chủ

đề này được tạo ra dựa trên một vài thao tác gộp các đối tượng và các thôngtin trên bản đồ

Bản đồ được chứa trong một điều khiển MapControl MapControl cũngcung cấp các công cụ cơ sở cho việc view(như pan, zoom in, zoom out,center)

Bạn có thể tạo ra đối tượng bản đồ bằng nhiều cách:

+ Dùng WorkSpace Manager để xây dựng và lưu một vùng làm việcbản đồ(xem thêm phần các đối tượng của WorkSpace Manager)

+ Dùng một mẫu MapXtreme 2005 cung cấp một MapControl bạn cóthể gắp và thả lên trên form trong bộ Visual Studio.NET(xem phần ứng dụngdestop, điều khiển, hộp thoại và các công cụ cho ứng dụng destop và web)

Trang 15

+ Dùng mô hình đối tượng MapWtreme 2005 để xây dựng bản đồ trongứng dụng của bạn.

2.1.2 Tables:

Các đối tượng bảng chứa đựng dữ liệu mà bạn muốn hiển thị trên bản

đồ Các bảng nắm các hàng và các cột về thông tin mô tả đối tượng bao gồmđối tượng geometry(hình học) , kiểu(style), và các thuộc tính(attributes).MapXtreme 2005 hỗ trợ các bảng từ nhiều nguồn dữ liệu lớn khác nhau baogồm các bảng định dạng MapInfo.TAB, hệ thống quản lý cơ sở dữ liệu quan

hệ (RDBMS), dBase, MS Access, grid, seamless, views, WMS và ADO.NET.Kiểu của bảng là sẵn có trong lớp TableInfo Các bảng được mở và đóngthông qua Catalog trong không gian tên MapInfo.Data

2.1.3 Layers:

Các bản đồ được trang trí bởi các layer Các layer chứa đựng các đốitượng bản đồ Và việc hiểu thứ tự của các lớp layer là rất quan trọng Lớplayer cuối cùng được vẽ đầu tiên và lớp đầu tiên được vẽ sau cùng Lớp layerchứa đựng các đối tượng Các đối tượng này sẽ tô mờ các đối tượng của lớpkhác đặt phía dưới Ví dụ một lớp các đối tượng vùng được đặt ở dưới lớp cácđối tượng điểm

Trang 16

Các lớp layer MapXtreme 2005 có thể trình bày nhiều hơn các đốitượng Các lớp layer có thể là các ảnh raster hoặc grid, các mảnh bản đồ, chứađựng các nhãn hoặc các đối tượng feature mà người dùng vẽ Interface chính

là ImapLayer

2.1.4 Feature:

Các đối tượng (feature) được mô tả bởi đối tượng geometry, kiểu(style),nguồn dữ liệu, khoá và các thuộc tính của chúng Một đối tượng đặc trưng chomột hàng trong bảng Các đối tượng hình học (geometry) hỗ trợ bao gồm cácđối tượng khép kín bao trùm cả một khu cho sẵn(như: polygon, Multipoint) vàcác đối tượng dạng đường kéo dài với một khoảng cách cho trước(như: Curve,MultiCurve và LegacyArcs) Một trong những việc sử dụng chính của bản đồ

số là thu thập các thông tin về đối tượng Lớp các đối tượng Feature được đặttrong không gian tên MapInfo.Data

2.1.5 Labels và Legends:

Các bản đồ mà không có các yếu tố để mô tả những đối tượng đượchiện thị là không hữu ích Bản đồ rất cần các dòng text như các nhãn và cácchú giải, chú thích Các lable đã được đề cập ở trên thuộc về một kiểu của lớplayer được gọi là một LabelLayer Điều này cho phép bạn có thể điều khiển vịtrí, nội dung và kiểu của Label Các lớp trong MapXtreme 2005 có thể làmthao tác với các nhãn bao gồm LabelSource, LabelPropertiess vàLabelModifiers

Các yếu tố dạng text khác cũng có thể được dùng trong bản đồ thể hiệncác thông báo một cách phù hợp Các lời chú giải là các yếu tố thuộc về thuậtvẽ bản đồ, nó mô tả các đối tượng trong kiểu đã mã hoá Các chú giải cũng cóthể chứa đựng một nhan đề mô tả khái quát cho những cái mà bản đồ trìnhbày Lớp này được đặt trong không gian tên MapInfo.Mapping

Trang 17

2.1.6 Themes:

Các bản đồ số không chỉ hữu ích cho việc biểu diễn các mối quan hệkhông gian có thể nhìn thấy được giữa các đối tượng bản đồ mà còn cho phépbạn phân tích các dữ liệu phía dưới liên kết với các đối tượng đó để biết thêm

về những cái bạn thấy Ví dụ: một theme được xếp loại thể hiện các khối màu,

và mỗi màu trình bày các đối tượng trên bản đồ có cùng chung một chuẩn nàođó

Trang 18

Các theme cũng được tạo ra dùng cho các nhãn Ví dụ dùng chủ đề gánnhãn có xếp loại để trình bày mối tương quan về dân số giữa các thành phố

2.2 Cấu trúc của MapXtreme 2005:

Trang 19

2.2.1 Tổng quan về mô hình đối tượng:

Mô hình đối tượng là sự lắp ghép của rất nhiều không gian tên Dướiđây là một vài không gian tên hay dùng trong MapXtreme 2005

2.2.1.1 Không gian tên MapInfo.Data:

Không gian tên này chứa các lớp và giao diện cung cấp MapInfo.Data

Mô hình đối tượng này có nhiều lớp khác nhau để truy cập dữ liệu, phụ thuộcvào kiểu định dạng dữ liệu được lưu mà sử dụng các lớp khác nhau để truycập dữ liệu

2.2.1.2 Không gian tên MapInfo.Data.Find:

Không gian tên này chứa đựng các lớp dùng cho việc tìm kiếm thôngqua dữ liệu Nó sẽ làm cho các thao tác tìm kiếm trở nên thuận tiện và dễ dànghơn bằng cách xác định rõ một bảng và cột muốn thực hiện tìm kiếm

2.2.1.3 Không gian tên MapInfo.Engine:

Không gian tên này chứa tất cả các lớp trực tiếp liên quan tới các tínhnăng trọng tâm để điều khiển toàn bộ các ứng dụng dựa trên MapXtreme

2005 Nó bao gồm cả lớp Session chính là điểm bắt đầu cho các ứng dụngMapXtreme

Trang 20

2.2.1.4 Không gian tên MapInfo.Geometry

Không gian tên này là một hệ đẳng cấp có thể mở rộng dựa trên các tiêuchuẩn OCG, các thao tác với hệ toạ độ, và xử lý đối tượng

2.2.1.5 Không gian tên MapInfo.Mapping:

Không gian tên này chứa các lớp, các interface và các liệt kê cho việctạo, hiện thị và xuất bản đồ, các đối tượng layer, các đối tượng table, modifier

2.2.1.6 Không gian tên MapInfo.Tools:

Không gian tên này chứa các lớp cho việc tạo và thực thi nhiều kiểu củacông cụ tool dùng cho các ứng dụng desktop

2.2.1.7 Không gian tên MapInfo.Styles:

Không gian tên này làm sáng rõ mô hình đối tượng Style Lớp Style làlớp cơ sở cho tất cả các kiểu style

2.2.2 Mô hình cấu trúc ứng dụng:

Vừa rồi chúng ta đã có cái nhìn tổng quan về các không gian tên trongMapXtreme 2005, bước tiếp theo là xem xét cấu trúc của ứng dụng

MapXtreme 2005 có thể xây dựng các ứng dụng Web và ứng dụngDesktop

2.2.2.1 Mô hình kiến trúc cho ứng dụng Web:

Trang 21

Mô tả kiến trúc:

Ứng dụng Web minh hoạ ở mô hình trên bao gồm các thành phần và khả năngsau:

 MapXtreme 2005 Web Application

Trang 22

Kiến trúc trong ứng dụng desktop tương tự như kiến trúc trong ứngdụng web trong thiết kế Model-View-Controller của nó.

Dùng Workspace Manager để xây dựng bất kỳ bản đồ cơ sở nào bạncần Dùng các điều khiển Windown và các hộp thoại dialog để mang lại choứng dụng của bạn một giao diện người dùng phong phú Đồng thời bạn cũng

có thể dùng nội dung dữ liệu động từ các nguồn dữ liệu khác nhau và điềukhiển logic điều hướng cho ứng dụng của bạn

2.3 Các đối tượng không gian và hệ toạ độ trong MapXtreme 2005:

2.3.1 Giới thiệu tổng quan về không gian tên MapInfo.Geometry:

Không gian tên MapInfo.Geometry được dùng cho việc tạo, điều khiểncác đối tượng geometry và các hệ toạ độ nơi mà chúng được dùng Các đốitượng Geometry được dùng trong các bản đồ để thể hiện các điểm đơn nhưcác thành phố, các đường bao, như các đường bao của các nước(thể hiện bằng

Trang 23

các đối tượng MultiCurve), và các vùng như các nước(thể hiện băng đốitượng MultiCurve).

Các lớp, các interface và các bộ liệt kê trong không gian tênMapInfo.Geometry định nghĩa các kiểu thể hiện các đối tượng geometry vàcác hệ toạ độ được dùng trong việc hiển thị các đặc trưng địa lý trên bản đồ.Các interface cho phép bạn tạo và chỉnh sửa các đối tượng geometry

2.3.2 Các đối tượng Geometry:

Lớp Geometry cho phép bạn tạo, chỉnh sửa và điều khiển các đối tựơnggeometry, các lớp mà thừa kế từ lớp Geometry này và thể hiện các kiểu củacác đối tượng Geometry bao gồm: Point, MultiPoint, Polygon, MultiPolygon,CurveSegment, LineString và Ring Ngoài ra còn có các lớp sau cũng được kếthừa từ lớp Geometry: Rectangle, RoundedRectangle, Ellipse, LegacyArc, vàLegacyText Lớp Geometry thể hiện mức độ cao nhất của mô hình đối tượngMapInfo Geometry

Trang 24

Tất cả các đối tượng geometry trong MapXtreme 2005 được tạo ra với

hệ toạ độ xác định và không thể bị thay đổi Nếu bạn cần thay đổi hệ toạ độcủa một đối tượng bạn cần tạo ra một bản sao của chính đối tượng đó trongmột hệ toạ độ mới

Tất cả các đối tượng Geometry chứa đựng một phương thức cho việctruy lại một interface để chỉnh sửa thay thế đối tượng trong Edit Mode

Ví dụ: người dùng có thể tạo một đối tượng MultiPolygon và sau đó chỉnh sửa

nó Nếu người dùng không vô ý di chuyển một nút của đường vòng trong rangoài đối tượng này thì khi phương thức EditComplete được gọi, tất cả các đốitượng trong MultiPalygon này sẽ được sắp xếp lại

Lớp đối tượng FeatureGeometry được thiết kế riêng để chứa các lớp mà

có thể được đặt trong các bảng và có thể là một phần của các đối tượngFeature và FeatureCollection Để hiện thị được trên bản đồ nó cần được đặttrong một bảng Các đối tượng nào mà chỉ là một lớp con của Geometry vàkhông là lớp con của FeatureGeometry không thể được lưu tới bảng gồm cảmột phần của Feature và FeatureCollection

a) Các đối tượng của FeatureGeometry:

 Point: các đối tượng Point được dẫn xuất từ lớp FeatureGeometry và thểhiện một điểm đơn trên bản đồ

 MultiPoint: một đối tượng multipoint chứa một tập các đối tượng điểmphi thứ tự và không kết nối Nó hữu ích cho các thao tác trên một chuỗi cácđiểm

 MultiCurve: lớp đối tượng MultiCurve có thể chứa một tập các đốitượng Curve không kết nối Thứ tự của các đối tượng đường cong trongMultiCurve có thể được thay đổi trong suốt quá trình xây dựng

Trang 25

 LineStrings: một đối tượng LineString là một tập hợp trực tiếp các đốitượng điểm tuần tự được nối trong một kiểu tuyến tính LineString có thể làmột phần của các đối tượng Curve hoặc Ring, hoặc chúng có thể tồn tạinhư một đối tượng Geometry độc lập.

 Rectangle: một đối tượng Rectangle Geometry chứa hai điểm thể hiện ởhai góc(góc trên cùng bên tay phải và góc dưới cùng bên tay trái của hìnhchữ nhật)

 …

b) Các đối tượng Geometry:

 Curve: trình bày một đối tượng Geometry dạng đường kề nhau Các đốitượng Curve chứa một tập các CurveSegment đặt cạnh nhau

 CurveSegment: hiện tại với phiên bản này một đối tượng CurveSegmentchỉ là một Line String

 Ring: Một đối tượng đường cong tròn là một tập hợp các đoạn đườngcong mà đặt sát và kề nhau

 Polygon: Một đối tượng Polygon là một đối tượng lắp ghép của cácđường cong tròn, một đa giác phải có ít nhất một đường cong tròn đơn màđịnh nghĩa đường biên phía ngoài của đa giác

2.3.3 Các hệ toạ độ:

Các hệ toạ độ mô tả một vùng nơi mà một đối tượng riêng biệt hoặcmột tập các đối tượng cư trú Hệ toạ độ cho phép bạn phát hoạ, xác định cácđiều kiện của đối tượng hoặc một tập các đối tượng được mô tả LớpCoordSys chứa các phương thức, thuộc tính và các interface cho phép bạn tạo,thực hiện các thao tác chỉnh sửa hệ toạ độ

Trang 26

Khi một đối tượng Geometry được tạo, chúng được tạo trong một hệ toạ độ xác định Các đối tượng này sẽ không thể thay đổi hệ toạ độ nơi mà chúng được tạo ra Chúng chỉ có thể được sao chép trong một hệ toạ độ khác.

2.4 Mô hình dữ liệu và tổng quan về không gian tên MapInfo.Data:

Không gian tên MapInfo.Data chứa đựng những lớp và giao diện cungcấp nhiều cách để truy cập dữ liệu từ một ứng dụng của MapXtreme 2005

Trang 27

Trong phần này sẽ trình bày mô hình tổ chức và lược đồ mẫu truy cập dữ liệuMapXtreme 2005, bao gồm các chủ để:

+ Catolog và Table

+ Table Metadata(Tableinfo)

+ Trình cung cấp MapInfo ADO.NET

+ Feature và tập hợp các feature

2.4.1 Catalog và Tables:

Catalog là một trình quản lý của mẫu truy cập dữ liệu MapXtreme 2005.Tables là khối cơ sở của MapXtreme 2005 Các bảng nắm giữ dữ liệu khi bạnmuốn hiện thị và phân tích trong ứng dụng của bạn Còn Catalog như mộttrình quản lý, nắm giữ một danh sách các bảng hiện thời được mở trong mộtphiên, các bảng cũng có thể được mở, tạo và đóng từ Catalog

Gần như tất cả các hệ thống truy cập dữ liệu của MapXtreme đều baohàm Catalog và Tables

a) Table:

Lớp Table là đơn vị cơ sở của việc truy cập dữ liệu Table, Column và tất

cả thông tin siêu dữ liệu (file TAB) đều có thể vẽ thành bản đồ hoặc không thểvẽ thành bản đồ Các bảng cũng có thể mở và truy cập không cần hiện thị trênmột bản đồ

Trang 28

b) Table Alias:

Khi các bảng được mở, chúng có thể được gán cho một tên hoặc bídanh(Alias) Bí danh được dùng trong khi bảng đó được mở để tham chiếuđến Ví dụ, một bảng có thể tham chiếu bởi alias của nó trong khối câu lệnhtruy vấn SQL Một bảng được mở từ file TAB sẽ được gán bởi bí danh mặcđịnh, bí danh dựa trên tên của file TAB Thuộc tính này là tuỳ chọn và có thểđược đặt là null Tuy nhiên để dễ dàng cho quá trình lập trình nên gán mộtalias

c) Columns:

Một đối tượng Column nhận biết các thuộc tính của một cột trong mộtbảng

Các kiểu dữ liệu hỗ trợ bao gồm:

bit Cái này sẽ liên kết(ánh xạ)tới NET Framework datatype Int32

Cái này sẽ liên kết(ánh xạ) tới >NETFramework datatype Int16

E+308 đến 1.79 E+308 Kiểu này sẽliên kết tới Double

bên trong coi giống như kiểu Double.Đây là một kiểu dữ liệu kế thừa, nó đãđược chuyển hoá và có độ chính xác

cố định Tên của nó được đưa ra xuất

Trang 29

phát từ đỉnh Tên của nó được đưa raxuất phát từ định dạng file dBase Nóánh xạ đến kiểu Double

đến kiểu Boolean

UNICODE giới hạn null và có chiềudài tuỳ biến

mô hình đối tượng này hiện thờikhông hỗ trợ thêm giờ Mặc dù cáctrường của kiểu MIDbType.Date trả

về và chấp nhận các giá trị kiểuDatêTim, tuy nhiên các giá trị giờ sẽ

bị bỏ qua Nó sẽ ánh xạ tới kiểuDateTime, tuy nhiên các giá trị giờ sẽ

bị bỏ qua Nó sẽ ánh xạ tới kiểuDateTime trong NET Framework

FeatureGeometry

phân Nó ánh xạ tới các giá trị mảngcủa Byte

là một kiểu dữ liệu của cột giả khoátrên một bảng

tồn tại cho mục đích nối kết một đố

Trang 30

tượng hệ toạ độ tới đối tượngMICommand yêu cầu xác định rõ một

hệ toạ độ

Style Hãy xem MapInfo.Style đây làkiểu dữ liệu của đối tượng Style lưutrữ trong một cột Style(MI_Style) trênmột bảng

của bảng Đây là kiểu dữ liệu của đốitượng RasterInfo lưu trong cột rastertrên bảng

Đây là kiểu dữ liệu của đối tượngGridInfo lưu trong cột grid trên mộtbảng

của bảng Đây là kiểu dữ liệu của đốitượng WmsClient lưu trong cột Wmstrên một bảng

 MI_Key: tất cả các bảng đều có một cột ẩn tên là MI_Key, cột này sẽ trảlại giá trị key của đối tượng.cột này không phải là kiểu số, có thể chuyển đổithành một chuỗi ký tự

 MI_Geometry: xác định rõ các thuộc tính như: hệ toạ độ của cột và toàn

bộ các đường bao của tất cả cá đối tượng hình học mà nó chứa đựng

Trang 31

 MI_Style: Cột MI_Style được tạo ra một cách tự động khi bạn đang mởmột bảng trong MapInfo với định dạng là(.TAB), còn với các bảng kiểu khácbạn phải tạo cột một cách rõ ràng nếu bạn dùng.

MapInfo.Data.ColumnFactory.CreatStyleColumn, nó sẽ tạo ra một cột với têncủa “MI_Style” và một dữ liệu của MIDbType.Style Khi bạn dùng MISQL đểthêm các hàng vào bảng, chắc chắn bạn phải thêm cả giá trị cho cột MI_Styletrong khối lệnh Insert

d) Catalog:

Catalog là trình quản lý cần thiết của mô hình truy cập dữ liệu Nó nắmmột danh sách các bảng hiện thời đang mở trong một phiên của MapXtreme.Các bảng cũng được mở, tạo và đóng từ Catolog Catalog cũng được xem nhưmột cơ sở dữ liệu đơn nắm giữ tất cả các bảng được mở trong nó

Catalog khi khởi tạo không chứa một bảng nào Khi một bảng được mở,một bí danh sẽ gán cho bảng đó, bí danh đó được dùng để xác định trong cáccâu truy vấn hoặc trong các hệ thống khác

Catolog cung cấp tính năng cho việc tạo bảng mới, định nghĩa và liệt kêcác bảng hiện thời được mở Và nó cũng chứa đựng các phương thức cho việctìm kiếm, truy cập dữ liệu của các bảng đang mở Catalog có một phương tiệnSQL cho phép bạn có thể select, insert, update và delete bảng và các dữ liệutrong bảng Phương tiện SQL còn cho phép bạn nối bất kỳ một bảng nào đượcđịnh nghĩa trong catalog Catalog điều khiển các điều khiển hợp nhất dữ liệu

từ các nguồn khác nhay vì vậy bạn không phải làm điều đó Đây là một công

cụ rất mạnh khi tổ chứ dữ liệu từ các nguồn khác nhau

Những kiểu bảng được hỗ trợ:

Trang 32

fomat

Đây là định dạng sẵn có trong MapInfo Nó là một fileTable cơ sở, có thể có một file.MAP liên kết chứa đựngFeatureGeometry và thông tin về kiểu(Style) Dữ liệu phikhông gian sẽ được lưu trữ trong một file định dạng DAT.dBase Dữ liệu được lưu trong file dBase Bảng có thể có một liên

kết đến một file.MAP chứa đựng đối tượngFeatureGeometry và các thông tin về Style Dữ liệu phikhông gian được lưu trong một file định dạng.DBF

ASCII Dữ liệu được lưu trong một file text ASCII Chiều dài tối

đa của chuỗi là 255 kí tự Bảng ASCII chỉ được InsertMSAccess Bảng của cơ sở dữ liệu Microsoft Access đây là file bảng

cơ sở được đặt trong một Microsoft Access, cơ sở dữ liệuMDB có thể có một liên kết tới file.MAP chứa đối tượngFeatureGeometry và thông tin về kiểu, dữ liệu không gianđược lưu trong một file Access

Shapefile Một bảng Shapefile ESRI Những bảng này chỉ đọc Dữ

liệu thuộc tính phi không gian được lưu trong một file địnhdạng.DBF Các giá trị của thuộc tính hình họcFeatureGeometry được lưu trong file định dạng .SHP.MapXtreme không thể truy cập các chỉ số của không gian.MemTable Lưu trữ các dữ liệu phi không gian trong bộ nhớ Dữ liệu

hình học FeatureGeometry và các chỉ số được lưu trong ổđĩa Đây là các bảng tam, tất cả các dữ liệu sẽ mất khi bảng

đó đóng

Trang 33

RDBMSServer Một bảng không gian được lưu trong một hệ thống quản lý

cơ sở dữ liệu từ xa(như: SQL Server hoặc Oracle) Bảngnày được định nghĩa trong khối câu lệnh sẵn có trong SQL.MapXtreme thực hiện các cây truy vấn có chỉnh sửa vàphân tích

ADO.NET Một bảng của dữ liệu thuộc tính phi không gian dựa trên

một bảng dữ liệu ADO.NET hoặc IdbCommand Kiểu bảngnày hỗ trợ nhiều cung cấp dữ liệu khác nhau với sự thực thicủa một trình cung cấp dữ liệu cụ thể ADO.NET là một sựlựa chọn cần thiết khi không có một trình cung cấp dữ liệucủa MapXtreme ADO.NET được thiết kế để hỗ trợ cả môhình ADO kết nối(IDBTable) và không kết nối(DataTable).IDBTable là đối tượng chỉ đọc

Raster Một bảng chứa một raster Kiểu này cung cấp một bản đồ

cơ sở riêng biệt cho các kiểu bảng không gian khác Cácbảng này có duy nhất một bảng ghi đơn và các giản đồ cột

cố định(RasterInfo, MI_Geometry, MI_Style) Các bảngnày cũng có thể được nối với các bảng dạng vecto dựa vàocác thuộc tính không gian Xem thêm phần “Làm việc vớiRaster và Grids”

Grid Một bảng chứa các ảnh dạng Grid Bảng này cung cấp một

bản đồ cơ sở cho các bảng không gian khác Các bảng nàycũng chỉ có một bản ghi đơn và một giản đồ các cột cốđịnh(RasterInfo, MI_Geometry, MI_Style) Các bảng này

có thể nối với các bảng dạng vectơ sử dụng các thuộc tínhkhông gian Lớp GridReal cung cấp truy cập giá trị ô lưới

Trang 34

WMS0 Một bảng chứa đựng một ảnh từ một dịch vụ bản đồ Web.

Loại bảng này cung cấp một bản đồ cơ sở cho các kiểubảng không gian khác Các bảng chỉ có một bản ghi đơn vàcác giản đồ các cột cố định(GridInfo, MI_Geometry,MI_Style) Các bảng này có thể được nối với các bảng dữliệu dạng vectơ dùng các thuộc tính không gian BảngWMS được truy cập như dạng raster động thông qua mộtWMSClient

Seamless Một bảng mà có thể nối 2 hoặc nhiều hơn các bảng cơ sở

Nó hiện thị như một lớp bản đồ đơn Các bảng dạngSeamless được thay đổi một cách rõ ràng cho các truy vấnkhông gian như vẽ một bản đồ, chúng là các bảng chỉ đọc,các bảng thành phần phía dưới không thể chỉnh sửa mộtcách trực tiếp

View Một cái nhìn trực quan dựa trên khối lệnh Select của

SQL(không phải là SQL sẵn có, được hỗ trợ từ các bảng ởtrên Server)

ResultSet Một bảng chứa đựng các kết quả của một thao tác tìm kiếm

nào đó

Xác định các bảng hiện thời đang mở:

Để xác định các bảng hiện thời bạn phải liệt kê danh mục catalog Điều nàyđược thực hiện bằng cách dùng phương thức sau:

 Catalog.GetTable: Phương thức này sẽ trả lại các đối tượng bảng thamchiếu bởi tham biến TableAlias Đây phải là một bản đã được mở, nếukhông có bảng nào như vậy được tìm thấy thì phương thức sẽ trả lại giá trịnull

Trang 35

 Catalog.Intem(indexer): thuộc tính này có thể được dùng như một chỉ sốcho việc xác định vị trí bảng bằng bí danh của nó Về mặt tính năng thìCatalog.Item tương đương như dùng phương thức Catalog.GetTable nhưngcác mã code sinh ra sẽ dễ dàng cho việc đọc Bí danh Alias phải xác địnhrõ bảng vừa mới được mở.

 Tablennumerators: có thể được chứa đựng nhiều các phương thứcEnumerateTable nạp chồng khác nhau Một trình liệt kê bảng có thể đượctạo ra với một bộ lọc Bộ lọc này sẽ định nghĩa bảng nào thực sự được gộptrong sự liệt kê này

Đóng một bảng:

 Có ba phương thức sẵn có để thực hiện đóng các bảng, Catalog.CloseAll

là phương thức sẽ đóng tất cả các bảng được mở trong khiCatalog.CloseTable sẽ đóng một bảng đơn đang mở Trong lớp Table cũng

có phương thức Close

Packing một bảng:

 Phương thức MapInfo.Data.Table.Pack sẽ loại bỏ các bản ghi được đánhdấu xoá từ bảng đã được Packed thì sự kiện TablePacked của bảng đượcđưa lên Các đối số của sự kiện này chỉ ra các khoá của bảng có thay đổihay không Các key chỉ thay đổi nếu như PackType bao gồm:RemoveDeleteRecords và thực sự có các bản ghi ở giữa bị xoá Còn nếuchỉ có bản chi ở cuối bảng được xoá thì sẽ không có khoá nào bị thay đổi

Và sự kiện này sẽ không chỉ ra các khoá nào thay đổi

Chú ý: Từ khi các đối tượng bảng ResultSet nắm giữ tập hợp các khoá thì thật

là nguy hiểm để thực hiện pack trên bảng từ nơi mà chúng được tạo ra Đốitượng ResultSet sẽ không còn hợp lệ nữa nếu các khoá đã thay đổi PackTypeEnumeration cung cấp cho bạn những tuỳ chọn sau:

Trang 36

+ PackGeometry: xác định đối tượng geometry bị packed.Packing các đốitượng có ý nghĩa là loại bỏ tối đa đến mức có thể các không gian không dùngđến Để cân xứng giữa không gian đĩa trống và tốc độ xử lý thì việc packingcác đối tượng geometry phải liên tiếp bỏ đi một vại không gian trống khôngcần thiết trong Rtree.

+ RebuiltGeometry: xây dựng lại các đối tượng geometry sẽ loại bỏ khônggian trống không cần thiết cái mà là kết quả của mọt chuỗi các hoạt độnginsert, update, delete Không giống như việc packing đối tượng geometry, tuỳchọn này cố tình loại bỏ các không gian không cần thiết trong chỉ số Rtree đểcải tiến sự thực thi của các hoạt động insert, update trong tương lai

+ PackIndex: các chỉ số phi không gian được lưu giữ như các cây nhị phân,thường không đầy đủ các nút lá

+ RemovedeleteRecord: một vài dữ liệu nguồn bao gồm cả nguồn dữ liệunguồn của MapInfo và dBase Về mặt vật lý thì các bản ghi sẽ không bị loại

bỏ khi chúng bị xoá Và để xoá hẳn các bản ghi đó(xoá hẳn trên file TAB lưutrong ổ đĩa máy tính) thì bảng phải được pack với sự xác định lựa chọn này,việc loại bỏ các bản ghi được xoá từ một bảng có thể gây ra các khoa key sẽtrở nên không hợp lệ từ khi chúng thay đổi khi kết quả việc pack hoàn thành + All: đây là một sự kiện chọn thuận tiện và nó tương đương vớiPackGeometry, PackIndex, RemoveDeleteRecord

Lắng nghe các sự kiện của Table và Catalog

 Table:

+ RowInsertEvent: xảy ra khi một hàng mới được thêm vào bảng

+ RowUpdateEvent: xảy ra khi một hàng tồn tại trong bảng được cập nhật.+ RowDeleteEvent: xảy ra khi một hàng mới bị xáo khỏi bảng

+ TablePackedEvent: xảy ra khi một bảng bị Packed

Trang 37

+ TableCloseRequestEvent: xảy ra khi một bảng được yêu cầu đóng

+ TableCloseEvent: xảy ra khi một bảng bị đóng

 Catalog:

+ TableOpenEvent: xảy ra khi một bảng được mở

+ TableCreatedEvent: xảy ra khi có một bảng được tạo mới

+ TableCloseingEvent: xảy ra khi có một bảng đang đóng

2.4.2 Table Metadata(tableInfo):

Lớp TableInfo trong không gian tên MapInfo.Data là một lớp cơ sở trừutượng Nó chứa đựng các thông tin về một bảng đã tồn tại, bao gồm:

+ Các cột: số, tên các cột, kiểu dữ liệu của cột,…

+ Bí danh (alias) của bảng, tên đường dẫn và sự mô tả của nguồn dữ liệu + Client metadata

TableInfo được dùng để mở các bảng và tạo một bảng mới Nó cũng đượcdùng cho việc lấy lại các thông tin về bảng đã mở

2.4.3 MapInfo ADO.NET Data Provider:

MapXtreme 2005 cung cấp các kỹ thuật cho việc đưa ra các lệnh SQL

để trả lại một tập các bản ghi từ các bảng dùng ADO.NET Trình cung cấp dữliệu MapInfo ADO.NET cho phép truy cập dữ liệu trong các ứng dụng NET

Trang 38

Các lớp và các giao diện cho việc truy cập dữ liệu qua MapInfo ADO.NET Data Provider:

a) MIConnection:

Một đối tựơng MIConnection trình bày một kết nối tới Catalog Sự kết nối này sẽ cung cấp một điểm bắt đầu cho việc đưa ra các lệnh SQL và thu được các kết quả Trong hầu hết các trình cung cấp dữ liệu sự kết nối sẽ lập tức cho phép người dùng bắt đầu thực hiện các truy vấn và các lệnh khác dựa vào các bảng đã tồn tại, trình cung cấp dữ liệu MapInfo Data.NET Data Provider không khởi tạo các bảng có sẵn nào Các bảng cần được

mở hoặc được tạo trước khi chúng có thể được truy nhập Không có chuỗi kêt nối được yêu cầu để tạo ra một sự kết nối mới

b) MICommand:

MICommand cung câp các giao diện cần thiết cho việc thực thi các lệnhSQL dựa vào MapInfo Data Provider Đối tượng MICommand sẽ tạo raMIDataReader và MicrollableReader cho lấy dữ liệu qua các phương thứcExcuteReader

Một số lệnh hỗ trợ:

Select

SELECT < select_list >

FROM { < table_source > } [ , n ] [ WHERE < search_condition > ]

[ GROUP BY expression [ , n ] ]

Trang 39

[ ORDER BY {expression | column_position [ ASC | DESC ] } [ , n ]]

< select_list > ::=

{

*| { table_name | table_alias }.*

| { expression } [ [ AS ] column_alias ]

} [ , n ]

< table_source > ::=

table_name [ [ AS ] table_alias ]

Insert

INSERT [INTO] { table_name } [ ( column_list ) ]

{ VALUES ({expression | NULL}[, .n]) | query_specification

Trang 40

* ExcuteFeatureCollection: phương thức này trong lớp MICommand là cầu

nối giữa MapInfo ADO.NET Data Provider và các mô hinh đối tượng Nó sẽthực thi khối lệnh SQL dựa vào sự kết nối với nguồn dữ liệu và tạo ra mộtIresultSetFeatureCollection

c) MIDataReader: MIDataReader cung cấp việc truy cập dữ liệu chỉ đọc tới dữliệu được trả lại từ thực thi khối lệnh select SQL, để tạo ra một đối tượngMIReader, bạn phải gọi phương thức ExcuteReader của đối tượngMICommand MapInfo Data Provider cho phép sử dụng nhiều đối tượngMIDataReader trên cùng một kết nối Tuy nhiên nếu bảng đang được truynhập thì chỉ có một đối tượng MIDataReader được mở tại một thời điểm nhấtđịnh

IsClose và RecordAffected là các thuộc tính mà bạn có thể gọi sau khiđối tượng MIDataReader bị đóng

Bạn phải goi phương thức Close một cách rõ ràng khi dùng đối tượngMIDataReader

Ngày đăng: 19/06/2014, 20:52

HÌNH ẢNH LIÊN QUAN

Hình 2. Đồ thị đấu loại D 5 , đấu loại liên thông mạnh D 6 - Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”
Hình 2. Đồ thị đấu loại D 5 , đấu loại liên thông mạnh D 6 (Trang 52)
Ví dụ 3. Hình dưới đây mô tả cây tìm kiếm theo thuật toán vừa mô tả. - Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”
i ́ dụ 3. Hình dưới đây mô tả cây tìm kiếm theo thuật toán vừa mô tả (Trang 53)
Bảng dưới đây ghi nhãn của các đỉnh trong các bước lặp của thuật toán, đỉnh  đánh dấu * là đỉnh được chọn để bổ sung vào cây khung (khi đó nhãn của nó  không còn bị biến đổi trong các bước lặp tiếp theo, vì vậy ta đánh dấu – để ghi  nhận điều đó): - Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”
Bảng d ưới đây ghi nhãn của các đỉnh trong các bước lặp của thuật toán, đỉnh đánh dấu * là đỉnh được chọn để bổ sung vào cây khung (khi đó nhãn của nó không còn bị biến đổi trong các bước lặp tiếp theo, vì vậy ta đánh dấu – để ghi nhận điều đó): (Trang 64)
Hình 1. Đồ thị G 1 , G 2 , G 3 - Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”
Hình 1. Đồ thị G 1 , G 2 , G 3 (Trang 68)
Ví dụ 1. Đồ thị G 1  trong hình 1 là đồ thị Euler vì nó có chu trình Euler a, e, c,  d, e, b, a - Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”
i ́ dụ 1. Đồ thị G 1 trong hình 1 là đồ thị Euler vì nó có chu trình Euler a, e, c, d, e, b, a (Trang 68)
Hình 3. Minh hoạ cho chứng minh định lý 1. - Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”
Hình 3. Minh hoạ cho chứng minh định lý 1 (Trang 70)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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