Create the Annotate data set CITIES from the MAPS.USCITY data set. The unprojected LONG and LAT variable values are converted to radians and substituted for the projected X and Y variable values. LONG and LAT are converted by multiplying them by the arccosine of -1 and dividing that amount by 180. The value of STATE is modified for each label to insure that it is unique.
data cities;
set maps.uscity(keep=lat long city state);
length function style color $ 8
position $ 1 text $ 20;
retain function "label" xsys ysys "2"
hsys "1" when "a";
if (state=45 and city="Charleston") or
(state=25 and city="Boston") or
(state=23 and city="Bangor");
state+100; color="black"; size=8; text="V";
position="5";
style="marker"; x=long*arcos(-1)/180;
y=lat*arcos(-1)/180; output;
state+1; color="black"; size=5;
text=" "||city;
position="6"; style="swissb"; output;
run;