Extract coordinates from a geopolyshape
Show older comments
Given a geographic shape object of type geopolyshape:
us_states = readgeotable("usastatehi.shp")
montana = us_states.Shape(us_states.Name == "Montana")
class(montana)
ans =
'geopolyshape'
How could I extract a list of Lat/Lon coordinates of the given shape object (mo_lat, mo_lon)?
% montana
mo_lat = ??? % list of latitudes of Montana polygon edges
mo_lon = ??? % list of longitudes of Montana polygon edges
I know it's possible when loading data using shaperead function instead:
us_states = shaperead("usastatehi.shp")
montana = us_states(26); % 26 is Montana
mo_lat = montana.Y; % list of latitudes of Montana edges
mo_lon = montana.X; % list of longitudes of Montana edges
But I'm curious if it's possible to extract data from existing geopolyshape?
Accepted Answer
More Answers (3)
Edmund Pickering
on 25 Aug 2025
1 vote
I have found a working solution. The secret is exportShapeData. This appears to be a hidden method. Not sure why this is so.

The present version is much easier. Note that the class of us_states is a table. You can extract the column using:
us_states = readgeotable("usastatehi.shp") ;
class(us_states)
us_states.(1) % first column
us_states.LabelLat % third column
us_states.(4) % 4th column
7 Comments
Sergey Kostrukov
on 12 Oct 2022
Moved: KSSV
on 12 Oct 2022
us_states = readgeotable("usastatehi.shp") ;
plot(us_states.LabelLat,us_states.LabelLon,'.r')
What you want to extract from here?
Sergey Kostrukov
on 12 Oct 2022
Sergey Kostrukov
on 12 Oct 2022
Chad Greene
on 1 Nov 2022
I have the exact same question.
The geopolyshape documentation shows how to convert lat,lon coordinates into a geopolyshape:
but then offers no guidance on how to get the lat,lon coordinates back out of shape.
I know the coordinates are in there somewhere, I just don't know how to get them back out!
Sergey Kostrukov
on 1 Nov 2022
Chad Greene
on 2 Nov 2022
This is so frustrating. I don't understand why these new functions have been designed to prevent users from accessing the data we're trying to analyze.
Chad Greene
on 8 Nov 2022
0 votes
@Sergey Kostrukov I think I found a working solution. The m_shaperead function in M_Map can handle PolygonZ and PolyLineZ data.
1 Comment
Sergey Kostrukov
on 11 Nov 2022
Categories
Find more on Vector Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!