Estoy tratando de marcar algunos miles de geo-ubicaciones en el mapa del mundo con matlab. Tengo las latitudes y longitudes de esos lugares. ¿Hay alguna buena manera de hacer esto? Gracias.Trazar geo-ubicaciones en Worldmap con Matlab
Respuesta
Aquí hay un ejemplo que no requiere ninguna caja de herramientas.
Primero creamos una función que convierta las ubicaciones de longitute/latitude usando Mercator projection.
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
Creamos algunas localidades:
% 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'
};
continuación cargar un mapa de Wikipedia, aplique la proyección y la superposición de los marcadores:
% 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
Gran manera de trama el mundo!
Sólo hay que cambiar lo siguiente:
imshow(I, 'InitialMag',100, 'Border','tight'), hold on
en
imshow(img, 'InitialMag',100, 'Border','tight'), hold on
Creo que esta no es una respuesta, debería ser una edición de la respuesta de @Amro. –
respuesta de Amro trabajó para mí, pero tenía que hacer algunos cambios.
Estoy usando Matlab 7.9 y imshow es parte de Image Processing Toolbox. Con el fin de mostrar el mapa sin utilizar la función imshow, que sustituye esta línea:
imshow(img, 'InitialMag',100, 'Border','tight')
Con éste:
image(img)
y funcionó.
- 1. Trazar círculos con valores alfa en MATLAB
- 2. Trazar puntos 3D en Matlab
- 3. Matlab: cómo trazar un texto en 3D
- 4. Matlab elige el color aleatorio para trazar
- 5. Cómo trazar la cuadrícula 3D (cubo) en Matlab
- 6. ¿Cómo utilizar una cadena como datos para trazar en Matlab?
- 7. Ciclo sobre los colores al trazar en MATLAB
- 8. Usando Matlab Google-Earth Toolbox para trazar latitud y longitud
- 9. Cómo trazar en mi GUI
- 10. Matlab Argumento con Personalizar color
- 11. Usando errorbar() con semilogía() en MATLAB?
- 12. Trazar Elipse con matplotlib.pyplot (Python)
- 13. Trazar comportamientos propios con matplotlib
- 14. Cómo trazar archivos con numpy?
- 15. trazar un círculo con pyplot
- 16. Trazar un plano basado en un vector normal y un punto en Matlab o matplotlib
- 17. Trazado 'Hola' en MATLAB
- 18. MATLAB - Trazar conjuntos de datos múltiples en un diagrama de dispersión
- 19. Trazar histograma en Python
- 20. Combinar imagen y trazar con Python Matplotlib
- 21. Cómo trazar una línea con Cocos2d-iPhone
- 22. Cómo trazar hist con escala de registro
- 23. Datos externos para trazar con jQuery Flot
- 24. Cómo trazar vectores matemáticos 2D con matplotlib?
- 25. Matlab: cómo trazar texto 3D (no 2D como el texto de la función)
- 26. Obtener longitud Laltitude de un punto en mi Worldmap en Mollweide proyección
- 27. Multithreading con Matlab
- 28. ¿Trazar el código en Ruby?
- 29. Mostrar valores en R Trazar
- 30. Cómo extraer y trazar solo los picos mínimos y máximos de una matriz, -análisis de gráficos- Con Matlab o excel
¡Guau! Eso es genial. ¡Gracias Amro por una respuesta tan detallada! – Geni