Lựa chọn công nghệ

Một phần của tài liệu Mô hình hóa bản đồ ba chiều và ứng dụng (Trang 84)

a. Công nghệ phát triển ứng dụng web

Qua nghiên cứu tác giả thấy rằng, hiện có nhiều giải pháp, công nghệ cả thương mại và mã nguồn mở cho việc xây dựng các ứng dụng web cho bản đồ và các hệ thống GIS trên không gian hai chiều, nhưng với việc xây dựng hệ thống bản đồ ba chiều trên web thì hiện không có giải pháp, công nghệ sẵn có.

Do đó tác giả tập trung nghiên cứu vào hai công nghệ cho phép lập trình theo kịch bản, lập trình vẽ trực tiếp và có thể nhúng vào các ứng dụng web, đó là: Adobe Flash và giải pháp kết hợp công nghệ Microsoft Silverlight và Windows Presentation Foundation (WPF) của Microsoft.

Qua nghiên cứu các ưu và nhược điểm của hai công nghệ này, tác giả đã lựa chọn công nghệ Microsoft Silverlight kết hợp với Windows Presentation Foundation (WPF) của Microsoft để làm công nghệ nền tảng phát triển ứng dụng thử nghiệm của mình.

Dưới đây tác giả sẽ giới thiệu ngắn gọn về công nghệ đã lựa chọn này:

- Microsoft Silverlight:

Ngày nay khi phát triển các ứng dụng trên web các doanh nghiệp phần mềm thường đau đầu với những khó khăn về sự hỗ trợ trên trình duyệt và hệ điều hành. Điều họ muốn là với những ngôn ngữ và công cụ phát triển đã vốn quen thuộc từ trước đến giờ đều có thể làm cho họ những ứng dụng chạy tốt trên mọi nền tảng, mọi trình duyệt. Silverlight ra đời như một công nghệ phù hợp cho phép họ làm được những việc như thế. Nếu bạn đã quen thuộc với công nghệ .Net Framework thì khi tiếp cận với Silverlight bạn sẽ tiết kiệm được rất nhiều thời gian và chi phí cho công nghệ web mới.

Các công nghệ plug-in trên web trước đây không cho phép bạn truyền tải những dữ liệu hình ảnh chất lượng cao như 720p HDTV, Trong khi chất lượng đường truyền mạng ngày nay đang ngày càng tốt hơn và nhu cầu được xem những video chất lượng cao cũng tăng lên thì sự ra đời của

Silverlight đã đem đến cho người đam mê thế giới đa phương tiện một sự thỏa mãn thật sự.

Silverlight là một dạng plug-in dựa trên công nghệ của Microsoft .Net, nó độc lập với đa nền tảng và đa trình duyệt, nó cho phép phát triển các ứng dụng đa phương tiện đặc biệt là các ứng dụng trên web. Silverlight cung cấp một mô hình lập trình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình .Net như Visual basic, C#.

Khả năng đa phương tiện của silverlight thể hiện ở mức độ truyền tải âm thanh và hình ảnh chất lượng cao một cách nhanh chóng và hiệu quả trên tất cả các trình duyệt chính như Internet Explorer, Firefox, Safari.

Hình 3.6: Ứng dụng Silverligt trình diễn media

Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép bạn được lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài toán của bạn. Silverlight cung cấp các tính năng sau:

 Sự kết hợp của WPF và XAML: Silverlight là một gói nhỏ của công nghệ Windows Presentation Foundation (WPF). Nó được mở rộng

nhiều hơn các Element trong trình duyệt để tạo giao diện người dùng. PWF cho phép bạn tạo ra đồ họa 3 chiều, hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác trên máy khách. XAML (Extensible Application Markup Language) cung cấp các cú pháp đánh dấu đặc trưng cho việc tạo các Element.

 Mở rộng cho ngôn ngữ kịch bản: Silverlight cung cấp việc mở rộng cho các ngôn ngữ kịch bản (Javascript) ở một số các trình duyệt phổ biến để thể hiện việc trình bày giao diện và thao tác người dùng một cách phong phú hơn.

 Sự tích hợp với các ứng dụng đã có: Silverlight tích hợp liền mạch với ngôn ngữ javascript và mã Ajax của ASP.Net để bổ sung các chức năng bạn đã xây dựng được. Bạn có thể tạo những tài nguyên trên nền máy chủ có trong ASP.NET và sử dụng các khả năng của Ajax trong ASP.NET để tương tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng.

 Sử dụng mô hình ngôn ngữ lập trình trên nền tảng .Net Framework và các công cụ để kết hợp: Bạn có thể tạo các ứng dụng trên nền tảng Silverlight và sử dụng các ngôn ngữ động như InronPython cũng như là các ngôn ngữ C# và Visual Basic. Bạn cũng có thể sử dụng các công cụ phát triển như Visual Studio để tạo ứng dụng trên nền tảng Silverlight.

 Hỗ trợ mạng: Silverlight bao gồm các hỗ trợ cho HTTP qua TCP. Bạn có thể kết nối tới các dịch vụ của WCF, SOAP, hoặc ASP.NET AJAX và nhận về các định dạng theo cấu trúc XML, JSON hay dữ liệu RSS.

 Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ): Điều này cho phép bạn truy cập dữ liệu bằng cách sử dụng cú pháp trực quan tự nhiên và mạnh mẽ, được gõ bởi các đối tượng có trong các ngôn ngữ .Net Framework.

- Windows Presentation Foundation (WPF)

Được phát triển bởi Microsoft, Windows Presentation Foundation (hay WPF) là một hệ thống con đồ họa (graphical subsystem) để biểu diễn (rendering) giao diện người dùng trong các ứng dụng trên nền Windows. WPF, trước đây được biết đến với cái tên “Avalon”, ban đầu được đưa ra như là một phần của .NET Framework 3.0. Đúng hơn là tin cậy (relying on) vào hệ thống con GDI cũ hơn, WPF sử dụng DirectX. WPF cố gắng cung

cấp một mô hình lập trình nhất quán để xây dựng các ứng dụng và cung cấp sự phân chia rõ ràng giữa giao lớp diện người sử dụng và lớp business logic. Theo đung nghĩa của từ này, nó gần giống với các mô hình đối tượng hướng XML, như là các mô hình đã được cài đặt XUL và SVG [34].

WPF sử dụng XAML, một ngôn ngữ bắt nguồn từ XML, để định nghĩa và kết nối một loạt các phần tử giao diện UI. Các ứng dụng WPF có thể được triển khai như là các chương trình desktop độc lập, hoặc được sử dụng như là một đối tượng nhúng (embedded object) trong website. Nó hướng tới hợp nhất một số các phần tử giao diện người dùng chung, như là biểu diễn 2D/3D, các tài liệu có khả năng thích ứng hoặc cố định, cách trình bày bản in (typography), đồ họa véc tơ, hoạt ảnh thực (runtime animation), và các đa phương tiện được tạo ra trước. Các phần từ này sau đó có thể được kết nối với nhau và được thao tác dựa trên các sự kiện khác nhau, các tương tác người sử dụng và các ràng buộc dữ liệu (data bindings).

Các thư viện WPF runtime được đưa vào trong tất cả các phiên bản của hệ điều hành Windows từ Windows Vista và Windows Server 2008. Người sử dụng của Windows XP SP2/SP3 và Windows Server 2003 có thể tùy chọn cài đặt các thư viện cần thiết.

Đến nay WPF đã đưa ra 4 phiên bản chính: WPF 3.0 (11/2006), WPF 3.5 (11/2007), WPF 3.5sp1 (8/2008), and WPF 4 (4/2010).

Microsoft Silverlight sử dụng WPF để cung cấp các control nhúng trên web (embedded web controls) cạnh tranh với Adobe Flash, nhưng tập trung nhiều hơn vào mô hình đối tượng UI và ít tập trung vào hoạt cảnh (animation). Biểu diễn 3D runtime không được hỗ trợ trong Silverlight, nhưng có trong các ứng dụng WPF nhúng.

- XAML

XAML được viết tắt bởi cụm từ: Extensible Application Markup Language là một ngôn ngữ dạng khai báo. Bạn có thể tạo ra các phần tử đồ họa (UI) với những khai báo thông qua thẻ trong XAML. Sau đó bạn có thể dùng file mã lệnh tách biệt của nó (code-behind) để trả về những sự kiện và điều khiển những đối tượng mà bạn đã định nghĩa trong XAML. Nó là một ngôn ngữ mô tả dựa trên XML là rất trực quan để xây dựng giao diện từ những bước phác thảo cho tới sản xuất sản phẩm, đặc biệt hữu ích cho đối tượng có kinh nghiệm thiết kế website và kỹ thuật.

Ngày nay, XAML được sử dụng để tạo giao diện người sử dụng (UI) trong WPF, Silverlight, các luồng công việc khai báo (declare workflows) trong WF và đối với giấy điện tử (electronic paper) trong chuẩn XPS.

Tất cả các lớp trong WPF có các chỉ dẫn phi tham số (parameterless constructors) và tạo ra các cách sử dụng dư thừa của các thuộc tính. Điều đó được làm để làm cho nó hoàn toàn phù hợp với ngôn ngữ XML giống như XAML.

- WPF 3D

o Cơ bản về đồ họa ba chiều: Ý tưởng cơ bản của việc tạo ra các đồ họa 3 chiều là xây dựng một mô hình ba chiều của đối tượng. Bởi vì màn hình máy tính của chúng ta chỉ là hai chiều, chúng ra định nghĩa một camera để chụp ảnh đối tượng. Ảnh này là là hình chiếu của đối tượng trên mặt phẳng hai chiều. Hình chiếu này được tạo ra dưới dạng một ảnh bimap nhờ một engine tạo ảnh 3 chiều (3D rendering engine). Engine này xác định màu sắc cho mỗi điểm ảnh bằng cách tính toán lượng ánh sáng (amount of light) mà được chiếu (reflected) bởi bất kỳ nguồn sáng nào tới bề mặt chiếu (projection surface) bởi các đối tượng trong không gian ba chiều [32].

Tất cả bề mặt của đối tượng đều có vật liệu (material) và màu quét (brush). Vật liệu định nghĩa số lượng ánh sáng được chiếu đối với mỗi góc cụ thể và màu quét (brush) định nghĩa màu sắc. Một màu quét (brush) có thể là một màu đơn giản hoặc là màu trải đều (gradient) hoặc thậm chí là một ảnh (được gọi là ảnh dán - texture).

Hình 3.7: Phép chiếu đối tượng 3D trên màn hình theo một góc nhìn cụ thể [32]

o Thế giới của các tam giác: Trong thế giới của đồ họa ba chiều, tất cả các đối tượng được mô tả bởi tập các tam giác. Nhưng tại sao lại là

tam giác? Bởi vì một tam giác là một đối tượng hình học (geometry) phù hợp nhất để mô tả mặt phẳng hai chiều. Engine tạo ảnh ba chiều này có thể tính toán màu sắc của mỗi tam giác phụ thuộc vào vật liệu là góc của nó đối với các nguồn sáng trong cảnh. Nếu chúng ta xây dựng thế giới của mình trên các hình chữ nhật, các điểm không cần bằng phẳng. Để tính toán và tạo ra bề mặt sẽ phức tạp hơn rất nhiều nhiều.

Bề mặt của một đối tượng ba chiều gọi là Mesh. Mesh được định nghĩa bởi số một số các điểm 3 chiều. Các điểm này được gọi là các đỉnh. Các đỉnh này được nối với nhau bởi một mẫu xoáy chôn ốc (winding pattern) để định nghĩa các tam giác. Mỗi tam giác có một mặt trước và mặt sau. Chỉ mặt trước được tạo ra (rendered). Mặt trước được định nghĩa bởi thứ tự xoáy chôn ốc cùa các điểm (winding order of the points). WPF sử dụng một mẫu xoáy chôn ốc ngược chiều kim đồng hồ. Chúng ta có thể nhớ điều này theo một quy tắc nhớ đơn giản được gọi là “quy tắc bàn tay phải”. Điều này có nghĩa nếu bạn khép kín bàn tay phải chỉ để ngón tay cái chĩa lên ra hiệu, các ngón tay di chuyển ngược chiều kim đông hồ trong khi ngón tay cái chỉ lên trên. Các ngón tay chỉ thứ tự xoáy chôn ốc, trong khi ngón tay cái cho biết mặt trên của tam giác.

Hình 3.8: Mô hình hóa đối tượng trong không gian 3 chiều [32]

o Hệ tọa độ thuận tay phải: WPF sử dụng một hệ thọa độ thuận tay phải. Điều này có nghĩa rằng nếu bạn nắm các ngón tay của bàn tay phải như được chỉ ra trong hình dưới, các ngón tay trong hình chỉ các chiều dương của các trục tọa độ XYZ.

-

Hình 3.10: Hệ trục tọa độ thuận tay phải, hướng ba ngón tay chỉ chiều dương của ba trục tọa độ XYZ [32]

o Các phần tử của một cảnh ba chiều (3D scene):

 Khung nhìn 3 chiều (Viewport3D): Khung nhìn là một điều khiển (control) mà xây dựng cổng (gate) giữa thế giới hai chiều và ba chiều

 Camera: Mỗi cảnh ba chiều có chính xác một camera. Camera này định nghĩa vị trị và hướng nhìn (LookDirection) và hướng nhìn lên (UpDirection) của người quan sát (viewer). WPF hỗ trợ các camera chiếu vuông góc (orthographical cameras) và camera quan sát từ xa (perspective cameras).

 Các mô hình 3 chiều (3D Models): Một mô hình ba chiều định nghĩa một đối tượng trong một cảnh. Nó có một đối tượng hình học (Geometry) là Mesh và một vật liệu (Material) có thể là vật liệu khuyếch tán (diffuse), vật liệu phản chiếu (specular) hoặc vật liệu emmisive. Vật liệu đã tự có một quét màu (brush).

 Ánh sáng (Lights): Không có ánh sáng bạn không thấy gì. Vì vậy chúng ta cần đặt ít nhất một nguồn sáng trong cảnh của chúng ta để chiếu sáng mô hình của chúng ta. WPF hỗ trợ các nguồn sáng khác nhau, như: Nguồn sáng bao quanh (AmbientLight); Nguồn sáng có định hướng (DirectionalLight); Điểm sáng (PointLight); Đốm sáng (SpotLight).

o Ví dụ: Ví dụ dưới đây chỉ ra cách tạo một mesh khối lập phương đơn giản với 8 đỉnh được bọc bởi 12 tam giác để tạo nên hình dáng của một khối lập phương.

Hình 3.11: Ví dụ khối lập phương đơn giản được tạo từ WPF 3D [32]

<Viewport3D>

<Viewport3D.Camera>

<PerspectiveCamera Position="-40,40,40" LookDirection="40,-40,-

40 " UpDirection="0,0,1" />

</Viewport3D.Camera>

<ModelVisual3D>

<ModelVisual3D.Content>

<Model3DGroup>

<DirectionalLight Color="White" Direction="-1,-1,-3" />

<GeometryModel3D> <GeometryModel3D.Geometry> <MeshGeometry3D Positions="0,0,0 10,0,0 10,10,0 0,10,0 0,0,10 10,0,10 10,10,10 0,10,10" TriangleIndices="0 1 3 1 2 3 0 4 3 4 7 3 4 6 7 4 5 6 0 4 1 1 4 5 1 2 6 6 5 1 2 3 7 7 6 2"/> </GeometryModel3D.Geometry> <GeometryModel3D.Material>

<DiffuseMaterial Brush="Red"/>

</GeometryModel3D.Material> </GeometryModel3D> </Model3DGroup> </ModelVisual3D.Content> </ModelVisual3D> </Viewport3D>

b. Công nghệ số hóa, biên tập bản đồ

Nguồn dữ liệu thử nghiệm là bản đồ địa hình khu vực Hồ Hoàn Kiếm, TP. Hà Nội tỷ lệ 1:2000 do Bộ Tài nguyên và Môi trường thành lập.

Bản đồ địa hình tỷ lệ 1:2000 ở dạng DGN, trong đó có lớp địa hình bao gồm đường bình độ cái và đường bình độ con. Tác giả sử dụng công cụ của hệ thống phần mềm ArcView để chuyển đổi dữ liệu đường bình độ này (đã gán giá trị độ cao) sang mô hình số độ cao dưới dạng lưới đều 100mx100m đưa vào lưu trữ trong CSDL. Dữ liệu này phục vụ cho việc xâu dựng lớp mô hình số độ cao.

Hình 3.12: Bản đồ địa hình tỷ lệ 1:2000 khu vực Hồ Hoàn Kiếm

Các lớp thông tin: giao thông, thủy hệ, dân cư, địa danh, … tác giả lấy từ bản đồ địa tỷ lệ 1:2000 trên. Với các lớp thông tin này, tác giả sử dụng hệ thống ArcToolBox của phần mềm ArcGIS, chuyển các lớp này từ dữ liệu nguồn DGN sang dạng shape file, sau đó chuyển vào lưu trữ trong CSDL.

Với các lớp đối tượng nổi trên bề mặt, để hiển thị các đối tượng này một cách chính xác, tác giả đã sử dụng bản đồ địa chính Quận Hoàn Kiếm tỷ lệ 1:2000 khu vực Hồ Hoàn Kiếm, trên bản đồ địa chính này đã bao gồm hình dáng (polygon) các lô đất chính xác vị trí các đối tượng nổi trên bề mặt. Sử dụng ArcGIS để chuyển đổi và biên tập lại các foot-print của các đối tượng nổi trên bề mặt này, sau đó chuyển lưu trữ trong CSDL.

Hình 3.13: Bản đồ địa chính tỷ lệ 1:2000 khu vực Hồ Hoàn Kiếm

c. Công nghệ chuyển đổi dữ liệu vào cơ sở dữ liệu

Sử dụng công cụ ArcToolBox của phần mềm ArcGIS để chuyển các lớp dữ liệu: giao thông, thủy hệ, dân cư, địa danh, … từ bản đồ địa hình vào cơ sở dữ liệu.

Sử dụng bộ thư viện ArcGIS Engine của ESRI để phát triển công cụ chuyển đổi dữ liệu tùy biến vào cơ sở dữ liệu.

d. Công nghệ xây dựng các mô hình 3D tòa nhà

Sử dụng phần mềm 3D Studio Max để xây dựng mô hình 3D các tòa nhà. Các tòa nhà nổi trên bề mặt DEM được chia làm 2 loại:

- Các đối tượng cần mô hình hóa chi tiết: ví dụ như Tháp Rùa, Đền Ngọc Sơn, Bưu điện Hà Nội, Tượng đài Lý Thái Tổ, …

- Các đối tượng không cần mô hình hóa chi tiết: các tòa nhà nhỏ, và những tòa nhà chưa được chi tiết hóa trong giai đoạn thử nghiệm này.

Với các đối tượng tòa nhà cần mô hình hóa chi tiết lại chia ra làm các cấp độ chi tiết khác nhau theo mức độ phóng to (thu nhỏ) khác nhau khi xem bản đồ. Tác giả đã phối hợp với nhóm 3D Hà Nội để thực hiện hạng mục công việc này. Đầu tiên sử dụng phần mềm 3D Studio Max xây dựng mô hình chi tiết cho các tòa nhà, sau đó ra thực địa chụp ảnh các mặt của tòa nhà, sử dụng công cụ dán textture chính xác vào các vị trí trên mô hình. Kết quả là được một tập các mô hình 3D các

Một phần của tài liệu Mô hình hóa bản đồ ba chiều và ứng dụng (Trang 84)

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

(99 trang)