% :::::::::::::::::::::::::::::::::::::: Mercator Projection  :::::::::::::::::::::::::.
close all, clear, clf;
CoLoR = [0.6 0.6 0.55];
set(gcf,'color',CoLoR );
disp(['°°°°°°°°°°°°° S T A R T °°°°°°°°°°°° ' ,date, ' °°°°°°°°°°°°°°'])
% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
% >> We create some locations:
% ::: Chemnitz : lat = 50.50;  lon = 12.55
Chem = [50.5 12.55];
% >> GPS positions (latitude,longitude) of some markers
data = [
    -22.976730, - 43.195080 ;
     55.756950,   37.614975 ;
     33.605381, -  7.631940 ;
     35.670479,  139.740921 ;
     51.506325, -  0.127144 ;
     40.714550, - 74.007124 ;
    -33.869629,  151.206955 ;
    -26.204944,   28.040035 ;
     37.777125, -122.419644 ;
     30.083740,   31.255360 ;
      6.439180,    3.423480
      Chem(1),     Chem(2)];
labels = { 'Rio de Janeiro'
               'Moscow'
               'Casablanca'
               'Tokyo'
               'London'
               'New York'
               'Sydney'
               'Johannesburg'
               'San Francisco'
               'Cairo'
               'Lagos'
               'Chem'};
% >> Next we load a map from Wikipedia, world map in Mercator projection
C = 'MercatorCoastLines.jpg';
% :::::::::::::::::::::::::::::::::
imgC = imread(C);                                     % einlesen : Mercator = 700x553
[imgHc,imgWc,kc] = size(imgC);      
% ::::::::::::::::::::::::::::::::
imgHc
imgWc
% ::::::: Mercator projection
[x,y] = mercatorProjection(data(:,2), data(:,1), imgWc, imgHc);
image(imgC), 
title('\bf Map size : 700x553', 'Fontsize', 12);
hold on
% :::::: overlay plot with markers
plot(x,y, 'ro', 'MarkerSize',6, 'LineWidth',2);
text(x, y, labels, 'Color','w', 'VerticalAlign','bottom', 'HorizontalAlign','right');
disp('====================')
% ::::::::::::::::::::::Uwe's + Jens Pönisch's Weg  TU Chemnitz:::::::::::::::
% :::::::::::::: sample Geo - Cities :  some Lat & Lon- Angles  ::::::::::::.
[data; Chem];
% :::::::::::::::: values  in ''Radians''  (Bogenmaß) :::::::
Radi = pi/180* [ data ];
az = Radi(: , 1);                    % > Azimuth
el  = Radi(: , 2);                    % > Elevation
% :::::::::::::::::::::::::::: transforming :::::::::::::::.
xx = az*imgWc;
yy = log(tan(pi/4+el/2))*imgHc;
% :::::::::::::::::::::::::::::::::::::::
figure
image(imgC), 
hold on
% :::::::::::: overlay plot with markers ::::::::::::::
plot(xx,yy, 'go', 'MarkerSize',6, 'LineWidth',2);
text(xx,yy, labels, 'Color','w', 'VerticalAlign','bottom', 'HorizontalAlign','right');


