MỤC LỤC
MỤC LỤC . . 2
MỤC LỤC BẢNG BIỂU 5
A. PHẦN MỞ ĐẦU . . 7
1. Giới thiệu 7
2. Ý nghĩa khoa học và thực tiễn 8
3. Mục đích nghiên cứu 9
4. Đối tượng nghiên cứu . 10
5. Phạm vi nghiên cứu 10
B. NỘI DUNG 11
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG GIAN . 11
1. Khái niệm . 11
1.1 Hệ thống cơ sở dữ liệu không gian . 11
1.2. Cơ sở dữ liệu không gian (Spatial Database) 12
2. Mô hình cơ sở dữ liệu không gian . 16
2.1 Xây dựng mô hình CSDL không gian 17
2.2 Cơ sở hình học trong tổ chức các đối tượng không gian cơ bản 25
3. Truy vấn thực hiện trong CSDL không gian 30
CHƯƠNG 2: BÀI TOÁN TÍNH TOÁN XẤP XỈ VỚI CÁC TRUY VẤN LIÊN
QUAN ĐẾN KHOẢNG CÁCH TRONG CƠ SỞ DỮ LIỆU KHÔNG GIAN 34
1. Các truy vấn liên quan đến khoảng cách . . 34
1.1 Truy vấn khu vực theo khoảng cách δ . 37
1.2 Truy vấn K vùng lân cận gần nhất . 38
1.3 Truy vấn nối các khu vực theo khoảng cách δ (truy vấn đệm) 39
1.4 Phép nối khoảng cách Iceberg . . 39
1.5 Truy vấn K cặp đối tượng gần nhất 39
1.6 Nối K vùng lân cận gần nhất 40
1.7 Truy vấn K- nối khoảng cách . 40
2 R – Tree 42
2.1 Khái niệm 43
2.2 Cấu trúc của một R-tree 45
2.3 Thuật toán R-Tree . 47
3 Các kỹ thuật tính toán xấp xỉ khoảng cách 56
3.1 Thu nhỏ không gian tìm kiếm 56
3.2 Kỹ thuật tìm kiếm theo kinh nghiệm . 59
3.2.1 Tìm kiếm khu vực . . 59
3.2.2 Simulated Annealing . 60
3.2.3 Thuật toán phát sinh . 61
CHƯƠNG 3 MỘT SỐ ỨNG DỤNG CỦA BÀI TOÁN TÍNH TOÁN XẤP XỈ
KHOẢNG CÁCH TRONG THỰC TẾ . 63
1. Ứng dụng trong việc Xây dựng một hệ thống khung (framework) xử lý hiệu
quả các truy vấn không gian cơ bản. 64
2. Tăng tốc quá trình phân tích, thực thi và hiển thị dữ liệu Địa lý trong các
truy vấn liên quan đến khoảng cách (DBQs) . 66
3. Xây dựng thuật toán xấp xỉ như một công cụ hạn chế những khó khăn phát
sinh đối với kích thước Địa lý của đối tượng 68
4. Tính toán độ chính xác về vị trí trên bản đồ và chênh lệch về khoảng cách
giữa các đối tượng trong truy vấn . 70
CHƯƠNG 4 MỘT SỐ THUẬT TOÁN TÍNH KHOẢNG CÁCH TRONG KHÔNG
GIAN Địa lý & ĐÁNH GIÁ HIỆU NĂNG . . 74
1. Tính toán khoảng cách giữa các đối tượng Địa lý theo công thức Haversine
74
1.1 Công thức Haversine . 74Đ
1.2 Công thức Haversine trong truy vấn tìm khoảng cách ngắn nhất 77
1.3 Đánh giá thuật toán Haversine . 81
2. Tính toán khoảng cách trong hệ tọa độ Địa lý theo khoảng cách Vincenty. 82
2.1 Khái niệm 82
2.2 Thuật toán Vincenty 85
3. Đánh giá thuật toán Haversine và Vincenty . 89
C. KẾT LUẬN 91
1. Những kết quả đạt được 91
2. Đánh giá 92
3. Hướng Phát triển . 92
TÀI LIỆU THAM KHẢO 93
                
              
                                            
                                
            
 
            
                 95 trang
95 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 4036 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách trong cơ sở dữ liệu không gian, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nghiên cứu này trong thực tiễn. Thành tựu của nó mang lại 
những kết quả to lớn không chỉ về mặt lý luận đơn thuần trong cuộc cách 
mạng hóa về bản đồ và bài toán tìm kiếm thông tin địa lý kỹ thuật số. Trong 
dòng chảy của công nghệ, các nhà khoa học, kỹ sư đang không ngừng cải tiến 
các kỹ thuật, các thuật toán cũng như tìm kiếm giảp pháp tích hợp tốt nhất cho 
các ứng dụng GIS, tất cả đều có chung một mục tiêu đó là hướng đến một giải 
pháp hoàn thiện nhất, có thể tối thiểu hóa thấp nhất thời gian đáp ứng của hệ 
thống đối với một yêu cầu xử lý truy vấn cũng như giới hạn tối đa số lượng 
các phép tính phức tạp cần phải thực hiện, trong khi vẫn đảm bảo đưa ra cho 
khách hàng những kết quả truy xuất tốt nhất, chính xác nhất. 
Dưới đây là khái quát một số trong rất nhiều các nghiên cứu và ứng dụng 
có liên quan trong lĩnh vực này 
1. Ứng dụng trong việc xây dựng một hệ thống khung (framework) xử lý 
hiệu quả các truy vấn không gian cơ bản. 
Trong những năm gần đây, bắt đầu từ 2003 trong Papadias(2003) một kiến 
trúc hứa hẹn nhiều tiềm năng đã và đang được nghiên cứu và không ngừng 
được ứng dụng trong các sản phẩm liên quan đến hệ thống thông tin địa lý - 
GIS cũng như hệ quản trị cơ sở dữ liệu không gian. Đây là cấu trúc được xây 
dựng dựa trên ý tưởng tích hợp mạng không gian với không gian khoảng cách 
trong đại số Euclidean, sao chép lại các ràng buộc thực thể trong thực tế Giải 
pháp được đề xuất này đặt ra yêu cầu cấp thiết phải xây dựng và phát triển 
một hệ thống framework chuyên biệt để xử lý tất cả các truy vấn cơ bản nhất 
trong CSDL không gian. Và những kỹ thuật xấp xỉ khoảng cách đã được trình 
bày trên đây hoàn toàn có thể được áp dụng trong kiến trúc framework này 
với mục đích hỗ trợ chương trình xử lý đưa ra các truy xuất CSDL nhanh 
chóng và hiệu quả so với các phương pháp tìm kiếm và truy vấn thông 
thường. 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
65
Có thể kể đến một số nhà cung cấp các hệ thống framework và các phần 
mềm tích hợp như một giải pháp toàn diện cho việc xây dựng, ứng dụng và 
quản lý hệ thông tin địa lý như ESRI (Viện nghiên cứu các hệ thống môi 
trường) thành lập vào năm 1969, ESRI có trụ sở tại Redlands, California. 
Website: www.esri.com 
ESRI công bố sản phẩm phần mềm ArcGIS 9 vào tháng 5 năm 2004, 
những phiên bản tiếp theo liên quan đến phần mềm tích hợp này được thiết kế 
nhằm đưa ra bộ sản phẩm phần mềm GIS hoàn thiện. Hai sản phẩm đã được 
công bố chính là ArcGIS Engine, bộ công cụ phần mềm có thể được dùng để 
nhúng các hàm GIS vào các ứng dụng có sẵn, và ArcGIS Server, ứng dụng kỹ 
thuật về không gian địa lý trong hệ thống thông tin quy mô lớn thông qua việc 
quản lý và ứng dụng dữ liệu tập trung kết hợp với các chuẩn công nghệ thông 
tin 
Ngày nay, các sản phẩm GIS của ESRI đang trên đà phát triển, việc đổi 
mới trong công nghệ cho phép các hoạt động GIS tinh vi hơn thông qua hỗ trợ 
số hóa cá nhân (PDA) trên desktop cho các doanh nghiệp. Tính năng mới của 
phần mềm giúp doanh nghiệp xử lý mạng, xuất dữ liệu điện tử, công cụ dễ sử 
dụng và đáp ứng được ưu điểm của công nghệ GIS. 
Trong đó ArcGIS framework được đánh giá là giải pháp toàn diện cho 
thông tin địa lý bao gồm một tập hợp các sản phẩm phần mềm GIS cung cấp 
cho người dùng hệ thống các sản phẩm cho phép xây dựng các ứng dụng tùy 
biến, destop, server, ứng dụng web…: DestopGIS, ServerGIS, DeveloperGIS, 
MobileGIS, Dịch vụ GIS Web. 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
66
Hình 24: Minh họa cấu trúc sản phẩm ArcGIS của ESRI 
Phiên bản ArcGIS mới nhất là ArcGIS 9.3 
Chi tiết tại website chính thức: www.esri.com/software/arcgis/index.html 
Ngày 28 tháng 4 năm 2008 tại trụ sở ở Redlands, California — ESRI tuyên bố 
khai trương ESRI Vietnam song hành với ESRI Thái Lan trong khu vực. Việc 
mở ESRI Vietnam cho phép ESRI phục vụ tốt hơn người dùng trong khu vực 
và cũng thừa nhận sự pháp triển và trưởng thành trong thị trường GIS. Phần 
mềm ESRI đã được bán trong khu vực nhiều năm qua, và việc thêm văn 
phòng ESRI Vietnam sẽ cung cấp một sự hỗ trợ tốt hơn cho cả những ngừơi 
dùng và hy vọng mở rộng thị trường giáo dục trong quốc gia để gia tăng đào 
tạo về GIS thông qua việc liên doanh với các trường và đại học nội địa. 
Sự xuất hiện của ESRI VietNam nhằm hỗ trợ tốt hơn khách hàng khu vực, đặc 
biệt, tại Việt Nam, các dòng sản phẩm quen thuộc của ESRI được sử dụng 
chính thức nhiều hơn một thập kỷ trước. 
Theo www.mathgis.com 
2. Tăng tốc quá trình phân tích, thực thi và hiển thị dữ liệu địa lý trong 
các truy vấn liên quan đến khoảng cách (DBQs) 
Ứng dụng rộng rãi và thành công nhất trong ngành khoa học công nghệ 
nghiên cứu và kiến thiết các hệ quản trị cơ sở dữ liệu không gian, các giải 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
67
pháp quản lý, mô hình hóa, xử lý truy vấn và hiển thị dữ liệu địa lý chính là 
GIS – Hệ thống thông tin địa lý. Thực tế không thể phủ nhận rằng ngày nay 
các ứng dụng liên quan đến GIS cũng như CSDL không gian đang dần trở nên 
phổ biến và đi vào mọi mặt của cuộc sống công nghệ hiện đại. Không chỉ 
dừng ở khái niệm xây dựng các bản đồ địa lý, GIS còn là công cụ đắc lực cho 
nhà quản lý hoạch định được chiến lược phát triển cơ sở hạ tầng cho một xã, 
một huyện, một thành phố hay một quốc gia. Đi cùng với sự phát triển nhanh 
chóng đó là yêu cầu lưu trữ, xử lý một khối lượng dữ liệu ngày càng lớn và 
phức tạp. Để xử lý một khối lượng dữ liệu khổng lồ trong khoảng thời gian 
cho phép của hệ thống không phải là điều đơn giản, do vậy trong ngành kinh 
doanh công nghệ hiện đại, hệ thống có tốc độ xử lý càng nhanh, hiệu năng 
càng cao thì càng đắt giá. Trong cuộc cạnh tranh khốc liệt giữa các hãng cung 
cấp giải pháp trong ứng dụng GIS và hệ quản trị CSDL, việc tìm kiếm các 
thuật toán tối ưu luôn là ưu tiên được đặt lên hàng đầu. Với GIS - chức năng 
quan trọng nhất tạo nên sức mạnh thực sự của GIS so với các phương pháp 
khác chính là khả năng phân tích và tìm kiếm dữ liệu không gian, trong đó số 
lượng truy vấn tìm kiếm liên quan đến khoảng cách lại chiếm đa số. Do vậy rõ 
ràng các thuật toán xấp xỉ khoảng cách đóng vai trò quan trọng trong thiết kế 
giải pháp xử lý các truy vấn và cải thiện đáng kể tốc độ xử lý, phân tích của hệ 
thống. Với thời gian truy xuất nhanh chóng và kết quả truy xuất đáng tin cậy 
các hệ thống sử dụng thuật toán và các kỹ thuật xấp xỉ khoảng cách đang thể 
hiện ưu thế rõ rệt trên thị trường công nghệ. 
 Sản phẩm mới nhất về CSDL hiện nay phải kể đến SQL Server 2008 với 
những ưu điểm vượt trội do Microsoft tung ra thị trường gần đây. 
 Lưu trữ được nhiều loại dữ liệu hơn bao giờ hết 
Cùng với sự bùng nổ các loại ứng dụng mới đặc biệt là các loại ứng dụng 
viễn thông trên nền tảng IP như OCS 2007 hay Exchange 2007 UM thì hàng 
loạt các định dạng dữ liệu mới cũng ra đời và người ta cũng muốn lưu trữ , 
tìm kiếm, truy vấn, chia sẻ, đồng bộ chúng. Vì vậy việc lưu trữ những dự liệu 
như vậy trên hệ CSDL đã được SQL Server 2008 giải quyết khá triệt để và rốt 
ráo với khả năng lưu trữ hầu hết các loại dữ liệu từ dự liệu dạng Spatial cho 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
68
đến dạng File Streams. 
 Khả năng thao tác song hành trên các bảng dữ liệu phân vùng 
SQL Server 2005 hỗ trợ việc lưu trữ và thao tác song hành liên bảng ghi 
CSDL. SQL Server 2008 tiếp tục nâng cao khả năng thao tác song hành với 
các bảng dữ liệu phân vùng liên hệ thống. Điều này có nghĩa là khi người 
dùng có thể thực hiện một truy vấn mà liên quan đến dữ liệu trên hai phân 
vùng CSDL thì SQL Server 2008 sẽ xử lý truy vấn này song hành cùng lúc 
trên mỗi phân vùng. 
 Tăng tốc khả năng truy vấn dữ liệu 
Cùng với khả năng nén CSDL lên đến trên 50% thì hiệu xuất truy vấn dữ 
liệu cũng được cải thiện đáng kể với Support Star Schema và Star Query 
Optimizations trên SQL Server 2008. 
Hình 25: Kiến trúc CSDL trên nền tảng Microsoft 
3. Xây dựng thuật toán xấp xỉ như một công cụ hạn chế những khó khăn 
phát sinh đối với kích thước địa lý của đối tượng 
Khó khăn đối với kích thước địa lý thực của đối tượng ở đây là sự chênh 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
69
lệch về khoảng cách giữa các điểm càng nhỏ khi kích thước tăng. 
Ý tưởng sử dụng kỹ thuật tính toán gần đúng như một công cụ hạn chế 
những khó khăn phát sinh do sự khác biệt giữa đối tượng địa lý trong không 
gian thực và biểu diễn hình học của đối tượng đó trong CSDL không gian, 
đang được áp dụng cho việc xây dựng các cấu trúc đánh chỉ mục cũng như 
trong quá trình tính toán các kết quả chính xác. 
Có rất nhiều tiêu chuẩn tương tự trong các CSDL đa phương tiện và các hệ 
thống trợ giúp việc lập quyết định đang được định nghĩa dựa trên cơ sở là các 
không gian vecto trong không gian thứ nguyên bậc cao. Các phương pháp chỉ 
mục phân chia dữ liệu sử dụng trong các không gian thông thường (như grid 
file, R-tree và các biến thể của chúng) thường hoạt động tốt với các không 
gian thứ nguyên bậc thấp, nhưng lại thể hiện nghèo nàn khi bậc thứ nguyên 
tăng lên. Vấn đề nảy sinh này thường được gọi theo thuật ngữ là “dimensional 
curse[1]” – tạm dịch là “trở ngại về bậc thứ nguyên”. Giải pháp đưa ra là 
Vector-approximation file (VA-file[2]) (Weber, Schek, & Blott, 1998) ứng 
dụng trong tìm kiếm tương đương trên các không gian vector thứ nguyên bậc 
cao. 
 VA-file – The vector approximate file: Cấu trúc tổ chức dữ liệu duới dạng 
chia không gian dữ liệu thành 2b ô chữ nhật – rectangle cells, mỗi ô được định 
nghĩa một số bít xác định là b (như một số lượng bit trên mỗi chiều). Thay vì 
tổ chức dưới dạng phân cấp như cấu trúc grid file hoặc R-tree, VA-file cấp 
phát cho mỗi ô một chuỗi bít riêng có độ dài b và qui định xấp xỉ vị trí của các 
điểm dữ liệu vào trong mỗi ô bằng các chuỗi bít này. VA-file bản thân nó đơn 
giản chỉ như một mảng của các phân phối gọi là xấp xỉ hình học. Trong bài 
toán tìm kiếm k lân cận gần nhất, toàn bộ các file xấp xỉ sẽ được duyệt qua và 
các đường biên cận trên và cận dưới giới hạn khoảng cách trong truy vấn có 
thể được xác định dễ dàng dựa vào các ô dạng chữ nhật được biểu diễn một 
cách gần đúng. Qua đó, một số lượng lớn các vectơ nằm trong chuỗi tìm kiếm 
này sẽ được lược bỏ dựa trên khung giới hạn gần đúng trên – bước lược bỏ 
nhằm giới hạn không gian tìm kiếm này còn được gọi là filtering step – Bước 
lọc. Sau bước này việc tìm kiếm sẽ được thu nhỏ trong giới hạn một tập các 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
70
trường hợp khả thi còn lại. Các trường hợp này sau đó sẽ được xem xét theo 
thứ tự tăng dần của đường biên khoảng cách thấp hơn đối với điểm truy vấn 
q, khoảng cách chính xác đến q sẽ được tính toán. Tuy nhiên, không cần thiết 
phải xét hết tất cả các trường hợp trên, nếu đường biên cận dưới tiến vượt quá 
k-th khoảng cách gần nhất, quá trình tìm kiếm K-NNQs (K Nearest 
Neighbour queries) dừng. 
VA-file khắc phục được các khó khăn gây ra bởi “dimentional curse” bằng 
cách thay vì chú trọng quản lý cách thức phân chia dữ liệu thuộc các phương 
pháp chỉ mục thông thường, VA-file theo dõi cách thức lọc dữ liệu của file đã 
đánh dấu. Như vậy chính dữ liệu (không phải là không gian) sẽ được phân 
chia thành các ô, và các vector sẽ được gán tương đương theo giá trị gần đúng 
dựa vào các ô chứa chúng. VA-file bao gồm các giá trị xấp xỉ đã được chia 
nhỏ dưới dạng bít mã hóa này. Cùng với VA-file là VA+-file là hai cấu trúc 
lưu trữ các điểm tính toán gần đúng trong quá trình xử lý trên không gian thứ 
nguyên bậc cao. 
Ngoài ra, A-tree[3] (Sakurai, Yoshikawa, Uemura, & Kojima 2000) là một 
cấu trúc khác nơi các biểu diễn của MBR và các đối tượng dữ liệu được xây 
dựng dựa trên các phép tính gần đúng liên quan từ các MBR ở cấp “cha” của 
chúng. 
Những cấu trúc này đang được sử dụng trong việc tính toán chính xác các 
truy vấn tìm kiếm lân cận gần nhất trong không gian thứ nguyên bậc cao và 
biểu diễn, thực thi tốt hơn so với các kỹ thuật khác dựa trên R-tree. 
4. Tính toán độ chính xác về vị trí trên bản đồ và chênh lệch về khoảng 
cách giữa các đối tượng trong truy vấn 
Thực tế, từ khi hệ thống định vị vệ tinh GPS được đưa vào sử dụng cho 
mục đích dân sự, nó đã ở ra một cuộc cách mạng công nghệ mới trong lĩnh 
vực trắc địa - bản đồ theo hướng không ngừng nâng cao hiệu quả của công tác 
đo đạc ngoại nghiệp cho đến việc đáp ứng mọi yêu cầu về độ chính xác (độ 
chính xác đo đạc GPS ngày nay có thể đạt ở mức mm với khoảng cách vài 
ngàn km). Tuy nhiên công nghệ này chỉ được ứng dụng nhiều trong kỹ thuật 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
71
đo tĩnh chính xác và chủ yếu là về phương diện mặt bằng còn về thành phần 
độ cao ít được quan tâm hơn, đặc biệt trong kỹ thuật đo động thì thành phần 
độ cao hầu như bị bỏ qua trong các ứng dụng độ chính xác cao. Ngày nay với 
sự gia tăng về số lượng vệ tinh, cấu hình vệ tinh ngày càng tốt, công nghệ chế 
tạo máy thu ngày càng cao và các phần mềm xử lý ngày càng tinh vi thì chắc 
chắn rằng độ chính xác đo tĩnh và đo động cả về phương diện mặt bằng lẫn độ 
cao sẽ không ngừng được cải thiện. Với các thuật toán tính khoảng cách dựa 
trên địa hình trái đất với hệ tọa riêng cho từng khu vực như với thuật toán 
Vincenty sẽ trình bày trong chương dưới đây, sai số so với khoảng cách thực 
tế là rất nhỏ. Do đó tỉ lệ khoảng cách giữa các đối tượng trên bản đồ so với 
thực tế cũng đạt đến độ chính xác cao với sai số ở mức chấp nhận được. 
Trong các bản đồ số dạng 2D – hình học phẳng, thuật toán xấp xỉ khoảng 
cách trở nên đặc biệt hữu dụng trong việc tìm đường đi ngắn nhất từ vị trí 
định vị đến đối tượng tìm thấy thỏa mãn trong truy vấn, hoặc tính khoảng 
cách gần đúng đến vị trí đã định giữa các khu vực thông qua các tuyến giao 
thông: Đường phố, đường xe cơ giới, đường xe buýt hoặc đường thủy… 
Hiện nay tại Việt Nam đã có rất nhiều trang web bản đồ trực tuyến sử 
dụng công nghệ WebGIS trợ giúp cộng đồng mạng trong việc tìm đường đi, 
tìm địa điểm, khu vực… phục vụ trong tra cứu, du lịch hoặc quản lý tài 
nguyên, quản lý đô thi, đất đai, hệ thống thủy lợi… 
Ví dụ một số trang web bản đồ trực tuyến đang hoạt động hiệu quả hiện 
nay như: 
 www.diadiem.com Trang web tìm đường tại hầu hết các tỉnh thành 
trong cả nước, hỗ trợ hiển thị bản đồ địa lý dưới dạng hình vẽ 2D và hình ảnh 
3D từ vệ tinh. Cho phép người dùng tìm đường đi ngắn nhất giữa hai vị trí 
trong thành phố 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
72
Hình 26: Trang web bản đồ trực tuyến diadiem.com 
 Trang web www.basao.com.vn , cũng là một trang web bản đồ trực tuyến, 
hỗ trợ tìm đường trên bản đồ 2D nhưng có ưu thế hơn do cho phép tìm kiếm 
đường đi dựa trên phương tiện giao thông sử dụng: Ôto, xe buýt, xe máy, 
đường thủy, đường hàng không… 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
73
Hình 27: Trang web bản đồ trực tuyến basao.com 
Chú thích 
[1] Dimensional curse: Một số lượng lớn các cấu trúc chỉ mục thứ nguyên bậc cao 
tập trung chiếm nhiều tài nguyên của bộ nhớ và ảnh hưởng đến hiệu xuất của các 
thao tác xử lý – hiện tượng này được gọi là “dimensional curse” 
[2] VA-file – The vector approximate file: Cấu trúc tổ chức dữ liệu duới dạng chia 
không gian dữ liệu thành các ô chữ nhật – rectangle cells, mỗi ô được định nghĩa 
một số bít nhất định như một số lượng bit trên mỗi chiều. VA-file đơn giản như một 
mảng của các phân phối gọi là xấp xỉ hình học. 
[3] A-tree: Một cấu trúc đánh chỉ mục mới sử dụng trong việc tìm kiếm tương tự các 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
74
dữ liệu trong không gian thứ nguyên bậc cao. Ý tưởng cơ bản của A-Tree là sử dụng 
Virtual Bounding Rectangles – VBRs (Khung giới hạn ảo), là kiểu khung bao gồm 
và xấp xỉ các MBR và các đối tượng dữ liệu. VBRs có ưu thế biểu diễn được các đối 
tượng khá chặt chẽ. 
CHƯƠNG 4 
MỘT SỐ THUẬT TOÁN TÍNH KHOẢNG CÁCH TRONG 
KHÔNG GIAN ĐỊA LÝ & ĐÁNH GIÁ HIỆU NĂNG 
1. Tính toán khoảng cách giữa các đối tượng địa lý theo công thức 
Haversine 
1.1 Công thức Haversine 
1.1.1 Khái niệm 
Công thức Haversine là một đẳng thức quan trọng được sử dụng trong quá 
trình điều hướng[1], đưa ra các great-circle distance[2] (tạm dịch: khoảng cách 
vòng cung lý tưởng) giữa hai điểm trên bề mặt khối cầu từ giá trị tọa độ (kinh 
độ, vĩ độ) cho trước của chúng. Công thức Haversine là trường hợp đặc biệt 
của các thuật toán phổ biến trong lượng giác cầu (spherical strigonometry[3]) 
Great-circle distance: Là khoảng cách ngắn nhất giữa hai điểm bất kì trên 
bề mặt khối cầu tính dọc theo một hướng đi trên bề mặt khối cầu (nghĩa là đo 
đường đi vòng cung trên bề mặt, hoàn toàn khác với khoảng cách tính theo 
đường thẳng nối hai điểm đó qua bên trong khối cầu). Khoảng cách này thể 
hiện sự khác biệt trong khái niệm khoảng cách giữa hai điểm trong hình học 
Euclidean và hình học không gian. Cụ thể: Khoảng cách giữa hai điểm trong 
không gian Euclidean là độ dài đoạn thẳng nối hai điểm đó. Trong hình học 
cầu, đoạn thẳng được thay thế bằng đường cong. 
Với hai điểm không đối xứng trực tiếp với nhau qua tâm của hình cầu (hoặc 
elip tròn xoay) thì chỉ tồn tại duy nhất một great–circle (đường cong lý tưởng), 
hai điểm này phân ly great-circle thành hai cung, độ dài của cung ngắn hơn 
chính là great-circle distance (khoảng cách vòng cung lý tưởng). Chú ý rằng 
hai đường great-circle tương ứng này phải cùng nằm trên một mặt phẳng cắt 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
75
hình cầu qua tâm của nó. 
Với hai điểm đối xứng với nhau qua tâm hình cầu sẽ có vô số các great-
circle thỏa mãn giữa chúng và độ dài của các vòng cung này đều bằng nhau và 
bằng một nửa chu vi của hình cầu đó (bằng πR – R là bán kính hình cầu). 
Do trái đất cũng có hình dạng gần như một khối cầu, các phương trình cho 
great-circle distance đóng vai trò rất quan trọng trong bài toán tìm khoảng 
cách ngắn nhất giữa các điểm trên bề mặt trái đất cũng như trong quá trình 
điều hướng (định hướng đường đi ngắn nhất cho các phương tiện hàng không 
và hàng hải). 
1.1.2 Công thức Haversine 
Với hai điểm A và B thuộc mặt cầu (có bán kính R) với tọa độ địa lý (kinh độ, 
vĩ độ) tương ứng: 
A (φ1, λ 1) 
B (φ 2, λ 2) 
Δ φ = φ1 – φ2 
Δλ = λ1 – λ2 
Với góc được tính theo đơn vị radian, ta có khoảng cách d giữa hai điểm A 
và B (tính toán dựa trên great-circle – đường tròn lý tưởng [4] đường tròn trên 
bề mặt của hình cầu có chu vi bằng chu vi của hình cầu đó và chia nó ra làm 
hai bán cầu bằng nhau) trong phương trình liên hệ sau: 
Đặt h = haversin(d/R) với 0 ≤ h ≤ 1 
Ö h = (sin(Δ φ/2))2 + cos(φ1) * cos(φ2) * (sin(Δλ/2)2 ) 
Từ phương trình trên, ta tính được khoảng cách d một cách đơn giản nếu sử 
dụng hàm nghịch đảo của hàm haversin hoặc sử dụng hàm arcsin (hàm sin 
nghịch đảo) 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
76
Suy ra: 
Dựa vào công thức trên, ta có công thức tính khoảng cách đường tròn lý tưởng 
– Great Circle Distance – C như sau: 
C = 2 arcsin (sqrt(h)) 
Ö C = 2 arcsin (sqrt ( (sin(Δ φ/2))2 + cos(φ1) * cos(φ2) * (sin(Δλ/2)2 ) ) 
Ứng dụng công thức Haversine vào việc tính toán khoảng cách trên bề mặt 
trái đất: 
Khi sử dụng Haversin trên bề mặt cầu trái đất, công thức chỉ có tính chất 
tính toán gần đúng do đặc điểm đặc biệt của bề mặt trái đất là hình dạng 
không phải là một hình cầu hoàn hảo mà có dạng như hình elip bị dẹt ở hai 
cực Bắc và Nam với bán kính R xấp xỉ từ 6356.78 km ở cực đến 6378.14 km 
tại xích đạo. Do đó ở đây có một sự điều chỉnh nhỏ nằm trong khoảng sai số 
1% với quy ước coi như trái đất là khối cầu hoàn hảo với bán kính quy định 
như một đại lượng hình học không đổi R = 6367.45 km. 
Như vậy, bỏ qua trính chất elip không đáng kể của bề mặt trái đất, ta có 
thể áp dụng công thức Haversine trong các hàm tính toán về khoảng cách 
trong thông tin địa lý với dữ liệu địa lý thông thường. 
Hình 28: Hình dạng Elip của trái đất 
North Pole
RR
Equatorial plane 
Ellipsoid 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
77
1.2 Công thức Haversine trong truy vấn tìm khoảng cách ngắn nhất 
Công thức Haversin ứng dụng trong thuật toán tính toán khoảng cách giữa 
hai điểm trong không gian tọa độ địa lý 
Có hai điểm A và B với tọa độ địa lý (kinh độ, vĩ độ) tương ứng (lat1, long1) 
và (lat2, long2) 
Ö Công thức Haversine sử dụng trong tính toán khoảng cách d = AB theo bề 
mặt cầu của trái đất được tính toán như sau: 
R = Bán kính trái đất (Quy ước = 6,371km) 
Δlat = lat2− lat1 
Δlong = long2− long1 
h = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlong/2) 
c = 2 * atan2(sqrt(h), sqrt(1−h)) 
d = R * c 
Chú ý: Các góc cần phải đổi đơn vị từ độ (trong kinh độ, vĩ độ) sang đơn vị 
Radian trước khi tính toán các hàm lượng giác và khoảng cách. 
Hàm atan2(x, y) trả về giá trị arctg (x/y) theo đơn vị radian. 
VD1: Hai điểm A & B với kinh độ, vĩ độ tương ứng, tọa độ có dạng 
độ/phút/giây và hậu tố chỉ một trong bốn hướng địa lý: N-Bắc/S-Nam/E-
Đông/W-Tây. 
A (530 09’ 02’’N; 0010 50’ 40”W) Ù A(53,1560; - 1,84440 ) 
B (520 12’ 17”N; 0000 08’ 26” E) Ù B (52,20470; 0,14060) 
Với hệ quy đổi: 10 = 60’; 1’ = 60” 
Ta có đoạn mã Javascript sau để thực hiện thuật toán tính toán khoảng cách 
giữa hai điểm: 
var R = 6371; // km 
var dLat = (lat2-lat1).toRad(); 
var dLon = (lon2-lon1).toRad(); 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
78
var h = Math.sin(dLat/2) * Math.sin(dLat/2) + 
 Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
 Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(h), Math.sqrt(1-h)); 
var d = R * c; 
Với: Hàm toRad() – Hàm chuyển giá trị tọa độ từ dạng kinh độ, vĩ độ sang 
đơn vị Radian 
 Ö Kết quả thu được: dHaversine = AB = 170,2 km 
 & Khoảng cách vòng cung lý tưởng là C = 105,8 km (Đây là đại lượng sử 
dụng đánh giá độ chính xác tính toán của các thuật toán tính khoảng cách trên 
bề mặt cầu). 
Tương ứng với vị trí trên bản đồ tìm được như sau: 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
79
Hình 29: Khoảng cách AB tính theo công thức Haversine trên bản đồ địa lý 
VD2: Trở lại với mô hình cơ sở dữ liệu Benchmark đã đề cập trong Chương 
2 - Mục 1: Các truy vấn liên quan đến khoảng cách. Ta có truy vấn tìm 
khoảng cách vị trí đối tượng gần nhất tính từ vị trí hiện tại của người dùng 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
80
Hình 30: Mô hình dữ liệu quan hệ 
Truy vấn: Tìm nhà hàng gần nhất (giả thiết với Other.type = 1) tính từ khu 
vực hiện tại tôi đang đứng ( với giá trị Human.Id = 20) 
SELECT Other.id 
FROM Human, Other 
WHERE Other.type = 1 AND Human.Id = 20 
ORDER BY Spatial_Neighbour (Other.Location, curr_space 
(Human.Route)) ASC = 1; 
Chú ý: 
 Trong trường hợp này K = 1. 
 Với câu lệnh SQL: ORDER BY Spatial_Neighbour (Other.Location, 
curr_space (Human.Route) ) ASC = 1; 
 Hàm curr_space(): Hàm trả về các thông tin cập nhật tọa độ hiện thời 
của thiết bị (tọa độ hiện tại của người sử dụng thiết bị) 
 Hàm Spatial_Neighbour (attribute, reference) được sử dụng để biểu diễn 
truy vấn dạng K-NN giữa các thuộc tính. Kết quả trả về được sắp xếp 
theo quy tắc tăng dần về khoảng cách (ở đây là khoảng cách gần nhất 
giữa người sử dụng đến nhà hàng). Với giá trị ASC = 1 ta thu được kết 
quả trả lời truy vấn là vị trí nhà hàng gần nhất tính từ vị trí hiện tại. 
 Thuật toán xác định đối tượng trong khu vực thỏa mãn và tính toán khoảng 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
81
cách từ vị trí xác định đến đối tượng sẽ được cài đặt trong hàm 
Spatial_Neighbour (attribute, reference). Giá trị trả về của hàm là tất cả các 
vùng lân cận gần nhất (ở đây là nhà hàng) thể hiện trong tham số reference 
(Other.Location) và thỏa mãn đến dữ liệu nhập vào từ tham số attribute. 
 Sử dụng hàm tính toán Haversine cài đặt như trên, ta có thể tính được 
khoảng cách trên bề mặt trái đất từ tọa độ xác định đến tọa độ vị trí tìm thấy 
trong truy vấn: 
 Giả sử vị trí hiện tại: Giá trị trả về của hàm Curr_Space (Human.Route) là 
vị trí có tọa độ C (200 50’ 30”S; 0030 09’ 21”W) 
Một số nhà hàng tìm thấy trên bản đồ có vị trí lần lượt là: 
 R1 (200 55’ 00”S; 0030 01’ 30”W) Ö Dhaversine CR1 = 15,95 km 
 R2 (210 00’ 00”S; 0020 59’ 10”W) Ö Dhaversine CR2 = 24,91 km 
 R3 (200 55’ 00”S; 0020 59’ 20”W) Ö Dhaversine CR1 = 19,25 km 
Kết quả tính toán được trả về và sắp xếp theo thứ tự tăng dần, với K = 1 Ö Ta 
thu được vị trí điểm gần nhất thỏa mãn truy vấn là R1. 
1.3 Đánh giá thuật toán Haversine 
Công thức Haversine thực thi đặc biệt thành công với các tính toán số học 
kể cả với các khoảng cách nhỏ (khác với các cách tính toán dựa trên các luật 
thuộc bề mặt cầu của hàm cosin[] – Một tập các quy tắc tính toán đối với hàm 
cosin trên bề mặt hình cầu được đưa ra bởi R.W Sinnot trong “Sky and 
Telescope” xuất bản năm 1984; công thức tính bình phương hàm sin của góc 
θ/2 có thể được tính xấp xỉ bằng: (1-cosθ)/2 = sin²(θ/2)). 
Độ chính xác tính toán trong thuật toán Haversine: 0.3% (Sai số tính được 
so với khoảng cách trong thực tế) 
Trong thực tế, khi Sinnott phát minh ra công thức Haversine, khả năng tính 
toán số lớn của máy tính còn rất hạn chế. Ngày nay, công cụ Javascript và các 
máy tính hiện đại nhất sử dụng số dấu phẩy động 64-bit theo chuẩn IEEE 754, 
đã cung cấp tới 15 số chính xác sau dấu phẩy. Với độ chính xác cao như vậy, 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
82
công thức tính theo đại lượng hàm cosin trên bề mặt cầu đưa ra kết quả khá 
tin cậy với khoảng cách nhỏ trong khoảng 1m. 
Tính khoảng cách d theo công thức cosin 
 d=cos(sin(lat1).sin(lat2)+cos(lat1).cos(lat2).cos(long2−long1)).R 
Đoạn mã Javascript: 
 var R = 6371; // km 
 var d = Math.acos(Math.sin(lat1)*Math.sin(lat2) + 
 Math.cos(lat1)*Math.cos(lat2) * 
 Math.cos(lon2-lon1)) * R; 
 Tuy nhiên, do độ chính xác của hàm tính toán này chỉ đáng tin cậy với 
khoảng cách nhỏ nên không thể sử dụng trong tính toán các khoảng cách lớn, 
đặc biệt là khoảng cách địa lý trên bề mặt trái đất. Thêm vào đó, tính chất 
Ellip của trái đất cũng là lí do hạn chế gần như tuyệt đối việc sử dụng công 
thức cosin trên trong tính khoảng cách. 
Trong một số trường hợp, công thức Haversine đã đơn giản hóa việc tính 
toán khoảng cách trên bề mặt cầu do việc xấp xỉ bán kính trái đất dưới dạng 
bán kính của một hình cầu lý tưởng (có bán kính qua bằng nhau tại mọi điểm 
trên bề mặt cầu), tuy nhiên việc đơn giản hóa này cũng mang lại sai số lớn khi 
tính toán các đối tượng cách xa nhau theo kinh độ cũng như vĩ độ địa lý. 
Khắc phục được hạn chế này là công thức Vincenty được Thaddeus 
Vincenty (‘TV’) phát minh, sử dụng trong tính toán khoảng cách địa lý với 
một cặp thông tin vị trí kinh độ và vĩ độ trên bề mặt trái đất, sử dụng mô hình 
ellip tròn xoay chính xác của trái đất. 
2. Tính toán khoảng cách trong hệ tọa độ địa lý theo khoảng cách 
Vincenty 
2.1 Khái niệm 
Thuật toán Vencenty (1975) được đặt theo tên của người phát minh là 
Thaddeus Vincenty – nhà đo đạc bản đồ người Ba Lan. Vencenty là một kỹ 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
83
thuật tính toán đo đạc khoảng cách trong không gian địa lý với độ chính xác 
đáng kinh ngạc là 0,5mm hoặc 0.000015”. 
Hiện nay thuật toán Vicenty là tối ưu nhất để tính khoảng cách 2 điểm trên 
mặt ellipsoid với sai số vài cm trên đường đáy dài vài chục ngàn km. 
 Các dạng Elip tròn xoay sử dụng trong tính toán khoảng cách địa lý 
Ellipsoid (elilp tròn xoay) có phương trình toán học nên xác định được tọa 
độ các điểm trên bề mặt của nó. Từ quá khứ, lịch sử nghiên cứu ngành khoa 
học trắc địa và thông tin địa lý đã ghi nhận nhiều nhà khoa học đã tìm cách 
tính kích thước của ellipsoid sao cho gần giống với trái đất thực nhất và cho 
các kết quả không giống nhau. Nguyên nhân là do trình độ khoa học công 
nghệ, công nghệ tính toán (trước đây do chưa có máy vi tính nên chủ yếu tính 
toán bằng tay). 
Geoid - Là mặt nước biển trung bình yên tĩnh xuyên qua các lục địa và hải 
đảo. Ta tưởng tượng trái đất có nước chiếm >70% diện tích, nếu cho toàn bộ 
trái đất bị nước bao phủ thì mặt nước biển trung bình đó chính là Geoid. 
Geoid dùng để xác định độ cao các điểm trên bề mặt trái đất. Độ cao của 1 
điểm là khoảng cách theo phương dây dọi từ điểm đó đến mặt geoid. 
WGS 84 – Là hệ thống tọa độ do Bộ Quốc Phòng Mỹ tìm ra năm 1984. 
Đây là kiểu mô hình ứng dụng toàn cầu dạng elip tròn xoay được sử dụng đo 
tọa độ trên bề mặt trái đất, nó mô hình gần như chính xác hình dạng trái đất 
theo dạng Geoid (bề mặt trái đất xấp xỉ theo mực nước biển trung bình). 
Ngoài ra còn một số mô hình dạng elip tròn xoay khác cũng được sử dụng 
rộng rãi, đặc biệt là trong tính toán, đo đạc vị trí địa lý trong Geoid khu vực 
như: Airy (1830) sử dụng ở Anh, International 1924 sử dụng tại Châu Âu, 
Clarke (1880) ở Ấn Độ, and GRS-67 ở Nam Mỹ, tại Mỹ (NAD83) và Úc sử 
dụng GRS-80. Mỗi loại elip tròn xoay được thiết kế và xây dựng cho các loại 
dữ liệu đặc trưng cho từng khu vực và lãnh thổ địa lý trên trái đất. 
Các thông số của elip tròn xoay bao gồm 
 Kích thước bán trục dài – a 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
84
 Kích thước bán trục ngắn – b 
 Độ dẹt – f 
Bảng thông số các elip tròn xoay: 
Ellipsoid 
Bán trục dài–a 
(m) 
Bán trục ngắn –
b(m) 
Độ dẹt - f 
WGS-84 a=6 378 137 (±2 ) b=6 356 752.3142 
f = 1 / 
298.257223563 
GRS-80 a =6 378 137 b=6 356 752.3141 
f = 1 / 
298.257222101 
Airy (1830) a=6 377 563.396 b = 6 356 256.909 f = 1 / 299.3249646 
Int’l 1924 a =6 378 388 b = 6 356 911.946 f = 1 / 297 
Clarke 
(1880) 
a=6 378 249.145 b = 6 356 514.86955 f = 1 / 293.465 
GRS‐67  a = 6 378 160 b = 6 356 774.719 f = 1 / 298.25 
Hình 31: Thông số các hệ tọa độ elip tròn xoay 
Có thể coi các Elip tròn xoay này như các hệ tọa độ tương ứng với từng 
vùng lãnh thổ trên bề mặt trái đất sử dụng trong công việc đo đạc, tính toán 
tọa độ cũng như ghi nhận vị trí địa lý của các đối tượng thực trên bề mặt trái 
đất và mô phỏng nó trên bản đồ. 
Hiện nay, Việt Nam đang sử dụng hệ tọa độ riêng trên lãnh thổ Việt Nam 
– Hệ tọa độ quốc gia VN 2000 – Hệ được xây dựng dựa trên nền tảng 
ellipsoid WGS84 nhưng được định vị lại cho phù hợp lãnh thổ Việt Nam (vẫn 
là ellipsoid WGS84 nhưng được di dời và xoay 1 khoảng rất nhỏ). Tuy nhiên 
điều này đang gây ra những trở ngại trong việc tích hợp các bản đồ Việt Nam 
với hệ thống bản đồ chung của thế giới và quá trình sử dụng các thiết bị đo 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
85
đạc hiện đại nhập ngoại trợ giúp quá trình khảo sát địa lý trên lãnh thổ Việt 
Nam cũng gặp nhiều khó khăn. Với sự phát triển của các công cụ bản đồ vệ 
tinh rất phổ biến hiện nay như Google Earth, việc xác định vị trí địa lý tại mọi 
vị trí trên trái đất với bất kỳ công dân nào trở nên dễ dàng hơn bao giờ hết, do 
đó yếu tố bảo mật tọa độ trong lãnh thổ quốc gia đã trở nên không cần thiết. 
Năm 2002, Bộ Tài nguyên và môi trường đã có quyết định về hệ thống 
tham số tính chuyển giữa Hệ tọa độ quốc tế WGS-84 và Hệ tọa độ quốc gia 
VN-2000. Trong đó đã quy định hệ thống tham số chuyển hệ tọa độ như sau: 
 Tham số dịch chuyển gốc tọa độ: -191,90441429 m; -39,30318279 m; -
111,45032835m. 
 Góc xoay trục tọa độ: -0,00928836”; 0,01975479”; -0,00427372”. 
 Hệ số tỷ lệ chiều dài: k = 1,0000002529062 78. 
2.2 Thuật toán Vincenty 
Thuật toán Vincenty thể hiện nhiều ưu điểm trong việc tính toán khoảng 
cách địa lý do ưu thế về độ chính xác khá cao. Tuy nhiên, việc triển khai thuật 
toán này là khác phức tạp, bao gồm nhiều phép toán trung gian và các vòng 
lặp lồng nhau, do đó đề tài không đi sâu vào nghiên cứu và phân tích chi tiết 
thuật toán Vincenty. Trong giới hạn nghiên cứu của luận văn, tác giả chỉ dừng 
ở mức tham khảo giả mã của thuật toán với tính chất tra cứu khi cần sử dụng. 
2.2.1 Cài đặt thuật toán Vincenty sử dụng hệ tọa độ ellipsoid WGS - 84 
Dưới đây là đoạn mã JavaScript thực hiện thuật toán Vincenty sử dụng các 
thông số tính toán của hệ tọa độ WGS-84 
/* Tính toán khoảng cách địa lý giữa hai điểm có tọa độ (kinh độ, vĩ độ) cho 
trước (ở dạng độ thập phân) sử dụng công thức Vincenty cho trái đất dạng 
elip tròn xoay*/ 
function distVincenty(lat1, lon1, lat2, lon2) { 
var a = 6378137, b = 6356752.3142, f = 1/298.257223563; /* WGS-84 
ellipsiod */ 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
86
 var L = (lon2-lon1).toRad(); 
 var U1 = Math.atan((1-f) * Math.tan(lat1.toRad())); 
 var U2 = Math.atan((1-f) * Math.tan(lat2.toRad())); 
 var sinU1 = Math.sin(U1), cosU1 = Math.cos(U1); 
 var sinU2 = Math.sin(U2), cosU2 = Math.cos(U2); 
 var lambda = L, lambdaP = 2 * Math.PI; 
 var iterLimit = 20; 
while (Math.abs(lambda-lambdaP) > 1e-12 && --iterLimit>0) { 
 var sinLambda = Math.sin(lambda), cosLambda = Math.cos(lambda); 
 var sinSigma = Math.sqrt (( cosU2 * sinLambda) * (cosU2 * sinLambda) 
+ (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda) * (cosU1 * sinU2 - 
sinU1 * cosU2 * cosLambda ) ); 
 if (sinSigma==0) return 0; // co-incident points 
 var cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda; 
 var sigma = Math.atan2(sinSigma, cosSigma); 
 var sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma; 
 var cosSqAlpha = 1 – sinAlpha * sinAlpha; 
 var cos2SigmaM = cosSigma – 2 * sinU1 * sinU2/cosSqAlpha; 
if (isNaN(cos2SigmaM)) cos2SigmaM = 0; /* equatorial line: 
cosSqAlpha = 0 */ 
 var C = f/16 * cosSqAlpha * (4 + f * (4 – 3 * cosSqAlpha)); 
 lambdaP = lambda; 
lambda = L + (1 - C) * f * sinAlpha * (sigma + C * sinSigma * ( 
cos2SigmaM + C * cosSigma * ( 1 + 2 * cos2SigmaM * cos2SigmaM ) ) 
); 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
87
 } 
 if (iterLimit==0) return NaN // formula failed to converge 
var uSq = cosSqAlpha * (a*a - b*b) / (b*b); 
var A = 1 + uSq/16384 * (4096 + uSq * (-768 + uSq * (320 - 175 * uSq))); 
var B = uSq/1024 * (256 + uSq * (-128 + uSq * (74 – 47 * uSq))); 
var deltaSigma = B * sinSigma* (cos2SigmaM + B/4 * (cosSigma * (- 1 + 
2 * cos2SigmaM * cos2SigmaM ) - B/6 * cos2SigmaM * ( 3 + 4 * sinSigma 
* sinSigma ) * ( -3 + 4 * cos2SigmaM * cos2SigmaM) ) ); 
var s = b * A * (sigma - deltaSigma); 
s = s.toFixed(3); // round to 1mm precision 
return s; 
} 
 Như vậy, với hệ thống tham số chuyển tọa độ đã quy định ở trên, ta hoàn 
toàn có thể ứng dụng thuật toán Vincenty vào bài toán tính khoảng cách địa lý 
trên lãnh thổ Việt Nam trong hệ tọa độ VN-2000 tương ứng mà không ảnh 
hưởng đến độ chính xác của thuật toán cũng như cơ sở hạ tầng bản đồ địa lý 
đã xây dựng dựa trên VN-2000 của nước ta. 
2.2.2 Sử dụng hàm tính toán Vincenty trong truy vấn tìm khoảng cách 
địa lý 
Trở lại với ví dụ trong phần 1.2 – Chương 4 về khoảng cách Haversine, ta 
tính toán khoảng cách giữa hai điểm này theo thuật toán Vincenty và so sánh 
độ chính xác tính toán của hai phương pháp trên dựa vào đại lượng great-
circle distance (khoảng cách vòng cung lý tưởng) - C đã có ở trên. 
VD1: Hai điểm A & B với kinh độ, vĩ độ tương ứng, tọa độ có dạng 
độ/phút/giây và hậu tố chỉ một trong bốn hướng địa lý: N-Bắc/S-Nam/E-
Đông/W-Tây. 
A (530 09’ 02’’N; 0010 50’ 40”W) Ù A(53,1560; - 1,84440 ) 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
88
B (520 12’ 17”N; 0000 08’ 26” E) Ù B (52,20470; 0,14060) 
Với hệ quy đổi: 10 = 60’; 1’ = 60” 
 Ö Ta có dVincenty = AB = 156,067 km 
Theo trên ta có : dHaversine = AB = 170,2 km 
& Khoảng cách mặt cầu lý tưởng là C = 105,8 km 
Dễ dàng nhận thấy với cùng tọa độ điểm, thuật toán Vincenty cho khoảng 
cách chính xác hơn tuy mất nhiều thời gian tính toán hơn. 
VD2: Sử dụng thuật toán Vincenty tính toán khoảng cách giữa hai khu vực tại 
Australia theo hệ tọa độ WGS-84: Khoảng cách giữa trung tâm hai thành phố 
Flinder Peak và Buninyong, với tọa độ tương ứng là: 
Flinder Peak (370 57’ 03”S; 1440 25’ 29” E) 
Buninyong (370 39’ 10” S; 1430 55’ 35” E) 
 ÖdVincenty = 54,959 km 
Chú ý: Độ chính xác của thuật toán Vincenty còn phụ thuộc rất nhiều vào hệ 
tọa độ elip tròn xoay mà nó được sử dụng cũng như vị trí địa lý khu vực áp 
dụng thuật toán, độ chính xác nằm trong khoảng 0.5mm (tương đương sai số 
tọa độ là 0,00015”) chỉ đúng trên lý thuyết elip, đại lượng sai số này sẽ thay 
đổi khi áp dụng vào các Geiod (bề mặt cầu xây dựng dựa trên mực nước biển 
trung bình) trên bề mặt trái đất trong thực tế. 
Với các vùng lãnh thổ địa lý khác nhau việc sử dụng các hệ tọa độ phù 
hợp là rất quan trọng, nó quyết định độ chính xác tính toán về khoảng cách 
của thuật toán Vincenty. Tỉ lệ sai số khác nhau trong từng trường hợp là do sử 
dụng các geoid khác nhau ( như WGS-84, GRS-80, Airy…. ). 
Bằng thực nghiệm đã cho thấy, sử dụng thuật toán Vincenty tính khoảng 
cách tại vị trí địa lý có độ cao so với mặt nước biển trung bình là 2km, sai số 
tính được khoảng 0,03% (lớn hơn so với khoảng cách thực tế). Giả sử thực 
hiện đo đạc tại nước Anh sử dụng hệ tọa độ WGS-84, thu được kết quả tính 
toán của thuật toán Vincenty với sai số là 28m (tương đương 0.003%) – lớn 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
89
hơn khi sử dụng hệ tọa độ elip tròn xoay Airy, là hệ tọa độ được xây dựng phù 
hợp dựa trên đặc thù địa lý và lãnh thổ nước Anh. 
3. Đánh giá thuật toán Haversine và Vincenty 
Với mục đích so sánh độ chính xác và đánh giá hiệu năng của hai thuật 
toán Haversine và Vincenty, ta sử dụng lại tọa độ các điểm trong truy vấn tại 
mục 1.2 Chương 4 – (đã dùng để tính toán khoảng cách trong công thức 
Haversine) để ứng dụng tính với công thức Vincenty. 
Ta có bảng thống kê kết quả của phép tính khoảng cách theo tọa độ địa lý 
theo công thức Haversine và Vincenty như dưới đây: 
Với tọa độ vị trí hiện tại ghi nhận là - C (200 50’ 30”S; 0030 09’ 21”W) 
Một số nhà hàng tìm thấy trên bản đồ có vị trí lần lượt là: 
 R1 (200 55’ 00”S; 0030 01’ 30”W) 
 R2 (210 00’ 00”S; 0020 59’ 10”W) 
 R3 (200 55’ 00”S; 0020 59’ 20”W) 
Khoảng cách d = CRi tương ứng với từng thuật toán như sau: 
 R1 R2 R3 
Kinh độ 200 55’ 00”S 210 00’ 00”S 200 55’ 00”S 
Vĩ độ 0030 01’ 30”W 0020 59’ 10”W 0020 59’ 20”W 
Dhaversine 15,95 km 24,91 km 19,25 km 
DVincenty 15,946 km 24,879 km 19,253km 
Hình 32: Khoảng cách tính theo thuật toán Haversine và Vincenty 
 Nhận xét: 
 Xét về độ chính xác kết quả: Sai số về kết quả tính toán khoảng cách 
giữa hai thuật toán là 0,35%, tức là chênh lệch vị trí khi dùng hai phương 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
90
pháp này có thể lên đến 3,5km nếu khoảng cách tính toán là trên 950km. 
Với khoảng cách nhỏ, hai thuật toán thể hiện sai số không chênh 
lệch nhiều so với thực tế), tuy nhiên thuật toán Vincenty cho kết quả với 
độ chính xác cao hơn, điều này sẽ là lợi thế khá rõ rệt với kết quả là 
những khoảng cách lớn (hàng nghìn hoặc hàng vạn km). Trong trường 
hợp với phương tiện đường bộ như ôto hoặc xe máy, việc tìm kiếm vị trí 
cần xác định trong khoảng bán kính sai số vài km với thuật toán 
Haversine thực sự là vấn đề lớn. 
 Xét theo độ phức tạp tính toán: Rõ ràng, để có kết quả tính toán chính 
xác đến từng mm, thuật toán Vincenty phải triển khai khá phức tạp, qua 
nhiều phép toán trung gian và các vòng lặp. Do đó, nếu so sánh theo tính 
đơn giản khi cài đặt, tốc độ truy xuất dữ liệu và thời gian trả lời truy vấn 
thì thuật toán Haversine lại là lựa chọn tốt hơn. Thuật toán Haversine sử 
dụng ít phép tính cũng như các toán tử vào ra hơn thuật toán Vincenty rất 
nhiều. 
Ö Như vậy, hai thuật toán đề cập trên đây đều có những ưu điểm và nhược 
điểm nhất định, tùy vào mục đích sử dụng và yêu cầu đối vớp phép toán mà 
có thể áp dụng loại thuật toán phù hợp. 
Chú thích 
[1] Quá trình điều hướng: Là tập hợp các học thuyết trên lý luận cũng như các ứng 
dụng thực tiễn sử dụng trong tiến trình lập kế hoạch, theo dõi và điều khiển các 
phương tiện lớn trong ngành hàng hải, hàng không di chuyển trên bề mặt trái đất. 
[2] Great-circle distance: (Theo wikipedia) Là khoảng cách ngắn nhất giữa hai điểm 
bất kì trên bề mặt khối cầu tính dọc theo một hướng đi trên bề mặt khối cầu (nghĩa là 
đo đường đi vòng cung trên bề mặt trái ngược với khoảng cách tính theo đường 
thẳng nối hai điểm đó qua bên trong khối cầu). 
Tham khảo thêm tại:  
[3] Spherical strigonometry - lượng giác cầu: Là một thành phần trong nghành hình 
học khối cầu ứng dụng trong việc xử lý các đa giác – đặc biệt với tam giác - trên bề 
mặt cầu và giải thích mối liên quan giữa các góc tương ứng. Đây là một công cụ 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
91
quan trọng dùng tính toán trong ngành thiên văn học, bề mặt trái đất, điều hướng quỹ 
đạo và không gian) 
C. KẾT LUẬN 
1. Những kết quả đạt được 
Luận văn trên đây đã trình bày tổng quan các khái niệm từ cơ bản về 
CSDL không gian, các toán tử, đến các kỹ thuật quan trọng và phức tạp trả lời 
cho bài toán tính toán gần đúng đối với các truy vấn liên quan đến khoảng 
cách. Đề tài đã nghiên cứu và trình bày một cách khoa học các kiểu truy vấn 
tiêu biểu về khoảng cách trong không gian địa lý, thuật toán R-tree dưới dạng 
một cấu trúc đánh chỉ mục động trong tìm kiếm không gian và các ứng dụng 
nổi bật liên quan. 
Ngoài ra, đề tài đã thực hiện nghiên cứu các thuật toán tính toán khoảng 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
92
cách Haversine & Vincenty và ứng dụng thử nghiệm trong một số truy vấn 
trên không gian địa lý, đánh giá kết quả, độ chính xác sai số trong từng thuật 
toán và rút ra kết luận về hiệu năng thực thi đối với hệ thống xử lý truy vấn. 
Dựa vào các đánh giá này đề tài hệ thống lại các vấn đề về tính toán xấp xỉ 
khoảng cách trong truy vấn trên CSDL không gian, các ứng dụng mới nhất 
trong thực tế, các sản phẩm công nghệ GIS đang được sử dụng rộng rãi trên 
thị trường. 
2. Đánh giá 
Các thuật toán tính toán khoảng cách trên CSDL không gian với các đối 
tượng địa lý dựa trên bề mặt trái đất được đánh giá hiệu năng dựa trên độ 
chính xác tính toán của thuật toán so với khoảng cách chính xác đo đạc được 
bên ngoài. Do đó phải tính đến tính chất hình dạng elip dẹt của Trái đất và sự 
lồi lõm, khúc khuỷa trên bề mặt địa cầu. Như vậy để xây dựng được hàm tính 
toán với độ chính xác càng cao so với thực tế đòi hỏi độ phức tạp tính toán 
cũng như số lượng toán tử càng lớn, kéo theo đó là thời gian xử lý đòi hỏi cho 
hệ thống thực thi thuật toán càng dài. Như vậy, việc cân bằng giữa hai yếu tố 
là hiệu năng và thời gian đáp ứng của hệ thống là rất quan trọng, nó quyết 
định đến giá thành sản phẩm, mức độ hoàn thiện và giá trị sử dụng cũng như 
đáp ứng yêu cầu của người sử dụng. 
Hiện nay, với sự mở rộng của các ứng dụng GIS trong rất nhiều lĩnh vực bao 
gồm cả các chương trình quy hoạch tài nguyên, quản lý quy hoạch đô thị, hạ 
tầng cơ sở quốc gia và khu vực…, việc lựa chọn các phương tiện trợ giúp việc 
lập quyết định cũng như làm nền tảng xây dựng các mô hình ứng dụng đa 
phương tiện liên quan đến dò tìm vị trí địa lý, tính toán khoảng cách nằm 
trong mối quan hệ giữa các đối tượng không gian, luôn là yếu tố quyết định. 
Chúng ta có thể tìm thấy rất nhiều ứng dụng được xây dựng và cung cấp phục 
vụ trong quá trình triển khai từ cơ sở dữ liệu không gian đến việc xây dựng 
các bản đồ kỹ thuật số và tích hợp các phương tiện định vị với các phần mềm 
quản lý, xử lý dữ liệu không gian. 
3. Hướng phát triển 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
93
Ý tưởng khai thác thông tin về tìm đường đi, địa điểm và tính toán khoảng 
cách ngắn nhất thỏa mãn yêu cầu truy vấn trên nền tảng bản đồ số không phải 
là mới, hiện nay trên thế giới đã có nhiều tập đoàn lớn khai thác lĩnh vực này 
như Yahoo, Google, MapQuest… Ở Việt Nam cũng đã có một số công ty đầu 
tư phát triển sản phẩm trong lĩnh vực này như Dolsoft và các trang web sử 
dụng bản đồ trực tuyến trong dò tìm địa điểm, quảng cáo, quản lý tài nguyên 
như của Bộ tài nguyên và môi trường, Công ty bất động sản Basao,… 
Dữ liệu thông tin địa lý rất phong phú và ngày càng đa dạng cộng với yêu 
cầu sử dụng thông tin thật nhanh chóng và chính xác từ thị trường dẫn đến 
việc quản lý, truy xuất khối dữ liệu khổng lồ này luôn là vấn đề tiêu tốn nhiều 
thời gian và công sức nhằm tối ưu hóa quá trình xử lý của các nhà khoa học 
công nghệ. Một sản phẩm tốt và toàn diện là sản phẩm vừa xử lý được thông 
tin một cách khoa học, vừa có khả năng thực hiện các truy vấn nhanh chóng 
và chính xác. 
TÀI LIỆU THAM KHẢO 
Tài liệu tiếng Anh 
[1] [Beckmann et al. 1990] Norbert Beckmann, Hans-Peter Kriegel, Ralf 
Schneider, Bernhard Seeger - “The R*-Tree: An Efficient and Robust 
Access Method for Points and Rectangles”. SIGMOD Conference 
1990: pp 322-331. 
[2] Calculate distance, bearing and more between two Latitude/Longitude 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
94
points,  
[3] E.Miglierina, E. Molho, F. Patrone, S.H. Tijs – “An axiomatic 
approach to approximate olutions in vector optimization” - 2005/10, tr. 
3-27 
[4] Gutman A (1984) – “R-Trees: A Dynamic Index Structure For Spatial 
Searching” - Proceedings of the ACM SIGMOD Conference, pp 44-57 
[5]  
[6] Kamel I, Faloutsos C (1994) Hilbert - “R-tree: An Improved R-Tree 
Using Fractals” - Proceedings of the VLDB Conference, pp 144-155 
[7] Oliver Günther, Hans-Jörg Schek – “Advances in Spatial Databases, 
Second International Symposium” - SSD'91, Zürich, Switzerland, 
August 28-30, 1991, Proceedings Springer 1991, pp 144-160 
[8] Qingxiu Shi and Bradford G.Nickerson 
www.cs.unb.ca/html/documents/TR06-179.pdf - “Decreasing Radius 
K-Nearest Neighbor Search using Mapping-based Indexing Schemes” 
- May 17 , 2006 
[9] Ralf Hartmut Güting Fernuniversität Hagen Praktische – “Spatial 
Database Systems- Tutorial Notes” - Informatik IV D-58084 
Hagen-Germany, pp 2-41 
[10] Roger Weber, Hans-Jörg Schek, Stephen Blott – “A Quantitative 
Analysis and Performance Study for Similarity-Search Methods in 
High-Dimensional Spaces” - VLDB 1998: pp 194-205. 
[11] Rutovitz, D., 1968. Data structures for operations on digital images. 
In: Cheng, G.C., Pollock, D.K., Rosenfeld, A. (Eds.), Pictorial Pattern 
Recognition. Thompson, Washington, pp. 105-133. 
[12] Samet H (1990) The Design and Analysis of Spatial Data 
Structures. Addison-Wesley Publishing Company Inc. 
[13] Vincenty formula for distance between two Latitude/Longitude 
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách 
trong cơ sở dữ liệu không gian 
 2008 
 
95
points, Movable-type.co.uk, retrieved 29 Dec 2006. 
[14] Yannis Manolopoulos, Apostolos N. Papadopoulos and Michael 
Gr. Vassilakopoulos, Editors - “Spatial databases : technologies, 
techniques and trends” - Idea Group Publishing (an imprint of 
Idea Group Inc.) 2004, pp.147 – 168. 
[15] Yannis Theodoridis - Department of Informatics, University of 
Piraeus, GR-18534 Piraeus - “Ten Benchmark Database Queries 
for Location-based Services” - The Computer Journal, British 
Computer Society 2003, pp.713 -723. 
[16] Yasushi Sakurai, Masatoshi Yoshikawa, Shunsuke Uemura, and 
Haruhiko Kojima - "The A-tree: An Index Structure for High-
Dimensional Spaces Using Relative Approximation" - in Proc. of the 
26th International Conference on Very Large Data Bases (VLDB), pp. 
516-526. 
Tài liệu tiếng Việt 
[17] ệ_thống_thông_tin_địa_lý 
[18] 
3568 – “Cấu trúc Index động cho tìm kiếm không gian” – Trường 
ĐH Công nghệ thông tin thành phố Hồ Chí Minh. 
[19] Lê Văn Trung, Lâm Đạo Nguyên 
9f8.dir/doc.pdf - “Giải pháp cập nhật dữ liệu không gian sử dụng 
công nghệ tích hợp viễn thám và GIS” - Bộ môn Địa Tin Học, 
Trường Đại học Bách khoa, Tp. Hồ Chí Minh. 
[20] Ts Đặng Văn Đức – “Hệ thống thông tin địa lý” – Nhà XB Khoa học 
và kỹ thuật – Hà Nội, 2001. Tr.11-202. 
            Các file đính kèm theo tài liệu này:
 Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách trong cơ sở dữ liệu không gian.pdf Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách trong cơ sở dữ liệu không gian.pdf