W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
earthdistance
模塊提供兩種不同的方法來計算地球表面的大圓距離。 第一種要介紹的依賴于cube
模塊。第二種基于內(nèi)建的point
數(shù)據(jù)類型,為座標使用精度和緯度。
在這個模塊中,地球被假定為完美的球型(如果這對你不夠精確,你可能希望去看看PostGIS項目)。
cube
模塊必須在earthdistance
之前被安裝。 (盡管你可以使用CREATE EXTENSION
的CASCADE
選項在一個命令中同時安裝)。
強烈建議將 earthdistance
和cube
安裝在同一模式中,并且該模式的 CREATE 特權(quán)尚未授予且不會授予任何不受信任的用戶。 否則,如果earthdistance
的模式包含由敵對用戶定義的對象,則存在安裝時的安全隱患。 此外,在安裝后使用earthdistance
的函數(shù)時,整個搜索路徑應僅包含受信任的架構(gòu)。
數(shù)據(jù)被存儲在立方體中,立方體的點(所有的角都一樣)使用 3 個座標表示到地球中心的 x、y 和 z 距離。提供了一個cube
之上的域earth
,這包括檢查值符合這些限制并且合理地接近于地球的真實表面的約束。
地球的半徑獲得自earth()
函數(shù)。其單位是米。但是通過改變這一個函數(shù)你能夠把該模塊改為使用某些其他單位,或者使用一種你認為更合適的不同半徑值。
這個包也有在天文數(shù)據(jù)庫中的應用。天文學家可能想要改變earth()
來返回一個180/pi()
的半徑,這樣距離就會是度數(shù)。
函數(shù)也被提供來支持經(jīng)緯度輸入(以度數(shù))、經(jīng)緯度輸出、計算兩點間的大圓距離以及容易地指定一個可用于索引搜索的邊界框。
所提供的函數(shù)在表 F.5中描述。
表 F.5. 基于立方體的地球距離函數(shù)
這個模塊的第二部分依賴于將地球位置表示為類型point
的值,其中第一部分被用來表示經(jīng)度數(shù),第二部分被用來表示緯度數(shù)。點被取做 (longitude, latitude) 并且不能反過來,因為經(jīng)度更接近直觀上的 x 軸,而緯度則接近 y 軸。
如表 F.6所示,這一部分只提供了一個單一操作符。
表 F.6. 基于點的地球距離操作符
操作符 描述 |
---|
計算地球表面上兩個點之間以法定英里計算的距離。 |
注意和這個模塊的基于cube
的部分不同,這里的單位是被硬編碼的:改變earth()
函數(shù)將不會影響這個操作符的結(jié)果。
經(jīng)度/緯度表示的一個缺點是你需要小心靠近兩極和靠近經(jīng)度正負 180 度處的邊界情況。基于cube
的表示可以避免這些不連續(xù)性。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: