Drawing a circle of a given radius on a map using Matlab's built-in functions is surprisingly unintuitive. So when there's some sort of outbreak or nuclear threat emanating from a city and you need to make a fear-mongering map on the double, simply type circlem(lat,lon,radius) to instantly depict the imminent danger facing everyone inside the circle.
h = circlem(...)
[h,circlelat,circlelon] = circlem(...)
circlem(lat,lon,radius) draws a circle or circles of radius or radii given by radius centered at lat, lon, where radius, lat, and lon may be any combination of scalars, vectors, or MxN array. All non- scalar inputs must have matching dimensions.
circlem(...,'units',LengthUnit) specifies a length unit of input radius. See validateLengthUnit for valid units. Default unit is kilometers.
circlem(...,'PatchProperty',PatchValue) specifies patch properties such as edgecolor, facecolor, facealpha, linewidth, etc.
h = circlem(...) returns the patch handle of plotted circle(s).
[h,circlelat,circlelon] = circlem(...) also returns arrays of latitudes and longitudes corresponding to the outline of each circle drawn. Each "circle" is in actuality a polygon made of 100 lat/lon pairs.
So much easier than MATLAB's built in functions, thanks!
Stephen: This function plots circles on *maps* in georeferenced (lat,lon) coordinates. The inbuilt rectangle function does not properly place circles in geographic coordinates. Further, the inbuilt rectangle function does not have the capability to calculate the lat,lon coordinates of a circle of a given radius. The circlem function makes it easy for users to enter center lat,lon location(s) and radius or radii in kilometers or miles, and circles are plotted properly.
MATLAB also has inbuilt circle and ellipse drawing using the |rectangle| function:
Expanded function header/help.
link to related FEX submissions