Tải bản đầy đủ (.doc) (37 trang)

TÓM TẮT LUẬN VĂN XÂY DỰNG HỆ THỐNG TRA CỨU THÔNG TIN BẤT ĐỘNG SẢN TRÊN BẢN ĐỒ GOOGLE MAP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 37 trang )

ĐẠ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
Lờ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ận
vă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ời
gian 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, đồng
nghiệp, bạn bè trong tập thể lớp Cao học K15CS đã động viên, hỗ trợ tôi về mọi
mặt.
Tôi xin chân thành cảm ơn!
Lờ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ảo
hoặc các công trình khác như đã ghi rõ trong luận văn, các kết quả nêu trong
luậ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ế
MỤC LỤC
MỤC LỤC 1
Danh mục hình vẽ 3
Danh mục ký hiệu, từ viết tắt 4
MỞ ĐẦU 5
TỔNG QUAN 6


1.1 Giới thiệu bài toán 6
GOOGLE MAP API 7
1.2 Giới thiệu Google Map 7
1.3 Các thành phần chính trên bản đồ Google Map 8
1.4 Các đối tượng Overlays 8
1.4.1 Marker 9
1.4.2 Polylines 10
1.4.3 Polygon 10
1.4.4 Circle 11
1.4.5 InfoWindow 12
1.4.6 Cluster 13
1.5 Các sự kiện 14
1.6 Google Service 15
1.7 Geocoding 17
1.8 Ưu nhược điểm của Google Map API 20
1.8.1 Ưu điểm 20
1.8.2 Nhược điểm 20
PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT BÀI TOÁN 21
1.9 Các yêu cầu hệ thống 21
1.9.1 Yêu cầu chức năng 21
1.9.2 Yêu cầu phi chức năng 22
1.10 Kiến trúc trúc tổng quát 23
1.11 Giải pháp công nghệ 24
1.12 Hệ thống con LandNews 24
1.12.1 Kiến trúc tổng quát 24
1.12.2 Biểu đồ ca sử dụng 25
1.12.3 Biểu đồ lớp 26
1.12.4 Biểu đồ trình tự 26
1.13 Hệ thống con Data Importer 32
1.13.1 Kiến trúc hệ thống 32

1.13.2 Biểu đồ trình tự 32
1
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 33
TÀI LIỆU THAM KHẢO 34
2
Danh 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 8
Hình 3: Hiển thị các Marker trên bản đồ 9
Hình 4: Hiển thị các Polylines trên bản đồ 10
Hình 5: Hiển thị các Polygon trên bản đồ 11
Hình 6: Hiển thị các Circle trên bản đồ 12
Hình 7: Minh họa của sổ InfoWindow 13
Hình 8: Minh họa Cluster 14
Hình 9: Minh họa dịch vụ Geocoding 19
Hình 10: Kiến trúc hệ thống 23
Hình 11: Kiến trúc hệ thống LandNews 24
Hình 12: Các use case của hệ thống 25
Hình 13: Biểu đồ tương tác trang chủ 26
Hình 14: Tìm kiếm đơn giản 27
Hình 15: Tim kiếm theo khoảng cách 28
Hình 16: Tìm kiếm theo khoảng cách đường đi 29
Hình 17: Tìm kiếm toàn văn 30
Hình 18: Đăng nhập 31
Hình 19: Đăng xuất 31
Hình 20: Kiến trúc hệ thống Data Importer 32
3
Danh mục ký hiệu, từ viết tắt
Từ viết tắt Thuật ngữ
API Application programming interface

ORM Object-relational mapping
MVC Model View Controller
UoW Unit of Work
4
MỞ ĐẦ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ác nhà 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ác thươ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ột phầ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 API V3”.
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 cung cấ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ựa trê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ên bả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 ích nế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.
Chương 3, luận văn phân tích, thiết kế và cài đặt bài toán.
Chương 4, kết luận và hướng phát triển
5
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ạng vă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ếm theo khoảng cách
đến một điểm nào đó, hay chỉ đường đi từ một điểm đến một điểm khá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ực quan 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 đến mộ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ển thị
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ông tin 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ủa nhó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ăn bả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ắn nhã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ủa bản tin.
6
GOOGLE MAP API
1.2 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ác nhau, nổi
bật nhất là dịch vụ tìm đường. Nó cho phép thấy bản đồ đường sá, đường đi cho xe đạp,
cho người đi bộ và xe hơi, và những địa điểm kinh doanh trong khu vực cũ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ác nhà phát triển ứng dụng có
thể sử dụng các dịch vụ của Google Map trong ứng dụng củ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ụng Google 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ộ…
7
1.3 Các thành phần chính trên bản đồ Google Map
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. Google Map 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 được thể
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ởi Google
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ên quan
đến Marker. Ví dụ trong một ứng dụng bất động sản ta có thể hiển thị chi tiết của
một căn nhà như: diện tích, giá bán, địa chỉ….
1.4 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ẽ di
chuyển cùng bản đỗ khi ta di chuyển hoặc phóng to/thu nhỏ bản đồ. Đối tượng overlays
này được hiển thị ở phía trên bản đồ Google Map. Overlays bao gồm các đối tượng trên
bản đồ như markers, polylines, areas, info windows, polygons. Mỗi đối tượng overlays này
được thể hiện bởi một lớp tương ứng là Marker, Polyline, Area, InfoWindows và Polygon.
Để 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
8
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ớ.
1.4.1
Marker
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.
Hình 3: Hiển thị các Marker trên bản đồ
9

1.4.2
Polylines
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
Hình 4: Hiển thị các Polylines trên bản đồ
1.4.3
Polygon
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.
10
• 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.
Hình 5: Hiển thị các Polygon trên bản đồ
1.4.4
Circle
Circle dùng để thể hiện vòng tròn trên bản đồ. Một vòng tròn được đặc trưng bởi tọa độ
tâm và bán kính.

Lớp Circle có các thuộc tính:
• center: tọa độ tâm của vòng tròn
• radius: bán kính của vòng trò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
11
Đoạn mã javascript sau sẽ hiển thị một vòng tròn trên bản đồ (Hình 6)
Hình 6: Hiển thị các Circle trên bản đồ
1.4.5
InfoWindow
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.
12
Hì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.
1.4.6
Cluster
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 đồ:
13
Hì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.
1.5 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 nghe ngườ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() {
});
Với:
• object là đối tượng muốn đăng ký sự kiện
14
• event: là sự kiện muốn đăng ký
1.6 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);
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();

var myOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: fromPoint
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var request = {
origin: fromPoint,
destination: toPoint,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionservice.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
</script>
Sẽ cho kết quả hiển thị như sau:
15
Để 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) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
Với request là đối tượng chứa thông tin về điểm đầu, điểm cuối và kiểu đường đi
var request = {
origin: fromPoint,
destination: toPoint,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
16
Đối tượng DirectionService được khởi tạo:
1.7 Geocoding
Geocoding là một trong các dịch vụ của Google Map API. Dịch vụ này cho phép truyề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ức
geocode:
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;
window.onload = function () {
// Creating a new map
var options = {
zoom: 3,

center: new google.maps.LatLng(21.0272662, 105.855451),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
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
getCoordinates(address);
// Preventing the form from doing a page submit
returnfalse;
};
};
// Create a function the will return the coordinates for the address
function getCoordinates(address) {
// Check to see if we already have a geocoded object. If not we create one
if (!geocoder) {
geocoder = new google.maps.Geocoder();
}
17
// Creating a GeocoderRequest object
var geocoderRequest = {
address: address
}
// Making the Geocode request
geocoder.geocode(geocoderRequest, function (results, status) {
// Check if status is OK before proceeding

if (status == google.maps.GeocoderStatus.OK) {
// Center the map on the returned location
map.setCenter(results[0].geometry.location);
// Check to see if we've already got a Marker object
if (!marker) {
// Creating a new marker and adding it to the map
marker = new google.maps.Marker({
map: map
});
}
// Setting the position of the marker to the returned location
marker.setPosition(results[0].geometry.location);
// Check to see if we've already got an InfoWindow object
if (!infowindow) {
// 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
infowindow.setContent(content);
// Opening the InfoWindow
infowindow.open(map, marker);
}
});
}
})();

và mã HTML:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
" /><htmlxmlns=" /><head>
18
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>Chapter 10 - Example 10-1</title>
<linkrel="stylesheet"href="css/style.css"type="text/css"media="all"/>
<scripttype="text/javascript"src=" />sensor=false"></script>
<scripttype="text/javascript"src="js/10-1.js"></script>
</head>
<body>
<formid="addressForm"action="/">
<div>
<labelfor="address">Address:</label>
<inputtype="text"name="address"id="address"/>
<inputtype="submit"id="addressButton"value="Get Coordinates"/>
</div>
</form>
<divid="map"></div>
</body>
</html>
Cho kết quả như sau:
\
Hình 9: Minh họa dịch vụ Geocoding
19
1.8 Ưu nhược điểm của Google Map API
1.8.1
Ưu điểm
- Google Map API được cung cấp miễn phí
- Các API đơn giản, dể hiểu và có tài liệu hướng dẫn rõ ràng. Có thể tham khảo

hướng dẫn sử dụng Google Maps API tại
/>1.8.2
Nhược điểm
Google Map chỉ cung cấp hệ thống đường phố và địa điểm ở một vài thành phố của một
vài quốc gia, ở Việt Nam Google Map chỉ mới cung cấp tên đường nhưng chưa được chi
tiết, do đó các nhà phát triển ứng dụng dựa trên Google Map cần bổ sung dữ liệu về đường
phố và địa điểm để có thể tìm kiếm đường đi hoặc địa điểm.
20
PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT BÀI TOÁN
1.9 Các yêu cầu hệ thống
1.9.1
Yêu cầu chức năng
1.9.1.1 Chức năng hiển thị các tin mới nhất
Khi người dùng truy truy cập vào hệ thống, một trang tin tức với các tin mới nhất được thị
ra. Mỗi bản tin bất động sản dưới dạng các điểm đánh dấu (marker), khi di chuột vào mỗi
điểm đánh dấu thì thông tin chi tiết của bản tin sẽ được hiện ra trong một cửa sổ nhỏ dạng
popup. Khi mật độ các điểm đánh dấu trên một phạm vi lớn hơn một ngưỡng nào đó thì
cần nhóm các điểm đánh dấu lại thành các nhóm (cluster) với thông tin số lượng các điểm
đánh dấu trong nhóm.
1.9.1.2 Chức năng tìm kiếm cơ bản
Chức năng này cho phép người dùng thực hiện thao tác tìm kiếm với các tiêu chí khác
nhau. Đặc biệt là các tiêu chí liên quan đến khoảng cách và đường đi. Cụ thể như sau:
- Tìm kiếm theo các thông tin cơ bản như: giá, loại bất động sản, diện tích
- Tiềm các bản tin trong bán kính nào đó đến một điểm được chọn trên bản đồ
- Tìm kiếm các bản tin có đường đi nhỏ hơn một giá trị nào đó đến một điểm được
chọn trên bản đồ.
1.9.1.3 Chức năng tìm đường
Chức năng này cho phép người dùng tìm đường đi từ một điểm được lựa chọn trên bản đồ
đến vị trí của một bản tin được lựa chọn.
1.9.1.4 Chức năng nhập mới

Chức năng này cho phép người dùng tạo mới một bản tin, người dùng nhập thông tin dạng
văn bản, và lựa chọn địa điểm trên bản đồ. Thông tin dạng văn bản sẽ được trích rút để lấy
các thông tin như diện tích, giá, thông tin liên lạc… tự động, nhằm phục vụ cho các thao
tác tìm kiếm sau này.
1.9.1.5 Chức năng cập nhập
Chức năng này cho phép người dùng sửa lại thông tin của một bản tin bất động sản. Người
dùng có thể sửa lại một trường thông tin bất kỳ, ngoài ra người dùng có thể cập nhật lại vị
trí bằng cách kéo và thả điểm đánh dấu trên bản đồ.
21
1.9.1.6 Chức năng xóa bản tin
Chức năng này cho phép người dùng xóa một bản tin đã được đăng.
1.9.1.7 Chức năng đang nhập
Chức năng này cho phép người dùng đăng nhập vào hệ thống
1.9.1.8 Chức năng đăng xuất
Chức năng này cho phép người dùng đăng xuất khỏi hệ thống
1.9.1.9 Chức năng đăng ký thành viên
Chức năng này cho phép người dùng đăng ký là thành viên của hệ thống.
1.9.1.10 Chức năng đổi mật khẩu
Chức năng này cho phép người dùng thay đổi mật khẩu. Để thực hiện được chức năng này
người dùng cần phải đăng nhập.
1.9.1.11 Chức năng import dữ liệu
Chức năng này cho phép import dữ liệu được gắn nhãn vào cơ sở dữ liệu quan hệ.
1.9.1.12 Chức năng tìm tọa độ
Chức năng này cho phép tìm tọa độ của bản tin dựa vào thông tin được gắn nhãn.
1.9.1.13 Tìm kiếm toàn văn
Chức năng này cho phép người dùng tìm kiếm theo một từ khóa nào trong toàn bộ nội
dung bản tin.
1.9.2
Yêu cầu phi chức năng
- Ứng dụng sử dụng chạy trên nền web

- Sử dụng Google Map để hiển thị và tìm đường
- Yêu cầu bảo mật:
o Chỉ người có vai trò quản trị mới có thể thực hiện tất cả các chức năng của hệ
thống
o Người dùng vai trò khách chỉ có thể sử dụng chức năng hiển thị, tìm kiếm
o Người dùng đã xác thưc có thể đăng tin, cập nhật và xóa bản tin mà mình
đăng tải
22

×