如何使用matlab做标注?这里有一些小技巧。
- 编写mercatorProjection.m子函数如下:
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
- 主函数如下
clc
clear
%# GPS positions (latitude,longitude) of some markers
data=[40.712700 -74.005900;
39.913900 116.392000];
labels = {
'用户A'
'用户B'
};
%# world map in Mercator projection
fname = 'picture.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, 'y.', 'MarkerSize',20, 'LineWidth',3)
text(x, y, labels, 'Color','w', 'VerticalAlign','bottom', 'HorizontalAlign','right')
line(x,y, 'LineStyle', '--', 'LineWidth', 2, 'Color', 'r');hold off
******matlab要运行程序要保证程序在工作目录下,或者打开函数当前所在目录皆可设置工作目录要具体到文件夹******