Ngày nay,bản đồ được sử dụng rất phổ biến cho mục đích cá nhân như dẫn dẫn, tìm kiếm địađiểm… Ngày nay với sự bùng nổ của internet và điện thoại thông minh, đã có rất nhiều dịch vụ bản đ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG TRỌNG THẾ
XÂY DỰNG HỆ THỐNG TRA CỨU THÔNG TIN BẤT ĐỘNG
SẢN TRÊN BẢN ĐỒ GOOGLE MAP
TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội, 2013
Trang 2Lời cảm ơn
Với lòng biết ơn sâu sắc, tôi xin chân thành cảm ơn PGS TS Phạm Bảo Sơn,người đã trực tiếp định hướng đề tài và tận tình hướng dẫn tôi hoàn thành luậnvăn này
Tôi xin được bày tỏ lòng biết ơn đối với các thầy giáo, cô giáo khoa Công nghệthông tin - Trường Đại học Công nghệ đã hướng dẫn, giảng dạy trong suốt thờigian tôi học tập tại trường cũng như việc hoàn thành luận văn này
Cuối cùng, xin được bày tỏ tình cảm tới những người thân trong gia đình, đồngnghiệp, bạn bè trong tập thể lớp Cao học K15CS đã động viên, hỗ trợ tôi về mọimặt
Tôi xin chân thành cảm ơn!
Trang 3Lời cam đoan
Tôi xin cam đoan rằng, ngoại trừ các nội dung được trích từ tài liệu tham khảohoặc các công trình khác như đã ghi rõ trong luận văn, các kết quả nêu trongluận văn này là do chính tôi thực hiện và chưa từng được ai công bố trong bất cứcông trình nào khác
Hà Nội, tháng 10 năm 2013
Hoàng Trọng Thế
Trang 4MỤC LỤC
_Toc373943955
Danh mục hình vẽ 3
Danh mục ký hiệu, từ viết tắt 4
Chương 1 TỔNG QUAN 6
1.1 Giới thiệu bài toán 6
Chương 2 GOOGLE MAP API 7 2.1 Giới thiệu Google Map 7
2.2 Các thành phần chính trên bản đồ Google Map 8
2.3 Các đối tượng Overlays 8
2.3.1 Marker 9
2.3.2 Polylines 10
2.3.3 Polygon 11
2.3.4 Circle 12
2.3.5 InfoWindow 13
2.3.6 Cluster 14
2.4 Các sự kiện 15
2.5 Google Service 16
2.6 Geocoding 18
2.7 Ưu nhược điểm của Google Map API 21
2.7.1 Ưu điểm 21
2.7.2 Nhược điểm 21
Chương 3 PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT BÀI TOÁN 22 3.1 Các yêu cầu hệ thống 22
3.1.1 Yêu cầu chức năng 22
3.1.2 Yêu cầu phi chức năng 23
3.2 Kiến trúc trúc tổng quát 24
3.3 Giải pháp công nghệ 25
Trang 53.4.2 Biểu đồ ca sử dụng 26
3.4.3 Biểu đồ lớp 27
3.4.4 Biểu đồ trình tự 27
3.5 Hệ thống con Data Importer 33
3.5.1 Kiến trúc hệ thống 33
3.5.2 Biểu đồ trình tự 33 Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 34
Trang 6Danh mục hình vẽ
Hình 1: Bản gồ Google Map 7
Hình 2: Các thành phần chính trên bản đồ Google Map 8Hình 3: Hiển thị các Marker trên bản đồ 10
Hình 4: Hiển thị các Polylines trên bản đồ 11
Hình 5: Hiển thị các Polygon trên bản đồ 12
Hình 6: Hiển thị các Circle trên bản đồ 13
Hình 7: Minh họa của sổ InfoWindow 14
Hình 8: Minh họa Cluster15
Hình 9: Minh họa dịch vụ Geocoding 20
Hình 10: Kiến trúc hệ thống 24
Hình 11: Kiến trúc hệ thống LandNews 25
Hình 12: Các use case của hệ thống 26
Hình 13: Biểu đồ tương tác trang chủ 27
Hình 14: Tìm kiếm đơn giản 28
Hình 15: Tim kiếm theo khoảng cách 29
Hình 16: Tìm kiếm theo khoảng cách đường đi 30Hình 17: Tìm kiếm toàn văn 31
Hình 18: Đăng nhập 32
Hình 19: Đăng xuất 32
Hình 20: Kiến trúc hệ thống Data Importer 33
Trang 7Danh mục ký hiệu, từ viết tắt
Từ viết tắt Thuật ngữ
Trang 8MỞ ĐẦU
Từ xa sưa tới nay bản đồ luôn đóng vai trò quan trọng quan trọng trong đời sống xãhội và luôn được mọi người quan tâm Nhắc tới bản đồ, người ta thường nghĩ tới cácnhà thám hiểm địa lý, khảo cổ học hay các nhà quân sự Nhưng không hẳn như vậy,
nó được sử dụng cho nhiều đối tượng khác nhau như các nghiên cứu khoa học, cácthương nhân, cá nhân Mỗi người dùng đều có mục đích riêng của mình Ngày nay,bản đồ được sử dụng rất phổ biến cho mục đích cá nhân như dẫn dẫn, tìm kiếm địađiểm…
Ngày nay với sự bùng nổ của internet và điện thoại thông minh, đã có rất nhiều dịch
vụ bản đồ trực tuyến ra đời như Google Map của google, Bing Map của Microsoft,Here của Nokia , thậm chí các phần mềm bản đồ còn được tích hợp sẵn như mộtphần mềm mặc định trong điện thoại Theo các thống kê cho thấy phần mềm bản đồtrên điện thoại có tần suất sử dụng nhiều nhất, chỉ đứng sau các ứng dụng cơ bản củađiện thoại là nhắn tin và gọi điện
Trong số các phần mềm bản đồ trực tuyến thì Goolge Map được sử dụng khá phổbiến, Google Map cung cấp cho chúng ta toàn bộ bản đồ của thế giới, trong đó cóViệt Nam Các API của Google Map được đánh giá là khá đầy đủ và dễ sử dụng.Hiện nay Google Map đã phát triển lên phiên bản 3, hay còn gọi là “Google Map APIV3”
Google Map cung cấp cho người dùng các dịch vụ cơ bản như tìm kiếm địa điểm, dẫnđường, tìm kiếm ATM, nhà hàng… Nhưng không chỉ có vậy, Google Map còn cungcấp API cho các nhà phát triển ứng dụng để cho phép các xây dựng các ứng dụng dựatrên bản đồ Google Map, theo đó các nhà phát triển ứng dụng có thể sử dụng các dịch
vụ được cung cấp bởi Google Map, kết hợp với dữ liệu của ứng dụng để hiển thị lênbản đồ
Các bản tin bất động sản thường bao gồm thông tin về địa điểm, vì thế sẽ rất hữu íchnếu sử dụng Google Map để hiển thị trực quan các bản tin bất động sản, hơn nữa cóthể sử dụng được các dịch vụ được cung cấp bởi Google Map như tính khoảng cách,tìm đường
Bố cục của luận văn như sau:
Chương 1, luận văn giới thiệu về bài toán
Chương 2, luận văn giới thiệu về bản đồ Google Map
Trang 9Chương 1 TỔNG QUAN 1.1 Giới thiệu bài toán
Hầu hết các trang tin về bất động sản đăng tin dạng văn bản, vì thế người xem tin cầnđọc và phân tích các thông tin để có các thông tin cần thiết Một trong các thông tinđược người đọc quan tâm nhất đó là thông tin về địa điểm Tuy nhiên, bản tin dạngvăn bản này không cho ta một cái nhìn trực quan về địa điểm, hơn nữa việc tìm kiếmtheo khoảng cách đến một điểm nào đó, hay chỉ đường đi từ một điểm đến một điểmkhác là không thể thực hiện được
Việc hiển thị bản tin bất động sản trên bản đồ sẽ cho người dùng một cái nhìn trựcquan về địa điểm, hơn nữa với các dịch vụ được cung cấp bởi bản đồ người dùng cóthể thực hiện các thao tác đặc thù như tìm kiếm theo khoảng cách, hay dẫn đường đếnmột điểm nào đó
Vì thế, chúng tôi xây dựng trang web sử dụng bản đồ trực tuyến Google Map để hiểnthị các bản tin bất động sản Trước hết cho phép người dùng có thể xem được thôngtin của mỗi bản tin bất động sản dưới dạng trực quan Bên cạnh đó, người dùng có thểtìm kiếm theo các tiêu chí đặc thù của bản đồ như khoảng cách, đường đi
Dữ liệu của hệ thống được lấy từ một hệ thống trích rút thông tin bất động sản củanhóm tác giả Phạm Vi Liên, Phạm Bảo Sơn Kết quả trích rút thông tin là các file vănbản được gắn nhãn, vì thế chúng tôi xây dựng hệ thống con để đưa dữ liệu đã gắnnhãn vào cơ sở dữ liệu, quá trình import dữ liệu cũng đồng thời xác định tọa độ củabản tin
Trang 10Chương 2 GOOGLE MAP API 2.1 Giới thiệu Google Map
Google Map là dịch vụ bản đồ trực tuyến của Google, hỗ trợ nhiều dịch vụ khácnhau, nổi bật nhất là dịch vụ tìm đường Nó cho phép thấy bản đồ đường sá, đường đicho xe đạp, cho người đi bộ và xe hơi, và những địa điểm kinh doanh trong khu vựccũng như khắp nơi trên thế giới Từ góc nhìn của người dùng cuối thì Google Map làmột ứng dụng bản đồ trực tuyến Thực tế, Google Map không chỉ đơn thuần là mộtứng dụng bản đồ trực tuyến, bởi Google Map còn cung cấp một tập API cho phép cácnhà phát triển ứng dụng có thể sử dụng các dịch vụ của Google Map trong ứng dụngcủa họ Ví dụ: Một cơ quan bất động sản có thể sử dụng một ứng dụng sử dụngGoogle Maps API dựa trên web, cho phép người sử dụng có thể tìm kiếm các khu đôthị và kết quả được hiển thị trực quan trên Google Map
Hình 1: Bản gồ Google Map
Với Google Map API ta có thể xây được các ứng dụng như:
- Đánh dấu và tìm kiếm các địa điểm trên bản đồ cùng các thông tin cho địađiểm như các khu vui chơi giải trí, nhà hàng khách sạn, văn phòng, các quán
ăn ngon, các shop quần áo, nữ trang
- Chỉ dẫn đường đến các địa điểm cần tìm, chỉ dẫn đường giao thông công cộng,
có thể là các địa điểm cung cấp như trên
- Tìm các địa điểm theo khoảng cách, theo đường giao thông
- Xây dựng bản đồ các tuyến đường xe đạp, đi bộ…
Trang 112.2 Các thành phần chính trên bản đồ Google Map
Map Control
InfoWindow
Marker
Hình 2: Các thành phần chính trên bản đồ Google Map
Hình vẽ trên cho ta thấy một số thành phần hay được sử dụng trong Google Map API.Mỗi thành phần trong bản gồ Google Map được biểu diễn bởi một đối tượng GoogleMap API bao gồm các đối tượng chính sau:
- Map: Biểu diễn cho bản đồ Google Map
- Marker: Biểu diễn cho một điểm được đánh dấu trên bản đồ, mỗi điểm đượcthể hiện bằng một biểu tượng, các biểu tượng này có thể được định nghĩa bởiGoogle hoặc một hình bất tùy chọn
- InfoWindow: Thường được sử dụng kèm với Marker để hiện thông tin liênquan đến Marker Ví dụ trong một ứng dụng bất động sản ta có thể hiển thị chitiết của một căn nhà như: diện tích, giá bán, địa chỉ…
2.3 Các đối tượng Overlays
Overlays là các đối tượng trên bản đồ và được gắn với vĩ độ, kinh độ cho nên nó sẽ dichuyển cùng bản đỗ khi ta di chuyển hoặc phóng to/thu nhỏ bản đồ Đối tượngoverlays này được hiển thị ở phía trên bản đồ Google Map Overlays bao gồm các đốitượng trên bản đồ như markers, polylines, areas, info windows, polygons Mỗi đốitượng overlays này được thể hiện bởi một lớp tương ứng là Marker, Polyline, Area,InfoWindows và Polygon
Trang 12Để thêm một overlays vào bản đồ, ta tạo ra đối tượng overlays và gắn vào bản đồ
bằng phương thức setMap Để xóa một đối tượng tượng ra khỏi bản đồ ta gọi phương
thức setMap của đối tượng overlays với giá trị truyền vào là null Nhưng đây mới chỉ
loại bỏ tạm thời không cho chúng xuất hiện chứ chưa xóa hoàn toàn khỏi bộ nhớ
Markers dùng để xác định một điểm trên bản đồ hoặc đánh dấu địa điểm dựa trên
vĩ độ và kinh độ Mặc định Marker sử dụng biểu tượng (icon) của Google làm hình
ảnh đại diện cho điểm đánh dấu Tuy nhiên ta cũng có thể thiết lập một biểu tượng
bất kỳ của mình bằng cách gọi phương thức setIcon()
Các thuộc tính của Marker:
position (bắt buộc): quy định là tọa độ LatLng của điểm được đánh dấu
map (tùy chọn): quy định đối tượng bản đồ được đánh dấu nếu thuộc tính này
được khai báo trong đây nó sẽ thay thế cho Markers.setMap(map)
icon (tùy chọn): hình ảnh tùy chọn mà bạn muốn hiển thị thay thế hình ảnh
mặc định Dùng tùy chọn này thay thế cho marker.setIcon(link đến hình ảnh
trong thư mục)
title (tùy chọn): tiêu đề của địa điểm
draggable (tùy chọn): thuộc tính động của điểm đánh dấu, thể hiện sự chuyển
động của điểm được đánh dấu Nếu TRUE tính động được khởi động
animation: cách thức chuyển động của điểm đánh dấu Có 2 giá trị có thể thiết
lập DRAG, DROP
Trang 13Hình 3: Hiển thị các Marker trên bản đồ
Polylines dùng để thể hiện đường kết nối trên bản đồ dựa vào các tọa độ Các đoạn
thẳng được hiển thị với các tùy chọn cho nó như màu sắc, độ đậm nhạt, độ rộng cùa
đường Một polylines phải có ít nhất hai điểm để có thể tạo nên một đoạn thằng
Lớp Polyline có các thuộc tính:
path: giá trị là một mảng chứa các tọa độ cần nối với nhau
strokeColor: giá trị màu sắc
strokeOpacity: độ đậm nhạt của màu sắc
strokeWeight: độ rộng của đường
Trang 14Hình 4: Hiển thị các Polylines trên bản đồ
Tương tự như đối tượng Polylines, Polygon xây dựng dựa trên một loạt các tọa độ,
tuy nhiên thay vì mở thì nó hoàn toàn khép kín trong một khu vực
Các thuộc tính của của đối tượng Polygon:
paths: tập các tọa độ với tọa độ đầu trùng tọa độ cuối đảm bảo cho việc khép
kín
strokeColor: màu sắc của đường nối điểm
strokeOpacity: độ đậm nhạt của màu
strokeWeight: độ rộng đường nối
fillColor: màu sắc của của vùng bên trong đường nối
fillOpacity: độ đậm nhạt của vùng bên trong đường nối
Ví dụ sau tạo ra một Plygon từ 3 điểm khác nhau để tạo thành một vùng tam giác
khép kín
Trang 15Hình 5: Hiển thị các Polygon trên bản đồ
fillColor: giá trị màu sắc được hiển thị bên trong vòng tròn
strokeColor: giá trị màu sắc được hiển thị trên biên vòng tròn
Đoạn mã javascript sau sẽ hiển thị một vòng tròn trên bản đồ (Hình 6)
Trang 16Hình 6: Hiển thị các Circle trên bản đồ
Infowindow là một cửa sổ hiển thị thông tin InfoWindow thường được sử dụng kết
hợp với Marker để hiển thị thông tin đi kèm với Marker
Trang 17Hình 7: Minh họa của sổ InfoWindow
Để tạo ra đối tượng InfoWindow ta làm như sau
new google.maps.InfoWindow({
content: 'Nội dung được hiển thị trong cửa sổ'
});
Mặc định, cửa sổ sau khi tạo ra chưa được hiển thị, để hiển thị cửa sổ ta cần gọi
phương thức open() của đối tượng Infowindows
Khi có quá nhiều Marker được hiển thị trong một đơn vị diện tích sẽ rất rối rắm, vì
thế người ta thường nhóm các Marker ở gần nhau lại để tạo thành một cụm (Cluster)
Hình sau minh họa việc Cluster được hiển thị trên bản đồ:
Trang 18Hình 8: Minh họa Cluster
Trong hình minh họa trên, các Cluster được hiển thị bởi các hình tròn với các con sốbên trong thể hiện số lượng các Marker trong nhóm
2.4 Các sự kiện
Một số đối tượng trong Google Map API được thiết kế để đáp ứng với sự kiện người
sử dụng chẳng hạn như các sự kiện chuột hoặc bàn phím Mỗi loại đối tượng có thể
có một số sự kiện khác nhau Chẳng hạn một đối tượng Marker có thể lắng nghengười sử dụng các sự kiện sau:
click: Kích chuột
dblclick: Kích đôi chuột
mouseup: Nhả chuột
mousedown: Nhấn chuột
mouseover: Di chuyển chuột qua đối tượng
mouseout: Di chuyển chuột ra khỏi đối tượng
Để đang ký sự kiện cho một đối tượng ta làm như sau:
google.maps.event.addListener(object, event, function() {
});
Trang 19 event: là sự kiện muốn đăng ký
2.5 Google Service
Google service cung cấp cho chúng ta một tiện ích hay được sử dụng đó là dịch vụchỉ dẫn đường (direction) Khi người dùng muốn đi từ điểm đầu tới đích Dịch vụ trả
về môt hướng dẫn men theo các con đường
Ví dụ sau minh họa việc chỉ dẫn dường giữa hai điểm fromPoint và toPoint:
<scripttype="text/javascript">
var directionDisplay;
var directionservice = new google.maps.DirectionsService();
var map;
var fromPoint = new google.maps.LatLng(21.00183, 105.841212);
var toPoint = new google.maps.LatLng(21.016493, 105.815377);
Trang 20Để thực hiện việc dẫn đường ta thực hiện theo các bước:
- Tạo ra một đối tượng DirectionsService
var directionservice = new google.maps.DirectionsService();
- Đối tượng DirectionsRenderer được sử dụng để chứa các kết quả trả ra
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(map);
- Thực hiện việc dẫn đường bằng việc gọi phương thức route
directionservice.route(request, function (response, status) {
Trang 21Đối tượng DirectionService được khởi tạo:
2.6 Geocoding
Geocoding là một trong các dịch vụ của Google Map API Dịch vụ này cho phéptruyền vào một địa chỉ (dạng xâu ký tự như ‘Hồ Hoàn Kiếm’), dịch vụ sẽ trả về tọa
độ của địa điểm dưới dạng vĩ độ và kinh độ
Để sử dụng dịch vụ Geocoding ta cần tạo ra đối tượng Geocoder và gọi phương thứcgeocode:
var geocoder = new google.maps.Geocoder();
Ví dụ sau minh họa việc tạo trang web sử dụng vụ Geocoding để tìm địa chỉ
Với mã javascript:
(function () {
// Defining some global variables
var map, geocoder, marker, infowindow;
map = new google.maps.Map(document.getElementById('map'), options);
// Getting a reference to the HTML form
var form = document.getElementById('addressForm');
// Catching the forms submit event
form.onsubmit = function () {
// Getting the address from the text input
var address = document.getElementById('address').value;
// Making the Geocoder call
Trang 22geocoder = new google.maps.Geocoder();
// Making the Geocode request
geocoder.geocode(geocoderRequest, function (results, status) {
// Check if status is OK before proceeding
// Creating a new marker and adding it to the map
marker = new google.maps.Marker({
// Creating a new InfoWindow
infowindow = new google.maps.InfoWindow();
}
// Creating the content of the InfoWindow to the address
// and the returned position
var content = '<strong>' + results[0].formatted_address + '</strong><br />'; content += 'Lat: ' + results[0].geometry.location.lat() + '<br />'; content += 'Lng: ' + results[0].geometry.location.lng();
// Adding the content to the InfoWindow