Problem getting polygons for NY state?

1 visualización (últimos 30 días)
Amato
Amato el 28 de Mayo de 2014
Comentada: Amato el 29 de Mayo de 2014
I have an image of a CONUS map I made via geoshow:
ax = usamap('conus');
states = shaperead('usastatelo', 'UseGeoCoords', true,'Selector',...
{@(name) ~any(strcmp(name,{'Alaska','Hawaii'})), 'Name'});
faceColors = makesymbolspec('Polygon',{'INDEX', [1 numel(states)],...
'FaceColor',repmat([114 132 153]/255,numel(states),1)});
gs = geoshow(ax, states, 'DisplayType', 'polygon','SymbolSpec', faceColors);
I am replacing the colors of individual states and exporting these states' vector boundaries so I can make each a "clickable" region on a website (via an image-map). This works fine for almost all the states. For example,
gs = geoshow(ax,'Utah')
x=get(get(gs,'Children'),'Xdata');
y=get(get(gs,'Children'),'Ydata');
If I do plot(x,y) I get a nice image of the outline of Utah. However, for some reason this isn't working for New York. Here x and y are 2-dimension arrays, size = (3,298), and the points are not in a logical order; they criss-cross the state and do not make a nice outline.
Anyone here know why NY state is different, and how to reorder the x and y arrays to make a nice polygon?
Thanks!!!

Respuesta aceptada

Sara
Sara el 29 de Mayo de 2014
The second part of the code didn't work for me, so I replaced it with this and I get a nice contour:
k = struct2cell(states);
names = k(5,:);
index = find(strcmp(names,'New York')==1);
x = states(index).Lon;
y = states(index).Lat;
figure
plot(x,y)
  1 comentario
Amato
Amato el 29 de Mayo de 2014
I knew there must have been an easier way! Thank you very much!

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by