如果我像这样从纬度和经度计算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点在屏幕上绘制?即,屏幕是否代表了世界的2D视图,这样您将永远无法在屏幕上画出一个点?

纬度和经度是-90到90和-180到180之间的值。

我不想使用Google服务-没有MapView或与Google地图相关的任何信息...

任何帮助,将不胜感激!

最佳答案

获取设备的宽度和高度,然后将其除以纬度和经度范围。

例如,设备宽度为300px,经度范围为-180至180。这意味着300除以360。

09-10 07:53
查看更多