Hi. There is a way to add a legend that contains just the text you would like to display (map with legend attached) ... NOTE: revised version eliminates data step that separates the projected data set into the MAP and ANNOTATE data sets and uses WHERE statements in subsequent steps to use the correct portion of the projected data set Data Position; Input @1 City $20. @30 y @42 x; x=atan(1)/45 * x; y=atan(1)/45 * y; Nr=_N_; Datalines; New York 40.714352 74.0059731 Ann Arbor 42.2808256 83.7430378 Santiago de Compostela 42.8782132 8.5448445 Dalian 38.914003 -121.614682 ; * create a macro variable with text to be used in a LEGEND statement; proc sql noprint; select catt('j=l "',nr,': ',city,'"') into :cities separated by ' ' from position; quit; * combine positions and world map (no Antarctica); Data combo; Set position maps.world (Drop=x y Rename=(long=x lat=y) where=(cont ne 97)); run; Proc GProject Data=Combo Out=Proj Project=Gall; ID Cont ID; Run; Data Anno; Retain xsys ysys '2' hsys '3' function 'label' style 'calibri' size 2.5 color 'steel' when 'a'; Set proj; where ^missing(city); text=cat(nr); run; goptions reset=all ftext='calibri' htext=2.5 gunit=pct; * use the macro variable in the LEGEND statement; legend1 origin=(3,20)pct mode=share value=none shape=bar(.00001,.00001)pct label=(&cities); Pattern1 v=ms r=77 c=PALG; Title1 'MAP WITH MODIFIED LEGEND' ls=2; Proc GMap Data=proj Map=proj; where missing(city); ID Cont ID; Choro ID / Anno=Anno COutLine=white legend=legend1 statistic=first; Run; Quit;
... View more