How to label feature of shape file when calling it by geoshow and how to make multiple maps in single file
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Muhammad Usman Saleem
el 25 de Jul. de 2015
Comentada: Muhammad Usman Saleem
el 30 de Jul. de 2015
I am trying to make color map from text file data.I am using geoshow to call shape file of the region to set back ground of the color map.My shape file is the country. I have digitized its districts as polygons. In the attributes of the shape file i named these districts under "NAME_1" field.I am using that codes to make a color map
fid = fopen('1000_2000.txt');
C = textscan(fid, '%f %f %f')
fclose(fid);
f = {'lat', 'long', 'temp'}
S = cell2struct(C,f,2);
N = 100;
[Xi, Yi] = meshgrid(linspace(60,80,N),linspace(20,40,N));
Ci = griddata(S.long, S.lat, S.temp, Xi, Yi);
f = figure; set(f, 'Renderer', 'painters')
colormap default
h = geoshow(Yi,Xi,Ci,'DisplayType','surface');
set(h,'ZData', zeros(size(get(h,'XData'))));
p = geoshow('PAK_adm1.shp', 'DisplayType','polygon','FaceColor','none','EdgeColor','w');
xlim([60.5 78.5]);
ylim([22.5 38.5]);
xlabel('Longitude');
ylabel('Latitude');
set(gca,'CLim',[0,3000])
colorbar
I am getting output as
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/147375/image.jpeg)
I want such kind of label features( want to show label in the attribute of shape file with field name NAME_1)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/147377/image.jpeg)
Any idea how to correct these code to label features on my color maps. Thanks in advance for this kind assistance
0 comentarios
Respuesta aceptada
Usha Duddu
el 29 de Jul. de 2015
Hi Muhammad
I understand that you are trying to display labels on your color map created using geoshow function. In order to do this you can use text function. The 'X' and 'Y' values in the 'text' function will correspond to the latitude and longitude of the districts.
For example- If you want to label Baluchistan, you can use text(66,28,'Baluchistan') where 66 corresponds to X coordinate and 28 corresponds to Y coordinate.
Here is a simplified example code snippet for your reference-
>>a=axes;
>>S = shaperead('landareas','UseGeoCoords',true);
>>geoshow([S.Lat], [S.Lon],'Color','black');
>>text(-125,50,'America')
I hope this helps.
Usha
2 comentarios
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!