Участок гео-локации на карте мира с Matlab

Я пытаюсь отметить несколько тысяч гео-местоположений на карте мира с помощью matlab. У меня есть широта и долгота этих мест. Есть ли хороший способ сделать это? Спасибо.

3 ответов


вот пример, который не требует никаких инструментов.

Сначала мы создаем функцию, которая преобразует местоположения longitute / latitude с помощью Меркатора проекции.

function [x,y] = mercatorProjection(lon, lat, width, height)
    x = mod((lon+180)*width/360, width) ;
    y = height/2 - log(tan((lat+90)*pi/360))*width/(2*pi);
end

мы создаем некоторые адресам:

% 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
];
labels = {
    'Rio de Janeiro'
    'Moscow'
    'Casablanca'
    'Tokyo'
    'London'
    'New York'
    'Sydney'
    'Johannesburg'
    'San Francisco'
    'Cairo'
    'Lagos'
};

Далее мы загружаем карты от Википедия, применить проекцию и наложить маркеры:

% world map in Mercator projection
fname = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Mercator-projection.jpg/773px-Mercator-projection.jpg';
img = imread(fname);
[imgH,imgW,~] = size(img);

% Mercator projection
[x,y] = mercatorProjection(data(:,2), data(:,1), imgW, imgH);

% plot markers on map
imshow(img, 'InitialMag',100, 'Border','tight'), hold on
plot(x,y, 'bo', 'MarkerSize',10, 'LineWidth',3)
text(x, y, labels, 'Color','w', 'VerticalAlign','bottom', 'HorizontalAlign','right')
hold off

output


отличный способ построить мир!

вам просто нужно изменить следующее:

imshow(I, 'InitialMag',100, 'Border','tight'), hold on

на

imshow(img, 'InitialMag',100, 'Border','tight'), hold on

ответ Амро сработал для меня, но мне пришлось внести некоторые изменения.

Я использую Matlab 7.9 и imshow является частью панели инструментов обработки изображений. Для того, чтобы показать карту без использования imshow