%let name=sugimap_build; /* Size (proportions) of your map gif file */ %let xsize=633; %let ysize=1003; /* %let xsize=694; %let ysize=1024; */ /* Size of your output page */ goptions xpixels=694 ypixels=1024; /* Size of invisible annotated pie/dot's on the grid */ %let piesize=1; libname here '.'; data here.sugi_map; idnum=1; x=0; y=0; output; x=symget('xsize'); y=0; output; x=symget('xsize'); y=symget('ysize'); output; x=0; y=symget('ysize'); output; run; /* Now, create an annotate datasets containing a "grid of dots" that you can overlay on top of the map, and when you mouse over the dots you'll see the x/y coordinates of that area of the map... */ data circles; length imgpath $ 100 function $ 8 style color $ 12 html $ 1000 text $ 80; xsys='2'; ysys='2'; hsys='3'; when='a'; function='move'; x=0; y=0; output; function='image'; x=&xsize; y=&ysize; imgpath='sugi30_floorplan.jpg'; style='fit'; output; /* now, do the grid of pies */ function='pie'; style='empty'; color='black'; rotate=360; position='5'; size=&piesize; do x=0 to &xsize by 20; do y=0 to &ysize by 20; html='title="X='||trim(left(x))||' Y='||trim(left(y))||'"'; output; end; end; run; data sugi_stations; input x y station $ 11-48; datalines; 180 700 Analytics 200 640 Tech Support 140 610 Solutions 160 490 Foundation Technologies 150 370 ETL 180 300 BI Platform Integration 300 320 BI Pavillion 400 290 Info Center 400 320 Volunteer Gifts 360 260 Survey 460 340 SAS Info Kiosk 500 280 Alliance Cafe 520 360 Ed. Proc. 480 400 SAS Education Center 520 340 Cert. Training 500 440 E-Learning 420 460 Online Doc 420 540 SAS Press 460 560 SAS Publishing Center 520 540 Company Store 530 570 Consulting 500 560 SAS.com 520 590 Customer Support 460 600 SAS Support Center 440 620 SAS Info Kiosk 2 520 650 Sun 520 680 Intel 520 720 IBM 510 750 Comsys 490 750 ESRI 450 750 HP 480 700 Alliance Pavillion 500 700 Smooothie Station 280 620 Meeting Room 280 520 Meeting Room (2) 220 500 Host Platforms 320 480 SAS Info Kiosk 3 360 325 Web Report Studio (1,2) 325 320 Information Map Studio (3) 305 320 Information Delivery Portal (4) 285 320 Add-In for Microsoft Office (5) 260 320 Enterprise Guide (6) 220 330 OLAP Viewers (8) 270 260 Testing Automation Strategies (9,10) 245 260 Usability/Accessibility (11) 220 280 AppDev Studio (13) 190 280 JAVA and App Server Support (14) 180 280 Integration Technologies (15) 165 300 SAS/IntrNet (16) 160 310 Security (17) 155 340 SMC (Management Console) (18) 140 360 ETL Studio (19,20) 140 400 OLAP Server (21) 200 380 SPDS (Scalable Perf Data Serv) (22) 200 400 Data Quality Solution (23) 200 430 SAS/Access (25) 200 460 Migration (26) 200 480 Windows (27) 200 490 z/OS (28) 200 510 UNIX/Open VMS (29) 200 530 Installation and Config (30) 140 420 SAS/CONNECT (31) 140 440 DATA Step, SQL, SUMMARY, SORT (33) 140 460 Base SAS (34) 140 480 ODS - Output Delivery System (35) 140 500 XML Mapper (36) 140 520 SAS/GRAPH using ODS (38) 140 540 Mapping Technologies (39) 140 560 BI Graph Components (40) 140 590 Customer Intelligence (41) 140 610 Financial Intelligence (42) 140 630 Performance Management (43) 140 640 Life Sciences/Pharma (44) 200 570 Mainframe Systems (45) 200 590 Unix Systems (46) 200 620 Windows and AMO (47) 210 640 Business Applications (48) 210 650 SAS/GRAPH (49) 220 660 Base SAS ODS (50) 220 670 SAS/STAT (51) 230 680 SAS/IntrNet (52) 140 670 ODS Statistical Graphics (53) 150 690 SAS/STAT and QC (54) 160 700 ETS and Forecasting (55) 180 720 SAS/OR, Optimization, Scheduling (56) 190 730 Data Mining (57) 200 730 Text Mining (58) 240 740 Quality Solutions (60) 260 740 Web Analytics (61) 280 750 JMP (62,63) 260 690 IT Management Solutions (64) 270 700 Performance in DoD (65) 280 700 BI in Fed. Civilian Sector (66) 290 700 Revenue Max. at OH DoNR (67) 420 820 Mixer Party ; run; /* During this last step, save it to permanent library (here.) */ data here.sugi_stations; set sugi_stations; length mydrill $ 500; length function $ 8 style color $ 12 html $ 1000 text $ 80; /* Do a search on the sas website for this station name */ html= 'title='||quote( trim(left(station))|| ' ')|| ' '|| 'href='||quote( 'http://search.sas.com/mainquery.html?qt='||trim(left(station))||' '); /* 'href='||quote( 'http://search.sas.com/mainquery.html?qt='||trim(left(station))||'qs=-url%3A%2Foffices%2F+-url%3A%2Fservice%2Ftechsup%2Funotes%2F+-url%3A%2F%2Fftp.sas.com%2Ftechsup&nh=40&qc=extsas&ws=1&qm=1&st=1&lk=1&rf=0&oq=&rq=0'||' '); */ when='a'; xsys='2'; ysys='2'; hsys='3'; position='5'; /* a star character from the sas/graph 'marker' software font */ color='red'; function='label'; style='marker'; text='V'; size=2.5; output; style='markere'; color='gray'; output; /* And, a label for this marker */ color='red'; position='c'; angle=45; size=2; function='label'; style='swissb'; text=' '||trim(left(station)); output; run; data sugi_names; input x y station $ 11-48 name $ 50-80; datalines; 180 700 Analytics Bahler, Caroline 500 700 Smooothie Station Allison, Robert 180 300 BI Platform Integration Bailey, David 180 300 BI Platform Integration DelGobbo, Vince 270 260 Testing Automation Strategies (9,10) Allison, Robert ; run; /* 360 325 Web Report Studio (1,2) 325 320 Information Map Studio (3) 305 320 Information Delivery Portal (4) 285 320 Add-In for Microsoft Office (5) 260 320 Enterprise Guide (6) 220 330 OLAP Viewers (8) 270 260 Testing Automation Strategies (9,10) 245 260 Usability/Accessibility (11) 220 280 AppDev Studio (13) 190 280 JAVA and App Server Support (14) 180 280 Integration Technologies (15) 165 300 SAS/IntrNet (16) 160 310 Security (17) 155 340 SMC (Management Console) (18) 140 360 ETL Studio (19,20) 140 400 OLAP Server (21) 200 380 SPDS (Scalable Perf Data Serv) (22) 200 400 Data Quality Solution (23) 200 430 SAS/Access (25) 200 460 Migration (26) 200 480 Windows (27) 200 490 z/OS (28) 200 510 UNIX/Open VMS (29) 200 530 Installation and Config (30) 140 420 SAS/CONNECT (31) 140 440 DATA Step, SQL, SUMMARY, SORT (33) 140 480 Base SAS (34,35) 140 500 XML Mapper (36) 140 520 SAS/GRAPH using ODS (38) 140 540 Mapping Technologies (39) 140 560 BI Graph Components (40) 140 590 Customer Intelligence (41) 140 610 Financial Intelligence (42) 140 630 Performance Management (43) 140 640 Life Sciences/Pharma (44) 200 570 Mainframe Systems (45) 200 590 Unix Systems (46) 200 620 Windows and AMO (47) 210 640 Business Applications (48) 210 650 SAS/GRAPH (49) 220 660 Base SAS ODS (50) 220 670 STAT (51) 230 680 SAS/IntrNet (52) 140 670 ODS Statistical Graphics (53) 150 690 STAT and QC (54) 160 700 ETS and Forecasting (55) 180 720 OR, Optimization, Scheduling (56) 190 730 Data Mining (57) 200 730 Text Mining (58) 240 740 Quality Solutions (60) 260 740 Web Analytics (61) 280 750 JMP (62,63) 260 690 IT Management Solutions (64) 270 700 Performance in DoD (65) 280 700 BI in Fed. Civilian Sector (66) */ /* During this last step, save it to permanent library (here.) */ data here.sugi_names; set sugi_names; length mydrill $ 500; length function $ 8 style color $ 12 html $ 1000 text $ 80; /* Do a search on the sas website for this station name */ html= 'title='||quote( trim(left(station))|| ' ')|| ' '|| 'href='||quote( 'http://search.sas.com/mainquery.html?qt='||trim(left(station))||' '); when='a'; xsys='2'; ysys='2'; hsys='3'; position='5'; /* a star character from the sas/graph 'marker' software font */ color='red'; function='label'; style='marker'; text='V'; size=2.5; output; style='markere'; color='gray'; output; /* And, a label for this marker */ color='red'; position='c'; angle=45; size=2; function='label'; style='swissb'; text=' '||trim(left(name)); output; run; /* This is the annotated image of the home depot floorplan picture */ data here.sugi_pic; length function $ 8 style color $ 12 html $ 1000; xsys='2'; ysys='2'; hsys='3'; when='a'; function='move'; x=0; y=0; output; function='image'; x=&xsize; y=&ysize; imgpath='sugi30_floorplan.jpg'; style='fit'; output; run; filename odsout '.'; GOPTIONS DEVICE=png; ODS LISTING CLOSE; ODS HTML path=odsout body="&name..htm" (title="SAS Prototype - Virtual SUGI Demo Room") style=minimal gtitle gfootnote ; goptions ftitle="arial" ftext="arial" htitle=6pct htext=3pct; goptions cback=pink; proc sql; create table interest as select * from here.sugi_stations; quit; run; title "SUGI 30 Demo Room"; footnote font='marker' color=red 'V' font="arial" color=black "= station you selected"; proc gmap data=here.sugi_map map=here.sugi_map anno=here.sugi_pic; id idnum; choro idnum / nolegend anno=interest coutline=white des="" name="&name"; run; title "Now, adding a grid of annotated circles/pies"; title2 "(mouse over the circles to see the x/y coordinates of that area)"; footnote; proc gmap data=here.sugi_map map=here.sugi_map anno=here.sugi_pic; id idnum; choro idnum / nolegend anno=circles coutline=white des="" name="&name"; run; /* Caution - This proc print overwhelms the web browser! */ /* proc print data=here.sugi_stations; run; proc print data=here.sugi_names; run; */ quit; ODS HTML CLOSE; ODS LISTING;