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;