Tìm hiểu và xây dựng hệ thống thông tin địa lý - Webgis

TÓM TẮT KHÓA LUẬN Trong khóa luận này tôi xin những tìm hiểu về hệ thống thông tin địa lý và cụ thể là hệ thống thông tin địa lý trên nền Web – WebGIS. Trong phần đầu của khóa luận trình bày những tìm hiểu về hệ thống thông tin địa lý nói chung bao gồm: các khái niệm về hệ thống tin địa lý, nguộn gốc ra đời, các thành phần cấu thành hệ thống thông tin địa lý và một số lĩnh vực ứng dụng của hệ thống thông tin địa lý. Trong phần tiếp theo sẽ là phần tìm hiểu về ứng dụng thông tin địa lý trên web từ đặc điểm, kiến trúc triển khai hệ thông và cách tổ chức lưu trữ dữ liệu địa lý. Trong phần ba của khóa luận trình bày tìm hiểu về các chuẩn trao đổi dữ liệu địa lý trên web và một số công nghệ mã nguồn mở giúp xây dựng hệ thống thông tin địa lý trên Web. Trong phần cuối của khóa luận trình bày về hệ thống thông tin địa lý do tôi tự xây dựng dựa trên công nghệ mã nguồn mở. MỤC LỤC MỞ ĐẦU 1 Chương 1. Hệ thống thông tin địa lý 3 1.1. Hệ thống thông tin địa lý là gì 3 1.2. Các thành phần của hệ thống thông tin địa lý 4 1.3. Một số ứng dụng của hệ thống thông tin địa lý 7 Chương 2. Hệ thống thông tin địa lý trên Web 10 2.1. Hệ thống thông tin địa lý trên Web và các thách thức 10 2.2. Kiến trúc hệ thống thông tin địa lý trên Web 11 2.2.1. Kiến trúc chung 11 2.2.2. Các hình thức triển khai 14 2.2.2.1. Kiến trúc hướng phục vụ 15 2.2.2.2. Kiến trúc hướng người dùng 17 2.2.2.3. Kiến trúc kết hợp 19 2.3. Dạng dữ liệu của hệ thống thông tin địa lý 19 2.3.1. Dữ liệu không gian 20 2.3.1.1. Dữ liệu vector 20 2.3.1.2. Dữ liệu raster 27 2.3.1.3. Chuyển đổi qua lại giữa dữ liệu vector và dữ liệu rastor 31 2.3.1.4. So sánh dữ liệu vector và dữ liệu rastor 32 2.3.2. Dữ liệu phi không gian 33 Chương 3. Một số công nghệ WebGIS nguồn mở 36 3.1. Chuẩn trao đổi dữ liệu địa lý trên Web theo OGC 36 3.1.1. Cơ chế hoạt động 36 3.2. Web Map Service và Web Feature Service 37 3.2.1. Web Map Service (WMS) 38 3.2.1.1. Phương thức GetMap 38 3.2.1.2. Phương thức GetCapbilities 39 3.2.1.3. Phương thức GetFeatureInfo 40 3.2.2. Web Feature Service (WFS) 41 3.2.2.1. Phương thức GetCapbilities 42 3.2.2.2. Phương thức DescribeFeatureType 42 3.2.2.3. Phương thức GetFeature 44 3.3. Một số công nghệ mã nguồn mở 46 3.3.1. Mapbuider 46 3.3.2. GeoServer 49 3.3.2.1. Lịch sử phát triển 50 3.3.2.2. Đặc điểm 51 Chương 4. Xây dựng ứng dụng WebGIS 52 4.1. Mô tả bài toán 52 4.2. Yêu cầu hệ thống 53 4.3. Thiết kế hệ thống 53 4.3.1. Kiến trúc hệ thống 53 4.3.2. Xây dựng mô hình Use-case 55 4.3.2.1. Xác định Actor và use case 55 4.3.2.2. Đặc tả use case 56 4.3.3. Thiết kế một số màn hình 60 KẾT LUẬN 63 MỞ ĐẦU Hệ thống thông tin địa lý (GIS) ra đời và được phát triển mạnh trong những năm gần đây. Cùng với sự bùng nổ về công nghệ ứng dụng Internet, các phát triển công nghệ GIS cho phép chia sẻ thông tin thông qua mạng toàn cầu bằng cách kết hợp GIS và Web hay còn gọi là WebGIS. Bên cạnh đó, xu hướng chia sẻ dữ liệu, phát triển phần mềm trên công nghệ mã nguồn mở cũng đang được quan tâm ở các nước đang phát triển vì nhiều lợi ích mà nó mang lại. Vì thế, việc nghiên cứu ứng dụng WebGIS trên cơ sở mã nguồn mở sẽ mang lại khả năng chia sẻ thông tin địa lý rộng rãi cho các ngành. Hơn một thập kỷ trước đây, các thông tin không gian - bản đồ ở Việt Nam chủ yếu được thành lập và phát hành trên giấy. Trong những năm gần đây, các quy trình thành lập bản đồ, lưu trữ và phát hành đã dần dần chuyển đổi sang công nghệ số. Các bản đồ giấy trước kia đã được số hoá và đang nằm trong các ổ cứng máy tính tại các cơ quan, trường học, cá nhân, . Theo xu thế chung, các thông tin không gian này được chuyển sang lưu trữ trong các hệ thống cơ sở dữ liệu thông tin không gian được sử dụng bởi các đơn vị khác nhau. Việc chuyển đổi từ công nghệ số sang công nghệ bản đồ giấy đã là một bước tiến vượt bậc của ngành trắc địa. Tuy nhiên, các hệ cơ sở dữ liệu không gian được lưu trữ và sử dụng trong một hệ thống riêng biệt đã hạn chế rất nhiều tiềm năng khai thác thông tin không gian của các hệ thống này. Công nghệ Web-GIS cho phép phát hành, tiếp cận, truy vấn thông tin không gian trong một môi trường mở như Internet đã cho phép phát huy các tiềm năng chưa được đánh thức của các hệ thống thông tin địa lý, không gian và đưa công tác trắc địa bản đồ lên một tầm cao mới. Ngay khi vừa ra đời từ cuối những năm 90 của thế kỷ trước, công nghệ Web-GIS đã được đón nhận rât hồ hởi và có nhiều bước phát triển song còn nhiều hạn chế chưa theo kịp với các nước trên thế giới. Với sự phát triển và phổ cập của Internet tại Việt Nam như ngày nay, công nghệ Web-GIS đang được chú trọng phát triển bới cả cơ quan nhà nước và cộng động doanh nghiệp và được kỳ vọng sẽ đem đến một hướng phát triển mới đầy tiềm năng. Nội dung chính của đề tài là tìm hiểu về WebGIS, khả năng xây dựng ứng dụng WebGIS trên cơ sở mã nguồn mở, trên cơ sở đó ứng dụng xây dựng WebGIS phục vụ phân tích số liệu bản đồ. Khóa luận này trình bày các tìm hiểu lý thuyết về WebGIS bao gồm phân loại các chiến lược phát triển WebGIS, tìm hiểu phần mềm xây dựng WebGIS trên cơ sở mã nguồn mở là Mapbuilder và GeoServer và giới thiệu ứng dụng WebGIS phục vụ phân tích số liệu bản đồ do tôi xây dựng thử nghiệm. Ngoài phần kết luận khóa luận được chia thành 4 phần lớn như sau: Chương 1: Hệ thống thông tin địa lý. Trong chương này sẽ cung cấp khái niệm cơ bản nhất về hệ thống thông tin địa lý, nguồn gốc ra đời, các thành phần chính cấu thành mộ hệ thống thông tin địa lý. Phần cuối chương sẽ trình bày về các lĩnh vực đã ứng dụng hệ thống thông tin địa lý. Chương 2: Hệ thống thông tin đía lý trên Web (WebGIS). Chương này sẽ đi sâu tìm hiểu về hệ thống thông tin địa lý trên nền Web. Phần đầu của chương sẽ giới thiệu đặc điểm riêng của hệ thống thông tin địa lý trên nền web. Phần tiếp theo của chương sẽ trình bày về kiến trúc hệ thông thông tin địa lý trên web và ưu nhược điểm của cái kiến trúc đó khi triển khai trên thực tế. Phần cuối của chương sẽ trình bày các phương pháp mô hình hóa dữ liệu bản đồ thành dữ liệu số và ưu nhược điểm của các phương pháp này. Chương 3: Một số ứng dụng WebGIS mã nguồn mở. Chương này sẽ trình bày về cách thức truyền thông của các ứng dựng GIS trên nền Web và một số công nghệ mã nguồn mở phục vụ cho việc xây dựng hệ thống thông tin đía lý trên web. Chương 4: Xây dựng ứng dụng WebGiS. Dựa vào kiến thức tìm hiểu ở các phần trên trong chương này sẽ giới thiệu hệ thống thông tin địa lý trên Web do tôi tự xây dựng.

doc71 trang | Chia sẻ: lvcdongnoi | Lượt xem: 4495 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu và xây dựng hệ thống thông tin địa lý - Webgis, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ể chạy trên client. Tích hợp các link đến nguồn tài nguyên dữ liệu khác trên mạng trong mỗi gói dữ liệu tải về. Server chỉ được gọi khi client khi cần dữ liệu mới,hoặc dữ liệu cho một ứng dụng mới Người dùng được toàn quyền thao tác trên dữ liệu họ dùng và phân tích chúng. Các thuận lợi và khó khăn của chiến thuật này Thuận lợi Tận dụng sức mạnh xử lý trên máy người dùng Người dùng được quyền điều khiển trong quá trình phân tích dữ liệu Khi server gửi dữ liệu cần thiết về, người dùng có thể làm việc với dữ liệu này mà không phải gửi đi hay nhận về cái gì khác từ mạng. Khó khăn Các hồi đáp từ server có thể bao gồm lượng lớn dữ liệu cũng như các applet (cho lần đầu tiên khi trình duyệt tại máy sử dụng chạy ứng dụng WebGIS) có thể dẫn đến sự trì hoãn. Dữ liệu GIS thường lớn và phức tạp dẫn đến sẽ khó xử lý nếu client không được cấu hình mạnh. Người dùng có thể chưa được huấn luyện đầy đủ để thực hiện các chức năng phân tích dữ liệu một cách đúng đắn Không dành cho người dùng bình thường. Kiến trúc kết hợp Áp dụng thuần túy 2 chiến dịch trên đều có những hạn chế nhất định. Đối với chiến thuật Server-side chất lượng đường truyền sẽ ảnh hưởng đến tốc độ và thời gian truyền giữa yêu cầu và hồi đáp. Trong khi đó với client-side lại phụ thuộc vào cấu hình máy client. Một vài thao tác có thể chậm do đòi hỏi bộ xử lý mạnh không được đáp ứng. Kết hợp 2 chiến thuật cho ta một giải pháp “lai”, tận dụng được ưu điểm của 2 chiến thuật trên. Những công việc đòi hỏi dữ liệu lớn, tính toán phức tạp giao cho server xử lý. Những công việc đòi hỏi người dùng có quyền điều khiển cao (thao tác bản đồ, v.v..) được giao cho client. Như vậy đòi hỏi thông tin về cấu hình của server và client cần được chia sẻ cho nhau. Giải pháp này tỏ ra hiệu quả khi mà client thỉnh thoảng mới cần liên lạc với server để lấy dữ liệu. Dạng dữ liệu của hệ thống thông tin địa lý Dữ liệu của webgis cũng giống như hệ thống thông tin địa lý, có thể chia ra làm 2 loại số liệu cơ bản: số liệu không gian, phi không gian hay còn là dữ liệu thuộc tính và dữ liệu thời 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ị. Số 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, … Số 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 số 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. Dữ liệu thời gian là thông tin không gian (có vị trí tọa độ) và thông tin thuộc tính có thể biến đổi không phụ thuộc vào nhau tương đối theo thời gian. Dữ liệu không gian Dữ liệu là trung tâm của hệ thống GIS, hệ thống GIS chứa càng nhiều thì chúng càng có ý nghĩa. Dữ liệu của hệ GIS được lưu trữ trong CSDL và chúng được thu thập thông qua các mô hình thế giới thực. Dữ liệu trong hệ GIS còn được gọi là thông tin không gian. Đặc trưng thông tin không gian là có khả năng mô tả “vật thể ở đâu” nhờ vị trí tham chiếu, đơn vị đo và quan hệ không gian. Chúng còn khả năng mô tả “hình dạng hiện tượng” thông qua mô tả chất lượng, số lượng của hình dạng và cấu trúc. Cuối cùng, đặc trưng thông tin không gian mô tả “quan hệ và tương tác” giữa các hiện tượng tự nhiên. Mô hình không gian đặc biệt quan trọng vì cách thức thông tin sẽ ảnh hưởng đến khả năng thực hiện phân tích dữ liệu và khả năng hiển thị đồ hoạ của hệ thống. Dữ liệu đồ họa này mô tả thế giới thực và được chia làm 2 loại : dữ liệu raster và dữ liệu vectơ. Dữ liệu vector Các kiểu đối tượng trong dữ liệu vector Đối tượng điểm Điểm được xác định bởi cặp giá trị điểm. 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 Hình 2.6: Số liệu vector đượ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. Đối tượng đường Đường được xác định như một tập hợp dã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 dãy các cặp toạ độ Một arc bắt đầu và kết thúc bởi node Các cung nối với nhau và cắt nhau tại điểm Hình dạng của cung được định nghĩa bởi các điểm điểm Độ dài chính xác bằng các cặp toạ độ Hình 2.7: Số liệu vector được biểu thị dưới dạng Arc Đối tượng vùng 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 và điểm nhãn Một hoặc nhiều arc định nghĩa đường bao của vùng Một điểm nhãn nằm trong vùng để mô tả, xác định cho mỗi một vùng. Hình 2.8 Số liệu vector được biểu thị dưới dạng vùng (Polygon) Hình 2.9: Một số khái niệm trong cấu trúc cơ sở dữ liệu bản đồ. Khái niệm dữ liệu Vector Các đối tượng không gian khi biểu diễn ở cấu trúc dữ liệu vector được tổ chức dưới dạng điểm, đường và vùng, và được biểu diễn trên một hệ thống tọa độ nào đó. Đối với các đối tượng biểu diễn trên mặt phẳng, mỗi đối tượng điểm được biểu diễn bởi một cặp tọa độ (x, y); đối tượng đường được xác định bởi một chuỗi liên tiếp các điểm, đoạn thẳng được nối giữa các điểm hay còn gọi là cạnh, điểm bắt đầu và điểm kết thúc của một đường gọi là các nút; đối tượng vùng được xác định bởi các đường khép kín. Hình 2.10: Minh họa đối tượng đường gồm có các nút, điểm, cạnh Các loại cấu trúc trong dữ liệu vector Hai loại cấu trúc được biết đến trong cấu trúc dữ liệu vector là cấu trúc Spaghetti và cấu trúc Topology. Cấu trúc Spaghetti ra đời trước và được sử dụng cho đến ngày nay ở một số các phần mềm GIS như: phần mềm Arcview GIS, ArcGIS, MapInfo,… Cấu trúc Topology ra đời trên nền tảng của mô hình dữ liệu cung – nút (Arc - Node). Cấu trúc Spaghetti Trong cấu trúc dữ liệu Spaghetti, đơn vị cơ sở là các cặp tọa độ trên một không gian địa lý xác định. Do đó, mỗi đối tượng điểm được xác định bằng một cặp tọa độ (x, y); mỗi đối tượng đường được biểu diễn bằng một chuỗi những cặp tọa độ (xi, yi); mỗi đối tượng vùng được biểu diễn bằng một chuỗi những cặp toạ độ (xj, yj) với điểm đầu và điểm cuối trùng nhau. Thí dụ: Hình 2.11: Minh họa dữ liệu Spaghetti Bảng 2.1: Bảng mô tả đặc trưng của cấu trúc Spaghetti Đặc trưng Vị trí Điểm A (xA, yA) Điểm B (xB, yB) Cung AB (xA, yA), (xB, yB) Vùng a (xA, yA), (xa1, ya1), …, (xa5, ya5) , (xB, yB), (xA, yA) Vùng b (xA, yA), (xb1, yb1), (xb2, yb2), (xb3, yb3) , (xB, yB), (xA, yA) Đặc điểm: Cấu trúc Spaghetti không ghi nhận đặc trưng kề nhau của hai vùng kề nhau, nghĩa là tại hai vùng kề nhau sẽ có hai cạnh chung kề nhau, cạnh chung của hai vùng kề nhau là hai cạnh độc lập nhau. Ở thí dụ trên vùng a và vùng b có chung cạnh AB. Cấu trúc Topology Cấu trúc Topology còn được gọi là cấu trúc cung – nút (arc - node). Cấu trúc này được xây dựng trên mô hình cung – nút, trong đó cung là phần tử cơ sở. Việc xác định các phần tử không gian dựa trên các định nghĩa sau: Mỗi cung được xác định bởi 2 nút, các phần tử ở giữa 2 nút là các điểm điều khiển, các điểm này xác định hình dạng của cung. Các cung giao nhau tại các nút, kết thúc một cung là nút. Vùng là tập hợp các cung khép kín, trong trường hợp vùng trong vùng thì phải có sự phân biệt giữa cung bên trong và cung bên ngoài. Trong cấu trúc Topology, các đối tượng không gian được mô tả trong bốn bảng dữ liệu: bảng tọa độ cung, bảng topology cung, bảng topology nút và bảng topology vùng. Giữa các bảng này có quan hệ với nhau thông qua cung. Từ đây, ta có thể phân tích các quan hệ của các đối tượng không gian trên cùng một hệ tọa độ. Thí dụ: Hình 2.12: Minh họa dữ liệu Topology Bảng 2.2: Bảng topology vùng Topology Vùng Vùng Cung A AB, AaB B AB, AbB Vùng ngoài vùng a và b Vùng ngoài Bảng 2.3: Bảng topology cung Topology Cung Cung Nút đầu Nút cuối Vùng trái Vùng phải AB A B a b AaB A B Vùng ngoài a AbB A B b Vùng ngoài Bảng 2.4: Bảng topology nút Topology nút Nút Cung A AB, AaB B AB, AbB Bảng 2.5: Bảng dữ liệu tọa độ cung Dữ liệu tọa độ cung Cung Nút đầu (x,y) Đỉnh vertex (x,y) Nút cuối (x,y) AB A B AaB A a1, a2, a3, a4, a5 B AbB A b1, b2, b3 B Ưu nhước điểm của cấu trúc Vector Ưu điểm Việc lưu trữ được đòi hỏi ít hơn hệ thống cơ sở dữ liệu raster Bản đồ gốc có thể được hiện diện ở sự phân giải gốc của nó. Đặc tính phương pháp như là các kiểu từng, đường sá, sông suối, đất đai có thể được khôi phục lại và tiến triển 1 cách đặc biệt. Điều này dễ hơn để kết hợp trạng thái khác nhau của phương pháp mô tả dữ liệu với một đặc tính phương pháp đơn. Hệ số hoá các bản đồ không cần được khôi phục lại từ hình thức raster. Nhược điểm Vị trí của điểm đỉnh cần được lưu trữ 1 cách rõ ràng Mối quan hệ của những điểm này phải được định dạng trong 1 cấu trúc thuộc về địa hình học, mà nó có lẽ khó để hiểu và điều khiển. Thuật toán cho việc hoàn thành chức năng thì hoàn toàn tương đương trong hệ thống cơ sở dữ liệu raster là quá phức tạp và việc hoàn thành có lẽ là không xác thực. Sự thay đổi một cách liên tiếp dữ liệu thuộc về không gian không thể được hiện diện như raster. Một sự khôi phục để raster được yêu cầu tiến hành dữ liệu kiểu này. Dữ liệu raster Khái niệm dữ liệu raster Mô hình raster biểu diễn không gian như là một ma trận số nguyên, mỗi giá trị số nguyên đại diện cho một thuộc tính, vị trí của số nguyên chính là vị trí của đối tượng Thí dụ: Hình 2. 13: Mô hình dữ liệu raster và vector Hình 2.14: Mô hình dữ liệu raster và vector Liên hệ với thế giới thực: mỗi pixel sẽ tương ứng với một ô nào đó trong thế giới thực. Trong cấu trúc raster: Đường được biểu diễn bằng những pixel có cùng giá trị f(x,y) liên tiếp nhau. Vùng được xác định thành một mạng gồm nhiều pixel có cùng giá trị thuộc tính f(x,y). Hình 2.15: Cấu trúc dữ liệu raster Đặc điểm Mô hình dữ liệu dạng raster phản ánh toàn bộ vùng nghiên cứu dưới dạng một lưới các ô vuông hay điểm ảnh (pixcel). Mô hình raster có các đặc điểm: Các điểm được xếp liên tiếp từ trái qua phải và từ trên xuống dưới. Mỗi một điểm ảnh (pixcel) chứa một giá trị. Một tập các ma trận điểm và các giá trị tương ứng tạo thành một lớp (layer). Trong cơ sở dữ liệu có thể có nhiều lớp. Mô hình dữ liệu raster là mô hình dữ liệu GIS được dùng tương đối phổ biến trong các bài toán về môi trường, quản lý tài nguyên thiên nhiên. Mô hình dữ liệu raster chủ yếu dùng để phản ánh các đối tượng dạng vùng là ứng dụng cho các bài toán tiến hành trên các loại đối tượng dạng vùng: phân loại; chồng xếp. Các nguồn dữ liệu xây dựng nên dữ liệu raster có thể bao gồm: Quét ảnh Ảnh máy bay, ảnh viễn thám Chuyển từ dữ liệu vector sang Lưu trữ dữ liệu dạng raster. Nén theo hàng (Run lengh coding). Nén theo chia nhỏ thành từng phần (Quadtree). Nén theo ngữ cảnh (Fractal). Trong một hệ thống dữ liệu cơ bản raster được lưu trữ trong các ô (thường hình vuông) được sắp xếp trong một mảng hoặc các dãy hàng và cột. Nếu có thể, các hàng và cột nên được căn cứ vào hệ thống lưới bản đổ thích hợp. Việc sử dụng cấu trúc dữ liệu raster tất nhiên đưa đến một số chi tiết bị mất. Với lý do này, hệ thống raster-based không được sử dụng trong các trường hợp nơi có các chi tiết có chất lượng cao được đòi hỏi. Hình 2.16: Sự biểu thị kết quả bản đồ dưới dạng Raster Các loại cấu trúc Raster Có hai cấu trúc lưu trữ raster cơ bản: Cấu trúc lưu mã chi tiết (exhaustive enumeration) Cấu trúc lưu mã chạy dài (run-length encoding). Đối với cấu trúc lưu mã chi tiết, mỗi một điểm lưới được gắn với giá trị duy nhất, vì vậy dữ liệu không được nén gọn. Hình 2.17: Minh họa cấu trúc mã chi tiết Cấu trúc lưu mã chạy dài có ý nghĩa như là một kỹ thuật nén dữ liệu nếu raster chứa các nhóm điểm lưới có cùng một giá trị. Khi đó thay vì phải lưu trữ riêng cho từng điểm lưới, cấu trúc này lưu trữ theo từng thành phần có một giá trị duy nhất và số lượng điểm lưới chứa đựng giá trị đó. Hình 2.18: Minh họa cấu trúc mã run length Ưu nhước điểm của cấu trúc raster Ưu điểm Vị trí địa lý của mỗi ô được xác định bởi vị trí của nó trong ô biểu tượng, hình ảnh có thể được lưu trữ trong một mảng tương xứng trong máy vi tính cung cấp đủ dữ liệu bất kỳ lúc nào. Vì vậy mỗi ô có thể nhanh chóng và dễ dàng được định địa chỉ trong máy theo vị trí địa lý của nó. Những vị trí kế cận được hiện diện bởi các ô kế cận, vì vậy mối liên hệ giữa các ô có thể được phân tích một cách thuận tiện Quá trình tính toán đơn giản hơn và dễ dàng hơn cơ sở hệ thống dữ liệu vector. Đơn vị bản đồ ranh giới thửa được trình bày một cách tự nhiên bởi giá trị ô khác nhau, khi giá trị thay đổi, việc chỉ định ranh giới thay đổi. Nhược điểm Khả năng lưu trữ đòi hỏi lớn hơn nhiều so với hệ thống cơ sở dữ liệu vector. Kích thước ô định rõ sự quyết định ở phương pháp đại diện ở phương pháp đại diện. Điều này đặc biệt khó dễ cân xứng với sự hiện diện đặc tính thuộc về đường thẳng. Thường hầu như hình ảnh gần thì nối tiếp nhau, điều này có nghĩa là nó phải tiến hành một bản đồ hoàn chỉnh chính xác để thay đổi 1 ô đơn. Quá trình tiến hành của dữ liệu về kết hợp thì choáng nhiều chỗ hơn với 1 hệ thống cơ sở vector. Dữ liệu được đưa vào hầu như được số hoá trong hình thức vector, vì thế nó phải chính xác 1 vector đến sự thay đổi hoạt động raster để đổi dữ liệu hệ số hoá vào trong hình thức lưu trữ thích hợp. Điều này thì khó hơn việc xây dựng vào trong bản đồ từ dữ liệu raster. Chuyển đổi qua lại giữa dữ liệu vector và dữ liệu rastor Việc chọn của cấu trúc dử liệu dưới dạng vector hoặc raster tuỳ thuộc vào yêu cầu của người sử dụng, đối với hệ thống vector, thì dữ liệu được lưu trữ sẽ chiếm diện tích nhỏ hơn rất nhiều so với hệ thống raster, đồng thời các đường contour sẽ chính xác hơn hệ thống raster. Ngoài ra cũng tuỳ vào phần mềm máy tính đang sử dụng mà nó cho phép nên lưu trữ dữ liệu dưới dạng vector hay raster. Tuy nhiên đối với việc sử dụng ảnh vệ tinh trong GIS thì nhất thiết phải sử dụng dưới dạng raster. Một số công cụ phân tích của GIS phụ thuộc chặt chẽ vào mô hình dữ liệu raster, do vậy nó đòi hỏi quá trình biến đổi mô hình dữ liệu vector sang dữ liệu raster, hay còn gọi là raster hoá. Biến đổi từ raster sang mô hình vector, hay còn gọi là vector hoá, đặc biệt cần thiết khi tự động quét ảnh. Raster hoá là tiến trình chia đường hay vùng thành các ô vuông (pixcel). Ngược lại, vector hoá là tập hợp các pixcel để tạo thành đường hay vùng. Nết dữ liệu raster không có cấu trúc tốt, thí dụ ảnh vệ tinh thì việc nhận dạng đối tượng sẽ rất phức tạp. Nhiệm vụ biến đổi vector sang raster là tìm tập hợp các pixel trong không gian raster trùng khớp với vị trí của điểm, đường, đường cong hay đa giác trong biểu diễn vector. Tổng quát, tiến trình biến đổi là tiến trình xấp xỉ vì với vùng không gian cho trước thì mô hình raster sẽ chỉ có khả năng địa chỉ hoá các vị trí toạ độ nguyên. Trong mô hình vector, độ chính xác của điểm cuối vector được giới hạn bởi mật độ hệ thống toạ độ bản đồ còn vị trí khác của đoạn thẳng được xác định bởi hàm toán học. Hình 2.19: Sự chuyển đổi dữ liệu giữa raster và vector So sánh dữ liệu vector và dữ liệu rastor STT RASTER VECTOR 1 Cấu trúc dữ liệu đơn giản Cấu trúc dữ liêu phức tạp hơn raster 2 Các thao tác chập bản đồ thực hiện dễ dàng và đơn giản Các phép chập bản đồ khó thực hiện được 3 Bài toán mô hình thực hiện dễ dàng Bài toán mô hình khó thực hiện 4 Dữ liệu cồng kềnh Dữ liệu gọn (chiếm ít bộ nhớ) hơn mô hình raster 5 Mối quan hệ topo khó có thể thể hiện được. Bài toán mạng khó thực hiện Cho phép mã hóa topo hiệu quả hơn và vì vậy cho phép thực hiện các phép liên quan đến các thông tin topo (như trong phân tích mạng) 6 Thích hợp với việc sử dụng dữ liệu viễn thám Thích hợp với dữ liệu đo đạc trực tiếp Dữ liệu phi không gian Số liệu phi không gian hay còn gọi là thuộc tính là những mô tả về đặc tính, đặc điểm và các hiện tượng xảy ra tại các vị trí địa lý xác định. Một trong các chức năng đặc biệt của công nghệ GIS là khả năng của nó trong việc liên kết và xử lý đồng thời giữa dữ liệu bản đồ và dữ liệu thuộc tính. Thông thường hệ thống thông tin địa lý có 4 loại số liệu thuộc tính: Đặ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 cung Có thể có cá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 file độ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. 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ề đường phố và địa chỉ địa lý liên quan đến phố đó. 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à 101 phải là số nhà 103 nếu là số nhà bên lẻ hoặc nếu là bên chẵn thì cả hai đều phải là các số chẵn 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. Sự liên kết giữa hai loại thông tin cơ bản trong cơ sở dữ liệu GIS thể hiện theo sơ đồ sau: Bảng 2.6: Mối quan hệ giữa thông tin bản đồ và thông tin thuộc tính ID (mã) Tính chất 1 Tính chất 2 Tính chất 3 1 x x x 2 x x x 3 x x x … … … … Một số công nghệ WebGIS nguồn mở Chuẩn trao đổi dữ liệu địa lý trên Web theo OGC Chuẩn mở của OpenGIS là một Web Map Server, tên gọi của nó đã thể hiện nó là một ứng dụng server cung cấp bản đồ trên Web. Sau đây là hình minh họa: Hình 3.1: Mô hình webGIS theo chuẩn OpenGIS Cơ chế hoạt động Web Map Server Về cơ bản một Web Map Server có thể làm 3 việc: Tạo ra một bản đồ (dưới dạng ảnh, dưới dạng đồ hoạ, hay được đóng gói bằng một tập dữ liệu địa lý). Trả lời các truy vấn cơ bản về nội dung bản đồ. Cung cấp cho các chương trình khác mà Server có thể tạo ra được. Web Map Client Một Web Map Client (ví dụ một trình duyệt Web hoặc một chương trình ứng dụng) có thể yêu cầu một Web Map Server bằng các chuyển các yêu cầu (request) trong định dạng URL. Nội dung của mỗi URL phụ thuộc vào một trong ba loại dịch vụ mà Web Map Server cung cấp. Cụ thể: Yêu cầu để tạo ra một bản đồ, các tham số URL phải chỉ ra phạm vi địa lý (không gian) cần tạo bản đồ, hệ toạ độ được sử dụng, các kiểu thông tin được thể hiện, định dạng lưu trữ bản đồ và kích thước kết quả. Yêu cầu để truy vấn nội dung bản đồ, các tham số URL phải chỉ ra lớp thông tin (layer) bản đồ cần truy vấn, vị trí cần truy vấn. Yêu cầu cung cấp các thông tin về khả năng phục vụ của Web Map Server. Cơ chế hoạt động Từ các thông tin về Web Map Client và Web Map Server ta có thể hiệu được cơ chế hoạt động chung của WebGIS gồm: Cơ chế truyền thông (communication) giữa các máy tính: ở tầng dưới cùng của mô hình truyền thông, thông tin được truyền nhận bởi các tín hiệu điện tương ứng với cơ chế mã hoá nhị phân (0/1). Ở tầng tiếp theo là TCP/IP, ở tầng ứng dụng là giao thức HTTP, ở tầng này thông tin được mã hoá bởi ngôn ngữ HTTP. Các yêu cầu (requests): một trình duyệt “hỏi” một trang web bằng việc sử dụng một GET request. Yêu cầu này được định dạng bằng một URL; Đáp ứng (response) : web server sẽ kiểm tra sự tồn tại của trang web được yêu cầu, nếu tồn tại và người dùng có quyền truy cập nó sẽ trả về trang web cho người dùng, nếu không nó sẽ trả bè một thông điệp lỗi. Các trang web được mã hoá bằng HTML, ngôn ngữ này bao gồm các thẻ mô tả các thành phần của một trang. Hiển thị (display): trình duyệt hiển thị trang. Một khi trình duyệt chuyển đổi được HTML thành các đối tượng đồ hoạ nó có thể vẽ trên màn hình và chờ đợi người dùng tương tác lên trang. Web Map Service và Web Feature Service Cả Web Map Service (WMS) và Web Feature Client (WFS) đều nằm trên Web Map Server, chúng chính là hai chuẩn công nghệ chính hình thành nên Web Map Server. Web Map Service (WMS) Một Web Map Service cung cấp dữ liệu các đối tượng địa lý cho client theo dạng hình ảnh hoặc một đoạn mã GML (không bao gồm tọa độ không gian). Web Map Service cung cấp các chuẩn nhận request như sau: GetMap (bắt buộc): Yêu cầu GetMap trả về một bản đồ dưới dạng ảnh (ảnh bản đồ) trong một phạm vi địa lý và theo các tham số được định nghĩa cụ thể. GetMap được triệu gọi bởi một client để nhận về một tập hợp các pixels. Các pixels này chứa một ảnh của một bản đồ trong một vùng địa lý (không gian) hoặc một tập các đối tượng đồ hoạ nằm trong vùng địa lý cụ thể. Yêu cầu GetMap cho phép các Web Map Client chỉ ra một lớp thông tin cụ thể, hệ quy chiếu không gian (SRS), khu vực địa lý, và các tham số khác quy định định dạng dữ liệu trả về. Trên cơ sở các yêu cầu GetMap từ Web Map Client mà một Web Map Server sẽ trả về các kết quả hoặc ném một biệt lệ (exception) theo các chỉ dẫn biệt lệ trong yêu cầu GetMap GetCapabilities (bắt buộc): Yêu cầu GetCapabilities trả về các siêu dữ liệu mô tả Web Map Server. Các mô tả bao gồm nội dung thông tin mà WMS server có thể phục vụ, các tham số mà Web Map Server có thể nhận. GetFeatureInfo (tuỳ chọn): Yêu cầu GetFeatureInfo trả về thông tin về đối tượng địa lý cụ thể được hiển thị trên bản đồ. Nếu một Web Map Server hỗ trợ dịch vụ này thì bản đồ mà nó trả về được gọi là bản đồ có khả năng truy vấn thông tin và một Web map Client có thể yêu cầu thông tin về đối tượng trên một bản đồ bằng cách thêm vào URL các tham số chỉ ra một vị trí (X,Y) và số đối tượng có thể trả về thông tin. Phương thức GetMap Yêu cầu Một trình duyệt web tạo ra một yêu cầu GET để hỏi một server về một trang web. Phẩn lớn các yêu cầu này được trả lời bằng HTML cấu thành lên một trang web. Tuy nhiên, một kết quả có thể là một ảnh, ví dụ là một đoạn HTML sau Đoạn HTML trên đơn là là yêu cầu một ảnh được lưu trữ trên web server. Một yêu cầu web map giống như URL này ở điểm cũng yêu cầu một ảnh của bản đồ, cho dù trông nó có vẻ phức tạp hơn. Ví dụ: version=1.1.1&request=getmap&layers=topp:states&styles=population &SRS=EPSG:4326&bbox=-125,24,-67,50 &width=400&height=200&format=image/png Kết quả như sau trên trình duyệt: Hình 3.2: Kết quả trả về của phương thức GetMap - WMS Phản hồi Nếu quá trình xử lý yêu cầu từ Client không gặp lỗi bản đồ kết quả sẽ được trả về theo định dạng mà Client yêu cầu. Nhưng nếu có một lỗi xảy ra, Server sẽ gửi trả về một thông điệp lỗi được mã hoá bởi XML về Client. Ví dụ, trong yêu cầu dưới đây, yêu cầu đã bị sai trong tham số format (thiếu chữ g) một lỗi sau sẽ được trả về: There is no support for creating maps in image/pn format Phương thức GetCapbilities Yêu cầu này được gửi khi client muốn biết các thông tin về server như các lớp thông tin mà server phục vụ, các định dạng dữ liệu mà server hỗ trợ. Dưới đây là một ví dụ về một request GetCapabilities: Kết quả của yêu cầu GetCapabilities server sẽ trả về một XML chứa các thông tin sau: Các dịch vụ được hỗ trợ Các định dạng được hỗ trợ Các hệ tham chiếu không gian Danh sách các lớp thông tin bản đồ SLD/Styles Mã nhà cung cấp dịch vụ Phương thức GetFeatureInfo Một client có thể sử dụng yêu cầu này để tìm một đối tượng bản đồ tại một điểm trên bản đồ đang được hiển thị. Yêu cầu này giống như yêu cầu GetMap nhưng có thêm vị trí X, Y theo toạ độ pixel tính từ phía trên bên trái của ảnh bản đồ và một tên lớp thông tin cần truy vấn. Dưới đây là một ví dụ về yêu cầu GetFeatureInfo getfeatureinfo&layers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125,24,-67,50&width=400&height=200&format=text/html&X=100&y=100&query_layers=topp:states Yêu cầu trên giống một yêu cầu GetMap, điểm khác biệt ở phần format chỉ ra định dạng kết quả trả về hoặc là text/html. Kết quả trả về của yêu cầu trên sẽ là: Results for FeatureType 'states': -------------------------------------------- the_geom = [GEOMETRY (MultiPolygon) with 153 points] STATE_NAME = Arizona STATE_FIPS = 04 SUB_REGION = Mtn STATE_ABBR = AZ LAND_KM = 294333.462 WATER_KM = 942.772 PERSONS = 3665228.0 FAMILIES = 940106.0 HOUSHOLD = 1368843.0 MALE = 1810691.0 FEMALE = 1854537.0 WORKERS = 1358263.0 DRVALONE = 1178320.0 CARPOOL = 239083.0 PUBTRANS = 32856.0 EMPLOYED = 1603896.0 UNEMPLOY = 123902.0 SERVICE = 455896.0 MANUAL = 185109.0 P_MALE = 0.494 P_FEMALE = 0.506 SAMP_POP = 468178.0 -------------------------------------------- Web Feature Service (WFS) Một Web Feature Server (WFS) cung cấp các đối tượng địa lý cho client. Nó cũng có thể cho phép các client thay đổi và thêm các đối tượng vào cơ sở dữ liệu. Khi WMS cung cấp một hình ảnh của dữ liệu thì WFS cung cấp dữ liệu thực được mã trong GML. Một WFS có thể: Lấy thông tin hoặc truy vấn đến một lớp thông tin dựa theo vị trí không gian của một đối tượng được chọn. Update 1 đối tượng – Cho phép người dùng thay đổi một số thuộc tính trên một đối tượng lựa chọn. Xóa 1 đối tượng - nếu thông tin giá trị đối tượng đó không quá dài hoặc không có yêu cầu sử dụng thì có thể được xóa khỏi bộ dữ liệu. Tạo mới một đối tượng – Cho phép người dùng thêm mới một đối tượng lên bản đồ. Một WFS cung cấp 3 request: GetCapabilities (bắt buộc) – Đây là request cơ bản cho phép client nhận ra các dịch vụ và kiểu dữ liệu do WFS hỗ trợ. DescribeFetuareType (bắt buộc) – Cho phép mô tả kiểu đối tượng. Khi bản đồ muốn thêm một đối tượng mới thì nó phải biết cấu trúc của đối tượng đó. GetFeartue (bắt buộc) – Đây là dữ liệu thật được trả về client sau request đã được nhận. Phương thức GetCapbilities Yêu cầu Format: đây là tham số không bắt buộc, là tham số hỗ trợ cho yêu cầu GetCapabilities trên WMS server. Mọi server hỗ trợ định dạng mặc định text/xml. Nếu request mô tả định dạng không hỗ trợ bởi server, server sẽ trả về định dạng mặc định text/xml. Version: là tham số không bắt buộc, chỉ ra phiên bản WMS cung cấp. Service: Tham số này bắt buộc, nó chỉ ra các kiểu dịch vụ cho phép khi yêu cấu đến server Request: Tham số phải có, dùng để triệu gọi thao tác GetCapabilities. Giá trị “GetCapabilities” sẽ sử dụng. UpdateSequence: Tham số không bắt buộc. Phản hồi Khi triệu gọi Web map service, trả về yêu cầu của GetCapabilities là một tài liệu XML chứa dịch vụ metadata định dạng mã hoá theo lược đồ XML. Lược đồ này đặc tả những nội dung thiết yếu hay không cần thiết của dịch vụ metadata và mô tả định dạng của nó. Tài liệu này có chứa một Root element với tên là WMS_Capabilities trong không gian. Phương thức DescribeFeatureType Yêu cầu Hàm của DescribeFeatureType thao tác đến một lược đồ mô tả các kiểu dịch vụ feature được WFS cung cấp. Ví dụ một request: <DescribeFeatureType version="1.0.0" service="WFS" xmlns="" xmlns:topp="" xmlns:xsi="" xsi:schemaLocation=" "> topp:bc_roads Request được xây dựng theo quy cách và như là một tại liệu XML và được gửi đến server bằng HTTP POST request. Mới nhìn qua thì ta thấy rất phức tạp nhưng thực ra chỉ có đoạn in đậm mới là key line. Ở đây chỉ rõ kiểu đối tượng mà ta đưa vào là: topp:bc_roads. Phản hồi Kết quả trả về từ ví dụ trên là: <xs:schema targetNamespace="" elementFormDefault="qualified" attributeFormDefault= "unqualified" version="1.0"> <xs:import namespace="" schemaLocation=" capabilities/ gml/2.1.2/feature.xsd"/> <xs:element name="the_geom" minOccurs="0" nillable="true" type="gml:MultiLineStringPropertyType"/> <xs:element name="LENGTH" minOccurs="0" nillable="true" type="xZs:double"/> <xs:element name="BTRN_BC_ID" minOccurs="0" nillable="true" type="xs:int"/> <xs:element name="bc_roads" type="topp:bc_roads_Type" substitutionGroup="gml:_Feature"/> Phương thức GetFeature Yêu cầu Cũng giống như WMS getMap, nhưng getFeature của WFS mô tả về dữ liệu thực. Đối với WMS thì dữ liệu sau khi được trả về là một định dạng ảnh hoặc text nhưng có thể convert một cách đơn giản trở thành ảnh còn đối với WFS thì dữ liệu được trả về là dữ liệu thực và được được mô tả như 1 tài liệu XML. Một số tham biến đáng chú ý: version (required) – tùy theo phiên bản là 1.0.0 hay là 1.1.0 service (required and always WFS) - outputformat (optional) – là định dạng dữ liệu được trả về trong capabilities, mặc định là GML maxfeatures (optional) – số lượng lớn nhất các feature được trả về, mặc định là unlimited. typename (required) – kiểu feature muốn được trả về featureVersion (optional) – cung cấp để hỗ trợ cho việc lưu trữ feature, mặc định là newest propertyName (optional) – đặc tính của từng feature muốn lấy về tùy theo từng feature filter (optional) – lọc lụa chọn các feature trả về. Có thể lọc theo không gian hoặc cở sở nào đấy hoặc theo giá trị thuộc tính. Sau đây là ví dụ: <wfs:GetFeature service="WFS" version="1.0.0" outputFormat="GML2" –="" we="" would="" like="" gml2="" as="" the="" return="" format="" xmlns:topp="" xmlns:wfs="" xmlns:ogc="" xmlns:xsi="" xsi:schemaLocation=" "> Phản hồi Phản hồi trả về từ server là một GML mã hóa tập hợp feature <wfs:FeatureCollection xsi:schemaLocation=" ?typeName=topp:bc_roads .0.0/WFS-basic.xsd"> <gml:Box srsName=" g.xml#27354"> 494475.71056415,5433016.8189323 494982.7 0115662,5435041.95096618 <gml:MultiLineString –="" a="" multistring="" srsName=""> 494475.71056415,5433016.8189323 494982.70115662,5435041.95096618 2163.48 13166 Một số công nghệ mã nguồn mở Mapbuider Mapbuilder là ứng dụng mã nguồn mở sử dụng để triển khai Web Map Client. Mapbuilder sửng dụng chuẩn Open GIS để kết nối với server và sử dụng javascript và XLS để hiển thị dữ liệu bản đồ trên trình duyệt web Mapbuilder bao gồm thành phần sau: MapBuilder – Lib: là một thư viện nguồn mở của các widgets bản đồ trên trình duyệt (browser based mapping widgets) OpenLayer: cung cấp một giao diện chung đến một số các lớp thông tin bản đồ khác nhau (như Google, Yahoo, MSN, WMS, vv). Nó được sử dụng bởi một số map rendering widgets. Sarissa: là một thư viện ECMAScript library đóng gói (wrapper ) các hàm XML APIs nguyên thuỷ. Thư viện này bao gồm các lớp đóng gói XML document, tải tài liệu XML từ URL hoặc một xâu, chuyển đổi bằng XSLT, truy vấn dự trên Xpath Overlib: Là một thư viện JavaScript cung cấp các popup nhỏ giống như tooltips. Walter Zorn’s JS Graphics: Thư viện JavaScript VectorGraphics cung cấp khả năng đồ họa cho JavaScript. Scalebar: Công cụ cung cấp thanh tỉ lệ (calebar tool) Single file compression: Các hàm để nén toàn bộ thư viện thành một file MapbuilderCompressed.js để tăng tốc độ tải mã JavaScipts về trình duyệt và tăng tốc độ biên dịch JavaScipts của trình duyệt. Mục tiêu của Mapbuilder Client là trình duyệt web Giảm tải cho server Dễ dàng tích hợp Giảm băng thông Sử dụng Javascript, XML và XLS Thiết kế theo mô hình mobule Mã nguồn mở Thu hút cộng đồng phát triển Mô hình Mapbuilder Mapbuider được thiết kế theo mô hình Model-View-Control (MVC). Không giống như các hệ quản trị nội dung khác, Mapbuilder lưu trữ tất cả các model của nó ở trình duyệt web bởi vậy sự tương tác với server được giảm bớt Hình 3.3: Mô hình MapBuilder Model được hình dung như là thông tin của ứng dụng, điển hình là một tài liệu XML được nhận về từ server trong một file có form không thay đổi từ 1 URL. Các Model cung cấp phương pháp “get” hoặc “set” cho việc update thông tin và trạng thái của model. View là phần hiển thị thông tin trong mỗi model. View có thể tự bản thân nó đăng ký với một model với dạng một thông báo. Đây chính là điển hình sử dụng “listener” làm phương pháp triệu gọi các kiểu sự kiện. View có thể cung cấp cho người sử dụng có thể gửi các yêu cầu đến người quản trị, còn trong MapBuilder thì view gọi đến các widgets. Controller tiến hành biên dịch các yêu cầu của view trong các action bởi model. Controller có thể sửa đổi và trạng thái của một model. Trong MapBuilder Controller gọi đến các tool. Cách thức ngăn cách của model và view cho phép các multile view được sử dụng cùng một model. Đây là cơ chế làm việc để cho việc mở rộng ứng dụng được dễ ràng hơn. MapBuilder có thể gọi ra và lưu trữ một vài model khác nhau trong cùng một ứng dụng web. Trong thứ tự cung cấp của một vài cấu trúc có các model khác nhau sẽ thực hiện các công việc khác nhau, một model có thể chứa một mảng của các model khác trong các nút con. Trong MapBuilder thì thiết kế, các model, các widget và các tool đều thao tác với các đối tượng trong JavaScript. Danh sách của đối tượng có thể được tạo ra và liên hệ giữa chúng trên lý thuyết là sẽ được mô tả trong file cấu hình. GeoServer GeoServer là một máy chủ mã nguồn mở với mục đích kết nối những thông tin địa lý có sẵn tới các Geoweb (trang Web địa lý) sử dụng chuẩn mở. Được bắt đầu bởi một tổ chức phi lợi nhuận có tên The Open Planning Project (TOPP), nhằm mục đích hỗ trợ việc xử lý thông tin không gian địa lý với chất lượng cao, đơn giản trong sử dụng, là phần mềm mã nguồn mở nhằm cung cấp và chia sẻ dữ liệu. Được kỳ vọng sẽ trở thành một phương thức đơn giản để kết nối những nguồn thông tin có sẵn từ Google Earth, NASA World Wind nhằm tạo ra các dịch vụ Webmap như Google Maps, Windows Live Local và Yahoo Maps. GeoServer được viết bằng ngôn ngữ Java, cho phép người sử dụng chia sẻ và chỉnh sử dữ liệu không gian địa lý (geospatial data). Là một dự án mang tính cộng đồng, GeoServer được phát triển, kiểm thử và hỗ trợ bởi nhiều nhóm đối tượng và tổ chức khác nhau trên toàn thế giới. GeoServer là sự phối hợp các chuẩn hoạt động của Open Geospatial Consortium (OGC), Dịch vụ bản đồ (WMS-Web Map Service), Web Feature Service (WFS). GeoServer là thành phần nền tảng của Geospatial Web. Hình 3.4: Giao diện GeoServer Lịch sử phát triển Dự án GeoServer được bắt đầu vào năm 2001 bởi The Open Planning Project (TOPP). Vào thời điểm đó, mọi Website bản đồ chỉ tập trung vào chức năng khởi tạo bản đồ, và không thẻ chia sẻ những dữ liệu đã được thực hiện trên bản đồ. TOPP nhận ra rằng những dữ liệu này tương đương với 'mã nguồn' của bản đồ, và nó vô cùng quan trọng trong việc tạo ra cấu trúc dữ liệu không gian mở, để người dùng có thể phân tích và mô hình hóa, việc không thể đối với dữ liệu ảnh. Ngay sau khi những đặc tính kỹ thuật của Web Feature Server (WFS) được đưa ra trong bản phác thảo của Open Geospatial Consortium (OGC), kế thừa giao thức chuẩn được phát triển bởi TOPP trong việc tạo ra những kiến trúc không gian thông tin mở, GeoServer trở thành phần mềm mã nguồn mở sớm nhất cung cấp các đặc điểm kỹ thuật trong việc tạo và chỉnh sửa dữ liệu không gian. Vào năm 2003, GeoServer được bổ xung WFS 1.0, và bổ xung WFS 1.1 vào năm 2006. Cộng đồng phát triển GeoServer đưa thêm WMS 1.1.1 và WCS 1.0. Đó là những thành phần đưa GeoServer trở thành chuẩn của máy chủ không gian địa lý nguồn mở. Những đóng góp khác bao gồm Giao diện quản trị Web và hỗ trợ nhiều định dạng dữ liệu xuất ra.Như một GeoWeb mở rộng, GeoServer luôn không ngừng phát triển, từng bước hỗ trợ: Google Earth, NASA World Wind, Google Maps, Windows Live Local và Yahoo Maps trong các dịch vụ desktop truyền thống và trong nền tảng GIS. Đặc điểm GeoServer cho phép xuất dữ liệu linh hoạt dựa vào việc hỗ trợ các chuẩn KML, GML, Shapefile, GeoRSS, Portable Document Format, GeoJSON, JPEG, GIF, SVG, PNG ... GeoServer có thể đọc được nhiều định dạng dữ liệu, bao gồm PostGIS, Oracle Spatial, ArcSDE, DB2, MySQL, Shapefiles, GeoTIFF, GTOPO30 và nhiều loại khác. Bên cạnh đó, GeoServer còn có thể chỉnh sửa dữ liệu nhờ những thành phần xử lý của Chuẩn Web Feature Server. GeoServer được xây dựng trong bộ GeoTools, được viết bởi ngôn ngữ Java. MapServer cũng được coi là một sản phẩm mã nguồn mở, có nhiều chức năng tương tự. Sự khác biệt giữa hai sản phẩm là Mapserver được phát triển trong môi trường cũ, được viết bởi ngôn ngữ C và hoạt động nhờ CGI, còn GeoServer được viết bằng ngôn ngữ Java. GeoServer phân biệt với MapServer bởi nó có giao diện đồ họa, giúp đơn giản hơn trong việc cấu hình, và thực thi chức năng sửa đổi dựa vào Web Feature Server, cho phép chỉnh sửa thông tin không gian cả trên Web cũng như trên máy trạm Desktop. Ưu điểm lớn nhất của MapServer là tốc độ thực thi nhanh hơn GeoServer, nhưng từ phiên bản 1.6 trở đi của GeoServer thì tốc độ của hai sản phẩm đã tương đương. GeoServer hỗ trợ việc chia sẻ dữ liệu không gian địa lý lên Google Earth thông qua đặc tính 'network link' sử dụng KML. Xây dựng ứng dụng WebGIS Mô tả bài toán Trong khóa luận này do không tìm được nguồn dữ liệu địa lý phù hợp với bài toán cụ thể vì vậy tôi sử dụng một tập dữ liệu nhỏ để xây dựng mô phỏng các tính năng của một hệ thống WebGIS Dữ liệu địa lý sử dụng Dữ liệu địa lý sử dụng là dữ liệu tỉ lệ 1/2000 có phạm vi địa lý năm trong 3 xã và một thị trấn của huyện Hương Sơn – Hà Tĩnh: xã Sơn Tây, Sơn Kim 1 và Sơn Kim 2; thị trấn Tây Sơn. Với tổng diện tích tự nhiên khoảng trên 50000 ha Vị trí địa lý năm trong khoảng: Từ  18o15’00” đến 18o 33’45” vĩ độ Bắc. Từ  105o05’37.5” đến 105o24’22.5” kinh độ Đông. Dữ liệu địa lý được cung cấp bởi phòng đo đạc bản đồ thuộc Bộ Tài nguyên và Môi trường. Dữ liệu gồm 28 lớp các lớp thông tin sau: Ao hồ Bến đò phà Bến lội Bình độ cái Bình độ cơ bản Bờ cạp Cầu Cống giao thông Đập Địa danh Địa giới huyện Địa giới tỉnh Địa giới xã Địa vật dạng điểm Địa vật dạng đường Địa vật dạng vùng Đường dây điện Đường địa giới Hướng dòng chảy Mốc giới Nhà dạng điểm Nhà dạng vùng Ranh giới quy hoạch khu kinh tế Ranh giới sử dụng đất Phủ bề mặt Thuộc thủy hệ Tim đường bộ Tim dòng chảy Các công nghệ sử dụng Mapbuilder GeoServer PostgreSQL Apache Tomcat Yêu cầu hệ thống Xây dựng hệ thống thông tin địa lý trên web đáp ứng các yêu cầu sau: Chức năng hiển thị Hiển thị toàn bộ tất cả các lớp bản đồ. Hiển thị các lớp bản đồ theo tùy chọn. Thay đổi tỉ lệ hiển thị bản đồ(phóng to, thu nhỏ). Di chuyển khu vực hiển thị. Hiển thị thông tin về đối tượng cụ thể. Đo khoảng cách bản đồ Chức năng phân tích Thực hiện việc tìm kiếm các dữ liệu phù hợp với yêu cầu. Chỉnh sửa đối tượng sẵn có thông tin về màu sắc thông qua 1 chuẩn bản đồ. Tạo bản đồ chuyên đề. Thiết kế hệ thống Kiến trúc hệ thống Hệ thống thiết kế với 3 tầng khác nhau như sau: Tầng trình bày : được xây dựng bằng Javascirpt, HTML và DHTML, thực hiện nhiệm vụ xử l ý các thao tác, lưu trữ thông tin ứng với từng người sử dụng, đảm nhận vai trò trung gian, truyền nhận dữ liệu, giữa người sử dụng với web server. Tầng ứng dụng : chia làm 2 thành phần : Mapbuilder và GeoServer. Cả 2 đều được phát triển dựa trên công nghệ Java Mapbuilder : đảm nhận trách nhiệm phát sinh giao diện và các đoạn script để tương tác với client, đóng vai trò trung gian giữa client và GeoServer, nó sẽ gửi yêu cầu của client tới GeoServer và nhận dữ liệu trả về để gửi ngược cho client. GeoServer : xử lý các thao tác về phát sinh bản đồ, phóng to, thu nhỏ,dịch chuyển, tra cứu thông tin trên bản đồ. Nó là thành phần trung gian giữa Mapbuilder và tầng cơ sở dữ liệu, tiếp nhận yêu cầu từ Mapbuilder rồi gọi xuống tầng cơ sở dữ liệu để rút trích thông tin sau đó tiến hành xử l ý rồi trả kết quả về cho Mapbuilder. Tầng cơ sở dữ liệu : đóng vai trò trung gian giữa tầng ứng dụng với cơ sở dữ liệu. Client layer Application layer Data layer Máy tính cá nhân Webbrowser (Javascript & HTML) Web server Mapbuilder & GEOServer Database PostgresSQL Hình 4.1 Kiến trúc hệ thống triển khai Xây dựng mô hình Use-case Xác định Actor và use case Actor User: Tra cứu thông tin, duyệt bản đồ Use case Duyệt bản đồ Phóng to, thu nhỏ bản đồ Di chuyển bản đồ Chọn lớp thông tin hiển thị Tra cứu thông tin Tìm kiếm thông tin các địa danh, địa vật trên bản đồ Đo khoảng cách Tính khoảng cách giữa hai điểm trên bản đồ Đặc tả use case Mô hình use case Phóng to, thu nhỏ bản đồ Tính khoảng cách Truy vấn thông tin bản đồ Tùy chọn lớp thông hiển thị Di chuyển bản đồ Hình 4.2: Mô hình use case Đặc tả use case Di chuyển bản đồ Tóm tắt Use-case này mô tả cách thức người dùng di chuyển bản đồ để xem vùng không gian khác trên bản đồ Luồng các sự kiện Luồng sự kiện chính Use-case này bắt đầu khi người dùng muốn dịch chuyển bản đồ để xem vùng không gian khác trên bản đồ Người dùng kích chuột lên nút Hệ thống ghi nhận tình trạng kích chuột,thay đổi trạng thái nút sang trạng thái đậm . Chuyển trạng thái các nút nào đang ở trạng thái đậm vì được kích chuột trước đó về trạng thái bình thường Người dùng kích chuột lên bản đồ Hệ thống xác định vị trí kích chuột trên bản đồ, dịch chuyển bản đồ theo chiều ngược lại (kích chuột càng ở mép ngoài bản đồ chừng nào thì dịch chuyển càng xa và ngược lại ) Các luồng sự kiện khác Không có Các yêu cầu đặt biệt Không có Điều kiện tiên quyết Không có Post-conditions Nếu use case thực hiện thành công, hệ thống sẽ hiện thị vùng không gian bản đồ mới ra cho người dùng ngược lại trạng thái bản đồ không thay đổi Điểm mở rộng Không có Phóng to, thu nhỏ bản đồ Tóm tắt Use-case này mô tả cách thức người dùng phóng to hay thu nhỏ bản đồ hiển thị. Luồng các sự kiện Luồng sự kiện chính Use case này bắt đầu khi có người dùng muốn phóng to hay thu nhỏ bản đồ hiển thị Người dùng kích chuột lên nút ZoomIn hay nút ZoomOut Hệ thống xác định loại nút đang chọn, tô đậm nút này để người dùng biết nút đã được chọn (ZoomIn , ZoomOut ). Người dùng kích chuột lên trên bản đồ Hệ thống xác định vị trí kích chuột, sau đó tuỳ theo nút được chọn là ZoomIn hay ZoomOut mà hệ thống sẽ phóng to hay thu nhỏ bản đồ tại vị trí được kích chuột Người dùng tiếp tục kích chuột lên bản đồ để tiếp tục phóng to hay thu nhỏ bản đồ. Các luồng sự kiện khác Không có Các yêu cầu đặt biệt Không có Điều kiện tiên quyết Không có Post-conditions Nếu use case thực hiện thành công hệ thống sẽ hiển thị vùng khung gian bản đồ được phóng to hay thu nhỏ ra cho người dùng, ngược lại trạng thái bản đồ không thay đổi. Điểm mở rộng Không có Tính khoảng cách Tóm tắt Use case này mô tả cách người dùng muốn tính khoảng cách trên bản đồ Luồng các sự kiện Luồng sự kiện chính Use case này bắt đầu khi người dùng muốn tính khoảng cách trên bản đồ Người dùng kích chuột lên nút bấm Hệ thống xác định loại nút đang chọn, tô đậm nút này để người dùng biết nút đã được chọn Người dụng kích chuột lên bản đồ Hệ thống xác định vị trí kích chuột để đánh dấu các điểm đầu cuối để tính khoảng cách trên bản đồ. Kết quả được hiện ra trên góc trên bên phải bản đồ Người dùng tiếp tục kích chuột, chiều dài các đoạn thẳng mới sẽ được cộng thêm vào kết quả Các luồng sự kiện khác Không có Các yêu cầu đặt biệt Không có Điều kiện tiên quyết Không có Post-conditions Nếu như use case thực hiện thành công kết quả sẽ được hiển thị Điểm mở rộng Không có Tùy chọn lớp thông tin hiển thị Tóm tắt Use case này mô tả cách người dùng chọn lớp thông tin hiển thị trong bản đồ Luồng các sự kiện Luồng sự kiện chính Use case bắt đầu khi người sử dụng thay đổi các lớp thông tin hiển thị trên bản đồ Người dùng chọn chọn lớp thông tin cần hiện thị trong danh sách lớp thông tin hệ thống cung cấp Hệ thống hiện xuống danh sách lớp thông tin người sử dụng theo thứ tự từ sau tới trước Người dùng kích chuột vào nút “Hiển thị bản đồ” Hệ thống sẽ sinh lại bản đồ theo danh sách người dùng đã chọn. Tại đây người dùng có thể tiếp tục thực hiện các thao tác khác như phóng to, thu nhỏ … Các luồng sự kiện khác Không có Các yêu cầu đặt biệt Không có Điều kiện tiên quyết Không có Post-conditions Nếu use case thực hiện thành công hệ thống sẽ hiển thị bản đồ mới, ngược lại trạng thái bản đồ không thay đổi. Điểm mở rộng Không có Truy vấn thông tin bản đồ Tóm tắt Use case này mô tả cách người dùng tìm kiếm thông tin trên bản đồ Luồng các sự kiện Luồng sự kiện chính Người dùng nhập tên thuộc tính cần tìm kiếm vào ô tìm kiếm Chọn lớp thông tin chứa nội dung tìm kiếm Chọn thuộc tính tìm kiếm. Tùy vào lớp thông tin chọn ở trên mà thuộc tính cũng khác nhau Người dùng kích vào nút “Tìm kiếm” Hệ thống sẽ tìm và trả lại kết quả ở khung bên dưới nút tìm kiếm nếu tìm thấy hoặc không trả lại gì nếu không tìm thấy kết quả nào Nếu kết quả tìm thấy, người dùng kích chuật vào kết quả Kết quả tìm kiếm hiện lên bản đồ Các luồng sự kiện khác Không có Các yêu cầu đặt biệt Không có Điều kiện tiên quyết Không có Điểm mở rộng Không có Thiết kế một số màn hình PTùy chọn lớp thông tin hiển thị CCác phím chức năng CBản đồ Hình 4.1 Màn hình chính chương trình Vùng tìm kiếm Kết quả tìm kiếm Hình 4.2: Màn hình tìm kiếm KẾT LUẬN Trên đây tôi đã trình bày các tìm hiểu của tôi về WebGIS và ứng dụng xây dựng mô phỏng một hệ thống thông tin địa lý trên Web Những công việc đã làm được + Tìm hiểu được mô hình hệ thống thông tin địa lý, các thành phần của hệ thống thông tin địa lý và một số lĩnh vực ứng dụng rất thành công hệ thống thông tin địa lý mang lại nhiều giá trị cho con người + Tìm hiểu được đặc điểm của hệ thống thông tin địa lý trên Web, các kiến trúc triển khai một hệ thống thông tin địa lý trên web và ưu nhược điểm của nó với từng bài toán áp dụng. + Tìm hiểu được hai hình thức mô tả dữ liệu bản đồ là Vector và Raster. Ưu điểm và nhước điểm của hai cách thức, cách chuyển đổi giữa hai hình thức này. + Xây dựng thành công một hệ thống thông tin địa lý trên Web cho phép hiển thị các lớp thông tin bản đồ dựa trên hai công nghệ mã nguồn mở là Mapbuilder và GeoServer. Hướng phát triển của đề tài Do thời gian có hạn nên khóa luận chưa đi sâu tìm hiểu các vấn đề đưa ra. Nếu được phát triển tiếp tôi sẽ nghiên cứu thêm về các hệ thống thông tin địa lý trên nền Web và các công nghệ mới nhằm nâng cao hiệu năng hệ thống cung cấp tiện ích hơn nữa cho người sử dụng. Và đặc biệt là xây dựng được hệ thống thông tin địa lý có ý nghĩa thiết thực hơn nữa. TÀI LIỆU THAM KHẢO [1] AA. Alesheikh, H. Helali, HA. Behroz. Web GIS: Technologies and Its Applications. ISPRS, 2004 [2] Aleksandar Milosavljević, Leonid Stoimenov, Slobodanka Djordjević-Kajan. An architecture for open and scalable WebGIS. CG&GIS Lab, Department of Computer Science. AGILE Conference 8th, 2005 [3] David J. Maguire, Michael F Goodchild, and David W Rhind (eds). Geographic information systems : Principles and application. Volume 1 : Principle. Longman sciencetific & technical.. John Wiley & Sons, 1991 [4] D.R. Green, D. Rix, and J. Cadoux Hudson (eds). Geographic Information. The source book for GIS. Association for geographic information AGI. Taylor & Francis, 1994 [5] Đặng văn Đức. Hệ thống thông tin địa lý. NXB Khoa học và Kỹ Thuật, 2001 [6] F. Rinaudo, E. Agosto, P. Ardissone. Gis and web-gis, commercial and open source platforms: general rules for cultural heritage documentation.CIPA, 2007 [7] Merri P. Skrdla. Introduction to GIS. MicroImages, 2005 [8] M. A Brovelli, D. Magni. An archaeological web gis application based on mapserver and postgis. ISPRS, 2005 [9] Scott Davis. GIS for Web Developers: Adding Where to Your Web Applications. Pragmatic Bookshelf, 2007 [10] William Lalonde. Styled Layer Descriptor Implementation Specification. Open Geospatial Consortium, 2009

Các file đính kèm theo tài liệu này:

  • docTìm hiểu và xây dựng hệ thống thông tin địa lý - webgis.doc
Luận văn liên quan