2

我有屏幕點(x,y)和經度,緯度值P1,P2,P3,P4。除此之外,我還有一個攝像頭(帶拉特,長),攝像頭的高度(1.6米(常數))和攝像頭的方向(方位,俯仰,滾轉)。我也有相機的水平視角和垂直視角:)如何近似給定點之間的距離?

現在我想爲PX(lat,long)計算我的顯示器上的估計位置(如果它可見)。 Following Problem

我該如何獲得給定PX(lat,long)的P(?,?)? (圖中的紫色點)這似乎是可能的,因爲我知道我的相機的角度,我有四個頂點。但我不知道如何解決這個問題。

我需要一個函數,基於這四個頂點,它可以翻譯(lat,long)到(screenX,screenY)。

我有一個公式,它可以將(screenX,screenY)翻譯爲(lat,long),但是我無法逆轉這個公式。因此,如果需要除頂點以外的其他點,我可以計算它們(但我不能簡單地使用此公式計算每個像素在我的屏幕中......這將是每100毫秒100萬次方法調用......)

+0

相機與頂點的關係是什麼?頂點是否描述屏幕? – dabhaid

+0

嘿。是的,頂點描述了屏幕。矩形P1-P2-P3-P4是我相機的整個視口。 – Frame91

回答

1

所以我可能在你的其他線程的評論中回答了這個問題,但最簡單的方法是: 忽略屏幕邊緣的GPS座標 - 通常將所有內容都轉換爲以相機爲原點的座標空間,並且確定其他物體的位置,獲得GPS座標之間的相對距離,使用一種在短距離內調節良好的方法,如Haversine公式

獲取投影中心與所需物體之間的相對方位顯示。

您可以確定軸的視角。您可以確定您的虛擬物體與投影中心(相機指向的方向)之間的相對方位。你知道你的屏幕分辨率。

如果Alpha是您的視角的一半(對於給定的角度),並且Beta是投影中心與您想要在屏幕上查找的對象之間的相對方位,則屏幕上的點大致由

給出

譚(試用版)/棕褐色(阿爾法)*或

顯然,你需要添加邏輯來抓住你的屏幕外的預測,什麼是左的右(以半屏的像素在軸數)的投影中心,如果有東西在你身後(投影本身不考慮z距離)。