Я искал преобразование долготы и решетки и нашел этот алгоритм, который я использую в настоящее время, и не уверен, что это правильный алгоритм. Также как я рисую конкретные координаты на изображении карты с помощью всплывающей подсказки. Я попытался переопределить метод paintComponent внутри JPanel, но мне нужно, чтобы изображение тега было ярлыком, поэтому я могу правильно использовать JTooltip. Ниже приведен алгоритм, который я использую сейчас. Пожалуйста, дайте мне знать, если это правильно, а также как разместить другое изображение в верхней части основного изображения. так как с использованием JLabel я использовал метод setBounds, чтобы установить местоположение, но dosent работать правильно, учитывая список точек для размещения.Меракторная проекция для преобразования координат долготы и решетки в координаты x и y
общественной точки getXY (двойной долгота, широта Double) {
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);
}