Problem getting polygons for NY state?

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!!!

 Accepted Answer

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 Comment

I knew there must have been an easier way! Thank you very much!

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Products

Asked:

on 28 May 2014

Commented:

on 29 May 2014

Community Treasure Hunt

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

Start Hunting!