I am able to plot a map and caption a specific point:
library(maps)
map("state")
text(-80.83,35.19,"Charlotte",cex=.6)
I can also plot a circle centered around that point:
symbols(-80.83,35.19,circles=2, add=TRUE)
However, I would like to control the size of the circle. In particular, I want to draw a circle with a radius of 100 mile around multiple locations contained in a data.frame, matrix, or list.
You can write a function to customize how you want the circle to look. For example:
Then if you had a set of coordinates in a data frame:
You can start with some initial plot (map, or empty plot, etc)
Then call the plotting function over your list of coordinates:
The proposition of Gary is well adapted for plane maps, but can not be applied to maps generated by the "maps" package because it does not take care of the projection used to draw the map. Applied strictly as this, it results in drawing of an elipse (see below), because the unit of the circle radius is degrees, but not kilometers or miles. But degrees in latitude and longitude do not correspond to the same physical distance. To draw arround a point a circle, or something that is close to a circle, whose radius is a contant distance in miles or kilometers, you need to compute the corrected coordinates regarding to the projection. Taking your function and adapting it regarding to Chris Veness explanations on http://www.movable-type.co.uk, your function became :
Result in image (sorry my "reputation" do not allow me to post images ;-)
I hope this helps. Grégoire