Lập trình webgis với ngôn ngữ PHP( Mapserver + postgresql)

75 280 3
Lập trình webgis với ngôn ngữ PHP( Mapserver + postgresql)

Đ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

Tài liệu hướng dẫn chi tiết cách viết 1 trang web có chức năng:+ Làm việc, thao tác với bản đồ;+ Xây dựng cơ sở dữ liệu không gian, phi không gian+ Truy vấn cơ sở dữ liệu và hiển thị trên bản đồcó bản doc để copy code

LẬP TRÌNH WEBGIS TRÊN MAPSERVER SỬ DỤNG PHP/POSTGRESQL NGUYỄN TÁ NAM – NAMNGUYENKHTN@GMAIL.COM Mục Lục Mục Lục Phần 1: Lập trình WebGIS MapServer với PHP/PostgreSQL Chương 1: Giới thiệu chung GIS WebGIS Chương 2: Giới thiệu chung ngơn ngữ lập trình sử dụng CSDL PostgreSQL 2.1 Các ngơn ngữ lập trình sử dụng .5 2.2 Hệ quản trị sở liệu PostgreSQL Chương 3: Tổng quan MS4W thư viện OpenLayer 11 3.1 MS4W 11 3.2 Thư viện OpenLayer 13 Chương 4: Xây dựng hệ thống người dùng, quản lý người dùng 14 Mục tiêu 14 4.1 Xây dựng database chứa thông tin người dùng 14 4.2 Xây dựng phân quyền người dùng file chức .15 Chương 5: Xây dựng làm việc với đồ 22 Mục tiêu 22 5.1 Tạo mapfile 22 5.2 Thiết kế giao diện cho Webgis (xây dựng file mapview.php) 24 5.3 Xây dựng chức tìm kiếm cho đồ .31 Chương 6: Xây dựng, tương tác xử lý liệu 35 Mục tiêu 35 6.1 Nhập liệu dạng shapefile vào Postgres 35 6.2 Nhập liệu dạng csv vào Postgres 38 6.3 Nhập liệu trực tiếp qua giao diện web .42 6.4 Xuất liệu csdl file csv lưu trữ máy tính 45 6.5 Import shapefile vào postgres qua giao diện web 47 6.6 Export shapefile từ postgres cho download máy tính 51 6.7 Sử dụng liệu csdl để vẽ biểu đồ .56 6.8 Nội suy liệu .68 Phần 1: Lập trình WebGIS MapServer với PHP/PostgreSQL Chương 1: Giới thiệu chung GIS WebGIS Kiến trúc web hệ thống thông tin liệu không gian gần giống kiến trúc dành cho hệ thống thông tin web khác, ngoại trừ có sử dụng kỹ thuật GIS Có nhiều dạng cơng nghệ cho việc thành lập web cho thông tin không gian như: MapServer, GeoServer, ArcGIS Server,… Cơ sở liệu không gian dùng để quản lý truy xuất liệu không gian, đặt Data Server Nhà kho hay nơi lưu trữ (Clearing House) dùng để lưu trữ trì siêu liệu Metadata liệu không gian Data Server khác Dựa thành phần quản lý liệu, ứng dụng Server mô hình Server dùng cho ứng dụng hệ thống để tính tốn thơng tin khơng gian qua hàm cụ thể Tất kết tính tốn ứng dụng Server gởi đến Web Server để thêm vào gói HTML, gởi cho phía client hiển thị nơi trình duyệt web a) Cilent gửi yêu cầu người sử dụng thông qua giao thức HTTP đến Web Server b) Web Server nhận yêu cầu người dùng từ cilent, xử lý chuyển tiếp yêu cầu đến ứng dụng Server có liên quan c) Application Server (chính ứng dụng GIS) nhận yêu cầu cụ thể ứng dụng gọi hàm có liên quan để tính tốn xử lý Nếu có yêu cầu liệu gửi yêu cầu liệu đến Data Exchange Center (trung tâm trao đổi liệu) d) Data Exchange Center nhận yêu cầu liệu, tìm kiếm vị trí liệu, sau gửi yêu cầu liệu đến Data Server chứa liệu cần tìm e) Data Server tiến hành truy vấn liệu cần thiết trả liệu cho Data Exchange Center f) Data Exchange Center nhận nhiều nguồn liệu từ Data Server, xếp logic liệu theo yêu cầu trả liệu cho Application Server g) Application Server nhận liệu trả từ Data Exchange Center đưa chúng đến hàm cần sử dụng, xử lý, trả kết Web Server h) Web Server nhận kết xử lý, thêm vào code HTML, PHP,… để hiển thị lên trình duyệt, gửi trả kết cho trình duyệt dạng trang web Kiến trúc 3-tier gồm thành phần bản, đại diện cho tầng: 1) Database (Data tier): nơi lưu trữ liệu địa lý bao gồm liệu không gian phi không gian Các liệu quản trị hệ quản trị sở liệu như: Oracle, MS SQL Server, Esri SDE, PostgreSQL,… dạng file liệu như: Shapefile, Tab, XML,… Các liệu thiết kế cài đặt xây dựng theo quy trình cụ thể Tùy theo quy mô yêu cầu hệ thống mà tổ chức lựa chọn công nghệ quản trị sở liệu cho phù hợp 2) Application Server (Bussiness tier): thường tích hợp Webserver đó, ví dụ Web Server tiếng Apache Tomcat, Internet Information Server Đó ứng dụng phía Server nhiệm vụ tiếp nhận u cầu từ client, lấy liệu từ phía sở liệu theo yêu cầu client, trình bày liệu theo cấu hình định sẵn theo yêu cầu client trả kết theo yêu cầu 3) Client (Presentation tier): thông thường đơn Browser Internet Explorer, FireFox, Google Chome,… để mở trang web theo URL định sẵn Các ứng dụng client Website, Applet, Flash,… viết công nghệ chuẩn mà W3C chứng thực Các client ứng dụng Desktop tương tự phần mềm MapInfo, ArcMap,… Chương 2: Giới thiệu chung ngơn ngữ lập trình sử dụng CSDL PostgreSQL 2.1 2.1.1 Các ngơn ngữ lập trình sử dụng Ngôn ngữ HTML - HTML (Hyper Text Markup Language, "Ngôn ngữ Đánh dấu Siêu văn bản") ngôn ngữ đánh dấu thiết kế để tạo nên trang web với mẩu thông tin trình bày World Wide Web HTML định nghĩa ứng dụng đơn giản SGML sử dụng tổ chức cần đến yêu cầu xuất phức tạp HTML trở thành chuẩn Internet tổ chức World Wide Web Consortium (W3C) trì HTML phát triển tiếp với phiên HTML5 mang lại diện mạo cho Web - Bằng cách dùng HTML động Ajax, lập trình viên tạo xử lý số lượng lớn công cụ, từ chương trình soạn thảo văn đơn giản – gõ vào từ dòng – công cụ xuất WYSIWYG phức tạp 2.1.2 Ngôn ngữ Java - Java ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Khác với phần lớn ngơn ngữ lập trình thơng thường, thay biên dịch mã nguồn thành mã máy thông dịch mã nguồn chạy, java thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy chậm ngôn ngữ lập trình thơng dịch khác C++, Python, Perl, PHP, C# - Cú pháp java vay mượn nhiều từ C & C++ có cú pháp hướng đối tượng đơn giản tính xử l ý cấp thấp Do việc viết chương trình java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi 2.1.3 Ngôn ngữ JavaScript - JavaScript theo phiên hành, ngôn ngữ lập trình kịch dựa đối tượng phát triển từ ý niệm nguyên mẫu Ngôn ngữ dùng rộng rãi cho trang web, dùng để tạo khả viết script sử dụng đối tượng nằm sẵn ứng dụng Nó vốn phát triển Brendan Eich Hãng truyền thông Netscape với tên Mocha, sau đổi tên thành LiveScript, cuối thành JavaScript - Giống Java, JavaScript có cú pháp tương tự C, gần với Self Java .js phần mở rộng thường dùng cho tập tin mã nguồn JavaScript JavaScript có số đối tượng định nghĩa sẵn, bao gồm mảng ( Array), đối tượng đại số Bool (Boolean), đối tượng ngày tháng (Date), đối tượng hàm (Function), đối tượng toán học(Math), đối tượng số (Number), đối tượng đối tượng (Object), đối tượng biểu thức tìm kiếm (RegExp) đối tượng chuỗi ký tự ( String) Các đối tượng khác đối tượng thuộc phần mềm chủ (phần mềm áp dụng JavaScript - thường trình duyệt) 2.1.4 Ngôn ngữ PHP - PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") ngơn ngữ lập trình kịch hay loại mã lệnh chủ yếu dùng để phát triển ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng qt Nó thích hợp với web dễ dàng nhúng vào trang HTML Do tối ưu hóa cho ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C Java, dễ học thời gian xây dựng sản phẩm tương đối ngắn so với ngơn ngữ khác nên PHP nhanh chóng trở thành ngơn ngữ lập trình web phổ biến giới 2.2 2.2.1 Hệ quản trị sở liệu PostgreSQL Tổng quan - PostgreSQL hệ quản trị sở liệu viết theo hướng mã nguồn mở mạnh mẽ Hệ quản trị sở liệu có 15 năm phát triển, đồng thời kiến trúc kiểm chứng tạo lòng tin với người sử dụng độ tin cậy, tính tồn vẹn liệu, tính đắn PostgreSQL chạy tất hệ điều hành, bao gồm Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), Windows Do hồn tồn tn thủ ACID, có hỗ trợ đầy đủ foreign keys, joins, views, triggers, stored procedures (trên nhiều ngơn ngữ) Hệ quản trị bao gồm kiểu liệu SQL: 2008 INTEGER, NUMBER, BOOLEAN, CHAR, VARCHAR, DATE INTERVAL, TIMESTAMPs PostgreSQL hỗ trợ lưu trữ đối tượng có kiểu liệu nhị phân lớn, bao gồm hình ảnh, âm thanh, video Hệ quản trị sở liệu sử dụng thông qua giao diện ngôn ngữ C / C + +, Java, Net, Perl, Python, Ruby, Tcl, ODBC… - Là hệ quản trị sở liệu mạnh, PostgreSQL tự hào có tính phức tạp kiểm soát truy cập đồng thời nhiều phiên (MVCC), khôi phục liệu thời điểm (Recovery), quản lý dung lượng bảng (tablespaces), chép không đồng bộ, giao dịch lồng (savepoints), lưu trực tuyến nội bộ, truy vấn phức tạp tối ưu hóa, viết trước khai báo để quản lý gỡ lỗi PostgreSQL hỗ trợ ký tự quốc tế, hỗ trợ bảng mã nhiều byte, Unicode, cho phép định dạng, xếp phân loại ký tự văn (chữ hoa, thường) PostgreSQL biết đến với khả mở rộng để nâng cao số lượng liệu quản lý số lượng người dùng truy cập đồng thời Đã có hệ thống PostgreSQL hoạt động môi trường thực tế thực quản lý vượt terabyte liệu 2.2.2 - Cài đặt Truy cập vào trang http://www.postgresql.org lựa chọn để download phiên khác nhau, khuyến nghị nên chọn 9.0 9.1 - Tiến hành cài đặt chương trình bình thường khác Hình 2.2.1 Màn hình cài đặt ban đầu Hình 2.2.2 Nhập password cài đặt // Nên để password admin Hình 2.2.3 Kết thúc cài đặt chuyển sang plugin postgis - Tích chọn hộp thoại để tiếp tục tải cài đặt Postgis extention: Hình 2.2.4 Màn hình cài đặt postgis console.log(chart_div.innerHTML); }); chart.draw(data, options); } google.load('visualization', '1.0', {'packages':['corechart']}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', ''); data.addColumn('number', ''); data.addRows([ google.visualization.events.addListener(chart, 'ready', function () { chart_div.innerHTML = ''; console.log(chart_div.innerHTML); }); chart.draw(data, options); } google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('number', ''); data.addColumn('number', ''); data.addRows([ ]); var options = {'title':'

Ngày đăng: 27/05/2020, 10:25

Từ khóa liên quan

Mục lục

  • Mục Lục

  • Phần 1: Lập trình WebGIS trên MapServer với PHP/PostgreSQL

    • Chương 1: Giới thiệu chung về GIS và WebGIS

    • Chương 2: Giới thiệu chung về các ngôn ngữ lập trình được sử dụng và CSDL PostgreSQL

      • 2.1 Các ngôn ngữ lập trình được sử dụng

        • 2.1.1 Ngôn ngữ HTML

        • 2.1.2 Ngôn ngữ Java

        • 2.1.3 Ngôn ngữ JavaScript

        • 2.1.4 Ngôn ngữ PHP

        • 2.2 Hệ quản trị cơ sở dữ liệu PostgreSQL

          • 2.2.1 Tổng quan

          • 2.2.2 Cài đặt

          • Chương 3: Tổng quan về MS4W và thư viện OpenLayer

            • 3.1 MS4W

              • 3.1.1 Tổng quan

              • 3.1.2 Cài đặt

              • 3.2 Thư viện OpenLayer

              • Chương 4: Xây dựng hệ thống người dùng, quản lý người dùng

                • Mục tiêu

                • 4.1 Xây dựng database chứa thông tin người dùng

                • 4.2 Xây dựng phân quyền người dùng và các file chức năng

                  • 4.2.1 Xây dựng file function.php

                  • 4.2.2 Xây dựng trang login.php

                  • 4.2.3 Xây dựng trang logout.php

                  • 4.2.4 Xây dựng trang admin.php

                  • 4.2.5 Xây dựng trang đăng ký người dùng mới

                  • Chương 5: Xây dựng và làm việc với bản đồ

                    • Mục tiêu

                    • 5.1 Tạo mapfile

Tài liệu cùng người dùng

Tài liệu liên quan