我一直在寻找经度和纬度的转换,并找到了我目前正在使用的这个算法,并且不确定这是否是正确的算法。另外我如何使用工具提示在地图图片上绘制特定的坐标。我尝试覆盖JPanel内的paintComponent方法,但我需要标记图片作为标签,以便我可以正确使用JTooltip。以下是我正在使用的算法。请让我知道它的权利,以及如何将另一张图片放在主图片的顶部。与使用JLabel一样,我使用setBounds方法来设置位置,但dosent正常工作时给出了要放置的点的列表。用于将longititude和lattitude转换为x和y坐标的Meractor投影
公共点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);
}