2013-09-29 53 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