我想用matlab标记世界地图上的数千个地理位置。我有这些地点的纬度和经度。有没有什么好方法可以做到这一点?谢谢。使用Matlab绘制世界地图上的地理位置
6
A
回答
8
这是一个不需要任何工具箱的例子。
首先我们创建一个函数,使用Mercator projection转换longitute /纬度位置。
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'
};
接下来把从Wikipedia地图,应用投影和叠加的标记:
% 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
2
伟大的方式来绘制世界!
你只需要改变如下:
imshow(I, 'InitialMag',100, 'Border','tight'), hold on
到
imshow(img, 'InitialMag',100, 'Border','tight'), hold on
+2
我相信这不是一个答案,它应该是对@Amro答案的编辑。 – 2015-08-03 11:43:48
2
荷银的回答为我工作,但我不得不做一些改变。
我正在使用Matlab 7.9和imshow是图像处理工具箱的一部分。为了显示地图,而无需使用imshow功能,我换成这一行:
有了这一个:
image(img)
和它的工作。
相关问题
- 1. 在世界地图上绘制图形
- 2. 在用户的世界地图上显示地理位置
- 3. 用世界地图在世界地图上快速绘制坐标
- 4. 在世界地图上显示位置
- 5. 绘制使用底图(蟒蛇)网络/世界地图上图
- 6. 绘制各省的世界地图
- 7. ggmap:无法找到与绘图位置一起使用的世界地图
- 8. 世界地图 - 使用GGPLOT2
- 9. 在世界地图上绘制条形图
- 10. 用Google图表定位世界地图
- 11. 作为世界地图上的点绘制岛屿
- 12. 在MATLAB中生成世界地图
- 13. 绘制世界地图上分类数据
- 14. 在世界/国家地图上绘制数据
- 15. R:在世界地图上绘制分组坐标
- 16. 使用纬度在世界地图上绘制热图,在蟒蛇
- 17. Javascript世界地图
- 18. 使用RSCript将数字/数据点绘制到世界地图上
- 19. 在地图上绘制圆图Matlab
- 20. 在MATLAB中的地图上绘制点
- 21. 地理位置:在地图上绘制无数用户的教程?
- 22. 如何用d3.js在世界地图上绘制三维条形图?
- 23. 绘制世界地图[WGS84]与广泛的OpenGL
- 24. ggmap的世界地图
- 25. 如何绘制用作地图的图像上的GPS位置?
- 26. 如何防止复制世界地图
- 27. 在R中的图像地图上覆盖世界地图
- 28. 如何绘制多个地理位置?
- 29. Opengl:着色世界地图?
- 30. Google Analytics等世界地图
哇!这很酷。谢谢Amro这样一个详细的答案! – Geni 2012-07-27 16:46:29