2013-09-29 55 views
0

如果我計算出X和Y軸的經度和緯度,像這樣:繪圖緯度和經度篩選

private static final int EARTH_RADIUS = 6371; 
private static final double FOCAL_LENGTH = 500; 

        latitude = latitude * Math.PI/180; 
        longitude = longitude * Math.PI/180; 

        double x = EARTH_RADIUS * Math.sin(latitude) * Math.cos(longitude); 
        double y = EARTH_RADIUS * Math.sin(latitude) * Math.sin(longitude); 
        double z = EARTH_RADIUS * Math.cos(latitude); 

        double projectedX = x * FOCAL_LENGTH/(FOCAL_LENGTH + z); 
        double projectedY = y * FOCAL_LENGTH/(FOCAL_LENGTH + z); 

我如何能確保在X和Y點在屏幕內畫?也就是說,屏幕代表了世界的二維視圖,這樣你將永遠無法從屏幕上劃出一個點嗎?

緯度和經度值範圍爲-90〜90 -180到180 ..

我不想使用谷歌服務 - 無MapView類或任何谷歌地圖相關...

任何幫助,將不勝感激!

回答

0

獲取您的設備寬度和高度,並將其與緯度和經度範圍分開。

對於實例中,設備寬度是300米像素和經度的範圍從-180到180。這意味着300分與360

+0

這不起作用...測試它與點仍然方式在屏幕上。 。 – BigBug

+0

也許你正在獲得0值的設備高度。查看答案,瞭解如何獲得寬度。 http://stackoverflow.com/a/14593023/1799322 – edisonthk

+0

嗯不,我得到724 – BigBug