我一直在寻找经度和纬度的转换,发现了我目前正在使用的这个算法,但不确定这是否是正确的算法。另外,我如何使用工具提示在地图图片上绘制特定坐标。我尝试覆盖 JPanel 中的 paintComponent 方法,但我需要将标签图片作为标签,以便我可以正确使用 JTooltip。以下是我目前使用的算法。请让我知道它是否正确以及如何将另一张图片放在主图片的顶部。与使用 JLabel 一样,我使用 setBounds 方法来设置位置,但在给出要放置的点列表的情况下,dosent 可以正常工作。
公共点getXY(双经,双纬){
List<Integer> list = new ArrayList<Integer>();
double mapWidth = 2000;
double mapHeight = 1000;
// get x value
double x = (longitude + 180) * (mapWidth / 360);
int x1 = (int) Math.round(x);
list.add(x1);
// convert from degrees to radians
double latRad = latitude * Math.PI / 180;
// get y value
double mercN = Math.log(Math.tan((Math.PI / 4) + (latRad / 2)));
double y = (mapHeight / 2) - (mapWidth * mercN / (2 * Math.PI));
int y1 = (int) Math.round(y);
list.add(y1);
return new Point(x1, y1);
}