Danh Sỏch Cỏc Namespace Trong MapXtreme 2005

Một phần của tài liệu Luận văn BÀI TOÁN NGƯỜI ĐƯA THƯ VÀ ỨNG DỤNG Ở CÔNG TY MÔI TRƯỜNG ĐÔ THỊ QUẢNG BÌNH (Trang 52)

• MapInfo.Data • MapInfo.Engine • MapInfo.Mapping • MapInfo.Data.Find • MapInfo.Geometry • MapInfo.Persistence • MapInfo.Raster • MapInfo.Styles • Mapinfo.Tools • MapInfo.Windows.Controls • MapInfo.WebControls

• MapInfo.Geocoding

•MapInfo.Routing

MapInfo.Data Namespace

MapInfo.Data namespace chứa cỏc lớp và giao diện được cài đặt từ trỡnh điều khiển kết nối cơ sở dữ liệu của MapInfo (MapInfo .NET Data Provider). Để truy xuất dữ liệu trong MapInfo cú 2 cỏch : dựng ADO.NET Data Provider tương tỏc với dữ liệu dựng SQL hoặc dựng mụ hỡnh đối tượng Feature để tương tỏc với dữ liệu dựng cỏc lớp.

MapInfo ADO.NET Data Provider được hiện thực dựng cỏc lớp sau: MIConnection, MICommand, MIDataReader và MIParameter

MapInfo ADO.NET Data Provider

Mụ hỡnh đối tượng Feature bao gồm cỏc lớp sau: Catalog, Table, Feature, IFeatureCollection, ITableFeatureCollection, FeatureCollection,

IResultSetFeatureCollection, MultiResultSetFeatureCollection, SearchInfo và QueryDefinition.

Table

Lớp Table là thành phần cơ sở của tất cả dữ liệu được truy xuất. Table, Column và tất cả cỏc tập tin thụng tin siờu dữ liệu *.TAB được truy xuất từ bảng MapInfo. Cỏc Table chứa dữ liệu mà bạn muốn hiển thị lờn bản đồ. Cỏc Table lưu chứa cỏc hàng và cỏc cột, cỏc hàng và cột này dựng để mụ tả cỏc features bao gồm: phần hỡnh học, loại (kiểu) và cỏc thuộc tớnh của chỳng. cỏc Table cũng cú thể được mở và truy xuất mà khụng cú hiển thị trong bản đồ.

Table Alias

Khi Table được mở thỡ chỳng cú thể được gỏn một tờn (alias), tờn này được dựng để tham khảo đến một table khi table đó mở.vớ dụ Table cú thể được tham khảo tới trong cõu truy vấn SQL. Một Table được mở từ file .TAB thỡ được gỏn một alias mặc định nếu như khụng cú alias nào được chỉ định. Tờn alias mặc định dựa trờn tờn của file TAB. Thuộc tớnh này là khụng bắt buộc và cú thể gỏn bằng null, tuy nhiờn tốt hơn là ta nờn gỏn một alias trong thực hành.

Một đối tượng cột được gắn liền với cỏc thuộc tớnh của đối tượng cột trong một Table, Feature, hoặc một tập cỏc Feature và chỉ rừ tờn cột, kiểu dữ liệu và độ rộng và cỏc thuộc tớnh khỏc của cột.

Catalog

Catalog là lớp quản lý chủ yếu trong mụ hỡnh truy xuất cơ sở dữ liệu của MapXtreme 2005. Lớp Catalog lưu trữ tất cả cỏc Table hiện đang mở trong session. Cỏc Table củng cú thể được mở, tạo và đúng từ Catalog. Catalog cũng cú thể hiểu là một cơ sở dữ liệu đơn lưu trữ tất cả cỏc Table được mở trong nú, khụng chỳ ý đến dữ liệu của cỏc bảng.Catalog cung cấp sự thuận lợi cho việc tạo một bảng mới xỏc định và liệt kờ tất cả cỏc bảng hiện đang mở. Lớp Catalog cũng chứa cỏc phương thức cú thể được dựng để truy xuất dữ liệu trong cỏc bảng đó mở.

Sau đõy là vớ dụ về truy xuất và dựng Catalog trong C#:

C# example:

public static void MapInfo_Data_Catalog() {

// Catalog is accessible off the Session object Catalog catalog = Session.Current.Catalog;

// Open a bunch of tables

Table table = catalog.OpenTable("States.tab");

table.SessionInfo.ReadOnly = true; // Make states ReadOnly table = catalog.OpenTable("world.tab");

table = catalog.OpenTable("worldcap.tab", "World Capitals"); // Enumerate the catalog directly - includes All tables

foreach (Table t in catalog)

Console.Out.WriteLine();

// Now enumerate through only tables that are editable (not ReadOnly) ITableEnumerator tenum = catalog.EnumerateTables(

TableFilterFactory.FilterEditableTables()); while (tenum.MoveNext()) { Console.Out.WriteLine("Table: {0}",tenum.Current.Alias); } Session.Current.Catalog.CloseAll(); } MapInfo.Engine namespace

MapInfo.Engine namespace chứa cỏc interface và cỏc lớp cú quan hệ một cỏch trực tiếp với cỏc hàm trọng tõm nhằm phỏt triển ứng dụng dựa trờn nền MapXteme 2005. Namespace này bao gồm interface ISession là điểm bắt đầu của tất cả cỏc ứng dụng MapXtreme 2005, cỏc lớp trong namespace bao gồm Session, Selections, SearchPath, Collections, Resources, CustomProperties.

Trong phần này ta sẽ tỡm hiểu về cỏc vấn đề sau:

•ISession Interface

ISession Interface là điểm bắt đầu của tất cả cỏc ứng dụng dựa trờn nền MapXtreme 2005. nú quản lý việc khởi tạo cỏc tài nguyờn ban đầu cho ứng dụng MapXtreme 2005. một thực thể của lớp ISession lưu giữ cỏc thành phần của mụ hỡnh đối tượng MapXtreme như : DataAccess engine, MapFactory, CoordSysFactory để mà cỏc ứng dụng Desktop hoặc Web cú thể làm việc được. Sau đõy là sơ đồ minh họa cỏc lớp cài đặt giao diện ISession.

Hỡnh 2.5. sơ đồ minh họa cỏc lớp cài đặt giao diện ISession

Đối với ứng dụng ASP.NET mỗi mỏy khỏch yờu cầu một thực thể của lớp ISession cho riờng nú. Thực thể này thuộc về một phạm vi được gọi và cú thể được sử dụng trong suốt thời gian yờu cầu của mỏy khỏch.

Đối với cỏc ứng dụng Desktop đơn luồng thỡ chỉ cú một thực thể, cũn với cỏc ứng dụng Desktop đa luồng thỡ với mỗi một luồng sẽ cú một thực thể.

Lớp MapInfo.Engine.Session cung cấp cho việc truy xuất đến cỏc đối tượng của lớp ISession. Để lấy một thực thể của lớp ISession hiện tại ta truy xuất đến thuộc tớnh MapInfo.Engine.Session.Current

Quản lý session là một chủ đề then chốt cần hiểu khi thiết kế ứng dụng của bạn. Quản lý session của ứng dụng desktop thỡ khụng rắc rối lắm. Một ứng dụng cần cú người quản lý vỡ cú thể một số cỏc người sử dụng là những người lạsẽ xử dụng ứng dụng của bạn. Nú biết cỏch làm thế nào để xử lý cỏc

trạng thỏi của từng người sửỷ dụng và hiển thị đỳng cỏc thụng tin đến từng người sử dụng.

•Selection Class

Một Selection là một tập cỏc đối tượng IresultSetFeatureCollection lưu trữ một danh sỏch cỏc Feature. Những Feature là một tập con của cỏc hàng trong một Table.

Cú thể cú nhiều hơn một Selection trong một ISession.

Selections là một tập bao gồm tất cả cỏc selection trong một ứng dụng. Luụn luụn cú ớt nhất một Selection được gọi là Selection mặc định. Mỗi Selection thỡ phải cú một tờn và một alias duy nhất

Một Selection trong MapXtreme 2005 khụng phải là một bản sao, nú được tham khảo bởi một IresultSetFeatureCollection đại diện cho một Table trong một Selection. Nếu như bạn thử hiệu chỉnh một Selection sau khi đó đúng một Table làm việc với nú thỡ tham khảo đến một IresultSetFeatureCollection này sẽ khụn cú giỏ trị gõy ra một ngoại lệ.

Cỏc Feature cú thể lựa chọn dựng cỏc Tool hoặc phương thức tỡm kiếm từ lớp MapInfo.Data.Catalog và nú sẽ trả về một tập cỏc đối tượng thuộc lớp IresultSetFeatureCollection

Cỏc Feature cú thể lựa chọn thụng qua cỏc phương thức ExecuteFeatureCollection từ lớp Data.MICommand. trong trường hợp này bạn cú thể thực thi cõu lệnh SQL dựa vào MapInfo Data Provider.

Mapping Namespace

MapInfo.Mapping namespace chứa cỏc lớp, giao diện và bảng liệt kờ giỳp cho việc tạo, hiển thị và xuất ra cỏc map, cỏc layer, cỏc modifie, cỏc thematic, cỏc legend, cỏc adornment và cỏc label.

Dưới đõy là một vài lớp quan trọng cú liờn quan đến MapInfo.Mapping namespace được biểu diễn bằng sơ đồ UML sau:

Hỡnh 2.6. MapInfo.Mapping namespace

Lớp Map đại diện cho bản đồ, chứa tất cả mọi thứ mà bạn cú thể đặt vào bản đồ, một đối tượng Map thỡ được thay thế bởi một đối tượng MapControl đối với ứng dụng Desktop hoặc được gắn bởi một đối tượng MapExport đối với ứng dụng Web.

Lớp Map bao gồm một tập cỏc thuộc tớnh sau :

Bounds, Center, Zoom, Scale, Size, Rotation, DisplayTransform, DisplayCoordSys

Lớp MapFactory là một tập hợp cỏc bản đồ, lớp MapFactory chứa tất cả cỏc đối tượng dựng để tạo cỏc bản đồ từ GeoSet và Workspace.

Lớp MapLoader cung cấp cơ chế để nạp cỏc lớp từ tập tin GeoSet, tập tin XWL Workspace hoặc tập tin TAB. Với mỗi loại bản đồ được nạp tập cỏc lớp con của lớp MapLoader được dựng để nạp bản đồ. Nhữnng lớp con này bao gồm cỏc lớp sau : MapGeosetLoader, MapWorkspaceLoader và MapTableLoader.

Lớp MapControl chứa cỏc đối tượng cho phộp người sử dụng cú thể nhỡn một cỏch trực quan một bản đồ trờn màn hỡnh. Một MapControl cũng chứa

một tập cỏc MapTool để cho phộp bạn hiệu chỉnh cỏi bản đồ. Lớp MapControl dựng cho ứng dụng Desktop thuộc namespace MapInfo.Windows.Controls, Lớp MapControl dựng cho ứng dụng Web thuộc namespace MapInfo.WebControls

Lớp MapViewList và MapView chứa cỏc đối tượng giỳp để lưu lại danh sỏch cỏc ảnh bản đồ trước và kế tiếp của ảnh bản đồ hiện tại

Lớp MapExport giỳp xuất cỏc ảnh bản đồ ra dưới dạng file, stream hoặc ảnh, MapXtreme hỗ trợ nhiều định dạng ảnh khỏc nhau.

Layers

Lớp Map cũng lưu trữ một tập cỏc Layer được biễu diễn bằng một sơ đồ UML dưới đõy:

FeatureLayer

Là lớp dựng để hiển thị cỏc Feature từ Table. Vớ dụ một lớp của đối tượng vựng biểu diễn cỏc nước trờn thế giới là một FeatureLayer. FeatureLayer cú thể chứa dữ liệu dạng .TAB, remote RDB hoặc dữ liệu Raster.

Layers

Mỗi bản đồ cú một tập hợp cỏc FeatureLayer biểu diễn bởi lớp Layer. Thứ tự cỏc lớp trong tập hợp là thứ tự của cỏc Layer đó được vẽ. Cỏc phương thức trong lớp Layer bao gồm Add, Insert, Move và Selete. Lớp Layer được dẫn xuất từ lớp LayersBase.

MapLayer

Là lớp nền của bất kỳ cỏc lớp khỏc, lớp này cài dặt giao diện ImapLayer. Cỏc thuộc tớnh của lớp này bao gồm Enabled, VisibleZoomRange, Nam vàAlias.

UserDrawLayer

Là một lớp trừu tượng cho phộp bạn override phương thức Draw để vẽ cỏc lớp cho riờng mỡnh.

ObjectThemeLayer

Lớp này chứa một trong 3 loại themes khỏc nhau. Lớp này cũng cú cỏc hành vi như cỏc lớp khỏc như phõn nhúm, thiết lập khả năng nhỡn thấy,….

GroupLayer

Lớp này đại diện cho một nhúm cỏc lớp được duy chuyển, tắt hoặc mở một cỏch hợp nhất.

Một lớp Adornment là một tập hợp cỏc trang trớ của bản đồ khụng được phõn cấp. Một Adornment cú thể là chỳ thớch, một tiờu đề, một thanh đo tỉ lệ hoặc một vài đối tượng khỏc do người sử dụng định nghĩa. Một bản đồ sẽ chứa một tập cỏc Adornment đơn lẻ. Mỗi adornment thuộc về một AdornmentControl đơn.

Để tạo cho riờng mỡnh một adornment thỡ dẫn xuất một lớp từ giai diện IAdornment và lớp trừu tượng AdornmentControl.

Legends

Legend thỡ được dựng liờn kết với cỏc themes. Cỏc Legend thỡ được tạo ra bằng cỏch dựng lớp LegendFactory. Một Legend bao gồm một hoặc nhiều legend frame. Mỗi frame thỡ hoặc là ThemeLegendFrame hoặc là CartographicLegendFrame.

Cả hai frame này được tạo ra bằng cỏch sử dụng lớp LegendFrameFactory. Để xử lý và tuỳ biến cỏc Legend và cỏc frame của chỳng thỡ ta sử dụng namespace MapInfo.Mapping.Legends , cỏc lớp trong namespace này bao gồm LegendFormat, CartographicLegendFrame, ThemeLegendFrame, LegendControl, và những lớp khỏc.

chỳ ý là bạn cú thể thiết lập kớch cỡ của cỏc Legend bằng thuộc tớnh Legend.Size nhưng khụng thể thiết lập kớch cỡ của cỏc LegendFrame. Kớch cỡ của cỏc LegendFrame được điều khiển bởi số lượng dữ liệu mà nú chứa.

ScaleBar Adornment

Một thanh tỉ lệ là một đối tượng tuyến tớnh được dựng để đo khoảng cỏch bản đồ theo đơn vị đo của bản đồ. Sử dụng lớp ScaleBarAdornment để tạo một điều khiển ScaleBarAdornmentControl và thờm vào bản đồ. Nếu bạn thử thờm một điều khiển ScaleBarAdornment vào bản đồ của chớnh nú thỡ nú sẽ hiển thị nhưng khụng cú

ScaleBarAdornmentControl, thanh tỉ lệ ScaleBar thỡ khụng thể liờn kết đến bản đồ của chớnh nú.

Title Adornment

Một Title adorment là một đối tượng văn bản được vẽ trờn bản đồ để biểu diễn một tiờu đề của bản đồ hoặc cung cấp một đoạn trớch để làm sỏng tỏ cỏc thụng tin trờn bản đồ. Trong MapXtreme 2005 bạn sử dụng lớp TitleAdornment để tạo một tiờu đề và thờm nú vào bản đồ.

Public Shared Sub MapInfo_Mapping_TitleAdornment (ByVal mapControl1 As MapControl)

Dim ta As New MapInfo.Mapping.TitleAdornment(New System.Drawing.Size(100, 50), mapControl1.Map) ta.Title = "This is a watermark"

mapControl1.Map.Adornments.Append(ta) End Sub

MapInfo.Data.Find Namespace

Namespace MapInfo.Data.Find chứa cỏc lớp dựng để tỡm kiếm dữ liệu. Namespace này giỳp khả năng tỡm kiếm một đối tượng dễ dàng hơn chỉ cần chỉ định một Table cú chứa đối tượng hỡnh học và cột (chỉ số cột) mà nú thực hiện tỏc vụ tỡm kiếm.

Hỡnh 2.8. Sơ đồ UML minh họa namespace Find

Find

Đối tượng Find dựng để xỏc định vị trớ của đối tượng của đối tượng bản đồ, tờn đường phố hoặc giao lộ đường phố bờn trong một mappable table (là một Table cú chứa đối tượng hỡnh học). Lớp Find tỡm kiếm và trả kết quả về dưới dạng một đối tượng FindResult.

Dựng lớp Find trong MapXtreme 2005, bạn phải cú :

•Một Mappable Table

•Một chỉ số cột thực hiện tỏc cụ tỡm kiếm.

•Một chỉ mục tỡm kiếm như : tờn địa điểm, tờn đường, …

•Lớp Find chứa thuộc tớnh và 4 phương thức để tỡm kiếm. FindAddressRange

Đối tượng của lớp này biểu diễn một dóy cỏc địa chỉ được trả về từ đối tượng Find. Đối tượng này được dựng khi địa chỉ đường khụng được tỡm thấy số địa chỉ khụng thuộc phạm vi của dóy địa chỉ trong đường phố.

FindCloseMatch FindResult

Trả về thụng tin từ phương thức Find.Research, nếu tỡm thành cụng thỡ thuộc tớnh FoundKey sẽ chứa khoỏ của đối tượng được xỏc định vị trớ và thuộc tớnh FoundPoint chứa cỏi điểm của đối tượng được xỏc định vị trớ.

MapInfo.Geometry Namespace

Khụng gian tờn miền này chứa cỏc lớp, giao diện và bảng liệt kờ giỳp cho việc tạo và hiệu chỉnh cỏc đối tượng hỡnh học.

Trong phần này ta sẽ tỡm hiểu cỏc thành phần sau :

•Geometry class

Lớp Geometry cho phộp tạo, hiệu chỉnh và xử lớ cỏc đối tượng hỡnh học. Lớp này thừa kế từ lớp Geometry và đại diện cho nhiều đối tượng hỡnh học bao gồm : Point, MultiPoint, Polygon, MultiPolygon, Curve, CurveSegment, LineString và Ring. cỏc lớp sau đõy được kế thừa từ lớp Geometry : Rectangle, RoundedRectangle, Ellipse,LegacyAr và LegacyText.

Lớp Geometry là lớp trừu tượng, tất cả cỏc lớp dẫn xuất từ lớp này đều chứa cỏc thụng tin liờn quan đến hệ thống tọa độ của chỳng. tất cả cỏc lớp này đều cú thể tạo một bản sao và cú thể chỳng với cỏc đối tượng Geometry khỏc.

Hỡnh 2.9. Sơ đồ UML dưới đõy biểu diễn mụ hỡnh lớp Geometry

• Coordinate Systems.

Hệ thống toạ độ cho phộp bạn phỏc họa đối tượng được mụ tả. Khi mà cỏc đối tượng hỡnh học được tạo ra thỡ chỳng được khởi tạo trong một hệ thống tọa độ được chỉ định, cỏc đối tượng này khụng thể thay đụ̉i tọa độ của chỳng mà chỉ cú thể thay đụ̉i tọa độ bằng cỏch copy chỳng vào một hệ toạ độ khỏc.

Lớp CoordSys chứa cỏc phương thức, thuộc tớnh và giao diện cho phộp tạo, xử lớ và hiệu chỉnh hệ thống tọa độ

2.3. SƠ ĐỒ MẠNG LƯỚI GIAO THễNG THÀNH PHỐ ĐỒNG HỚI 2.3.1. Bản đồ

2.3.2. Sơ đồ mạng lưới giao thụng

2.4. TỔNG KẾT CHƯƠNG 2

Trong chương này, tụi đó giới thiệu tụ̉ng quan về phần mềm Mapinfo và cụng cụ lập trỡnh Mapxtreme. Tụi cũng đó tiến hành khảo sỏt cỏc tuyến đường và số húa thành bản đồ trong Mapinfo để ứng dụng cho thuật toỏn tỡm lộ trỡnh đi trờn bản đồ.

CHƯƠNG 3

THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRèNH 3.1. THIẾT KẾ CHƯƠNG TRèNH

3.1.1. Yờu cầu của chương trỡnh

Với yờu cầu xõy dựng hệ thống hỗ trợ tỡm đường đi cho người đưa thư bảo đảm tiờu tốn ớt thời gian, cụng sức, đặc biệt mang lại hiệu quả kinh tế cao, hệ thống phải đảm bảo cỏc yờu cầu sau:

- Thiết kế giao diện rừ ràng, dễ hiểu, dễ sử dụng và tối ưu cỏc thao tỏc. - Xõy dựng cỏc cụng cụ hỗ trợ thờm, sửa, xoỏ cỏc đối tượng, nhằm phục vụ cho bài toỏn động(thay đụ̉i lộ trỡnh của người đưa thư).

- Xõy dựng cỏc tiện ớch cho người sử dụng như: xem cỏc thuộc tớnh của bất kỳ một đối tượng này, thay đụ̉i cỏc thụng số của đối tượng, phúng to, thu nhỏ tuy theo nhu cầu người sử dụng...

- Thực hiện tỡm kiếm theo thụng số cố định một cỏch nhanh chúng và dễ dàng.

- Tăng hiệu quả sử dụng của hệ thống bằng tớnh tiện ớch của nú, cựng lỳc cú thể thực hiện lập lộ trỡnh cho nhiều người đưa thư.

3.1.2. Thiết kế cơ sở dữ liệu

Dựa vào cỏc yờu cầu hệ thống, xõy dựng cơ sở dữ liệu bao gồm cỏc bảng sau: a) Bảng nỳt (Đỉnh) giao thụng (tblDinhGT): Bảng 3.1. Bảng nỳt giao thụng Name Type Manut Int Tennut Character Nutke Character

Bảng 3.2. Bảng tuyến giao thụng Name Type Maduong Character Tenduong Character Nutdau Character Nutcuoi Character Dodai Float

3.2. ỨNG DỤNG BÀI TOÁN NGƯỜI ĐƯA THƯ CÀI ĐẶT CHƯƠNG TRèNH

Áp dụng bài toỏn người đưa thư cho danh sỏnh cỏc nhõn viờn, mỗi nhõn

Một phần của tài liệu Luận văn BÀI TOÁN NGƯỜI ĐƯA THƯ VÀ ỨNG DỤNG Ở CÔNG TY MÔI TRƯỜNG ĐÔ THỊ QUẢNG BÌNH (Trang 52)

Tải bản đầy đủ (DOC)

(90 trang)
w