Your SlideShare is downloading. ×
0
The Argon Browser Code for ‘The Voices of Oakland’
Code Structure <ul><li><Kml> </li></ul><ul><li>Document </li></ul><ul><li>------Style </li></ul><ul><li>------ScreenOverla...
Style definition <ul><li><Style id=&quot;undecorated_style&quot;> </li></ul><ul><li><BalloonStyle> </li></ul><ul><li>  <di...
ScreenOverlay <ul><li><ScreenOverlay> </li></ul><ul><li><name>Test</name> </li></ul><ul><li><description> </li></ul><ul><l...
Screenshot of the Screen Overlay
Style (css) for ScreenOverlay <ul><li><style type=&quot;text/css&quot;> </li></ul><ul><li>Img {  </li></ul><ul><li>border-...
Style (css) for ScreenOverlay (contd.) <ul><li>top: 0px; </li></ul><ul><li>font-family:  sans-serif; </li></ul><ul><li>fon...
Javascript <ul><li>List of functions: </li></ul><ul><li>getCurrentPlacemark() </li></ul><ul><li>setCurrentPlacemark(Placem...
Javascript functions <ul><li>// Hack to launch into experience directly </li></ul><ul><li>if (/WebKit/i.test(navigator.use...
Javascript functions (contd.) <ul><li>var playState='play'; </li></ul><ul><li>var stopState='stop'; </li></ul><ul><li>var ...
<ul><li>function getNextPlacemark(PlacemarkName) </li></ul><ul><li>{ </li></ul><ul><li>var PlacemarkTemp = PlacemarkName; ...
<ul><li>else if (PlacemarkTemp==nissen) </li></ul><ul><li>{ </li></ul><ul><li>return crumley; </li></ul><ul><li>} </li></u...
<ul><li>else </li></ul><ul><li>{ </li></ul><ul><li>console.log(&quot;No next placemark found&quot;); </li></ul><ul><li>ret...
<ul><li><!-- Image and Button Manipulations ---> </li></ul><ul><li>function change_opacity(opacity, idSeed) { </li></ul><u...
<ul><li>function toggleInit() </li></ul><ul><li>{ </li></ul><ul><li>toggletoPlay('life'); </li></ul><ul><li>toggletoPlay('...
<ul><li>else if(StateParam==stopState) </li></ul><ul><li>{ </li></ul><ul><li>toggleInit(); </li></ul><ul><li>toggletoPlay(...
<ul><li>function toggletoStop(buttonID) </li></ul><ul><li>{ </li></ul><ul><li>var cId=buttonID+'Btn'; </li></ul><ul><li>va...
<ul><li>function toggletoPlay(buttonID) </li></ul><ul><li>{ </li></ul><ul><li>var cId=buttonID+'Btn'; </li></ul><ul><li>va...
<ul><li><!-- Audio Functions ---> </li></ul><ul><li>function playSound(soundId) </li></ul><ul><li>{ </li></ul><ul><li>last...
<ul><li>function nextGrave() </li></ul><ul><li>{ </li></ul><ul><li>var currPlacemark = getCurrentPlacemark(); </li></ul><u...
<ul><li>function flyTonextPlacemark(placemarkRef) </li></ul><ul><li>{ </li></ul><ul><li>var featureId=placemarkRef+&quot;_...
<ul><li><div align=&quot;center&quot; class=&quot;overlaystyle&quot; id=&quot;overlay&quot;> </li></ul><ul><li><table widt...
<ul><li><td> </li></ul><ul><li>  <a href=&quot;#&quot; class=&quot;place&quot; id=&quot;placeID&quot; name=&quot;placeID&q...
<ul><li><PhotoOverlay id=&quot;Compton_geospot&quot;> </li></ul><ul><li><name>.</name> </li></ul><ul><li><author> </li></u...
<ul><li><tilt>0</tilt> </li></ul><ul><li><altitudeMode>relativeToGround</altitudeMode> </li></ul><ul><li><Icon> </li></ul>...
<ul><li><Placemark id=&quot;Crumley&quot;> </li></ul><ul><li><name>Crumley</name> </li></ul><ul><li><description> </li></u...
Placemarks (contd.) <ul><li><link> </li></ul><ul><li><href>http://www.graffitos.org/oakland/audio/Crumley- life.mp3</href>...
Document description <ul><li><name>Oakland.kml</name> </li></ul><ul><li><Snippet>Voices of Oakland</Snippet> </li></ul><ul...
Questions? <ul><li>Contact info: </li></ul><ul><li>Nachiketas:  [email_address] </li></ul><ul><li>Sanika: smokashi6@gatech...
Upcoming SlideShare
Loading in...5
×

Argon walkthru 1-26

563

Published on

Argon for GTL

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
563
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Significance of the screenXY tag Styleurl  defined earlier.
  • Testing the entire description part in a regular browser Significance of the left and top values
  • Called from within nextGrave function Initialization of variables
  • Why are we doing this when it doesn’t work?
  • Not added rewind and pause here.
  • This is what gets called first. Explanations should ideally start out here, for the javascript. Although, as they are students with CS background, they prob won’t need detailed explanations for js.
  • [side] resolves to front, back, top, bottom, left, right Shape supported – cube
  • Important that looping and sourceState values be correct Full url needed, relative not supported yet.
  • Describe where this shows up in the latest version.
  • Transcript of "Argon walkthru 1-26"

    1. 1. The Argon Browser Code for ‘The Voices of Oakland’
    2. 2. Code Structure <ul><li><Kml> </li></ul><ul><li>Document </li></ul><ul><li>------Style </li></ul><ul><li>------ScreenOverlay </li></ul><ul><li>------------Description </li></ul><ul><li>------------------Style </li></ul><ul><li>------------------Javascript </li></ul><ul><li>------------------Div </li></ul><ul><li>------PhotoOverlay | </li></ul><ul><li>------Placemark |  4 times for 4 placemarks </li></ul><ul><li>------------Sound | </li></ul>
    3. 3. Style definition <ul><li><Style id=&quot;undecorated_style&quot;> </li></ul><ul><li><BalloonStyle> </li></ul><ul><li> <displayMode>undecorated</displayMode> <!-- kml:displayModeEnum --> </li></ul><ul><li></BalloonStyle> </li></ul><ul><li><IconStyle> </li></ul><ul><li><scale>1.1</scale> </li></ul><ul><li><Icon> </li></ul><ul><li><href>http://www.graffitos.org/harry/empty.png</href> </li></ul><ul><li></Icon> </li></ul><ul><li></IconStyle> </li></ul><ul><li></Style> </li></ul>
    4. 4. ScreenOverlay <ul><li><ScreenOverlay> </li></ul><ul><li><name>Test</name> </li></ul><ul><li><description> </li></ul><ul><li><![CDATA </li></ul><ul><li>… . | </li></ul><ul><li>… . |  html code </li></ul><ul><li>… . | </li></ul><ul><li> ]]> </li></ul><ul><li></description> </li></ul><ul><li><screenXY x=&quot;0.5&quot; y=&quot;0.22&quot; xunits=&quot;fraction&quot; yunits=&quot;fraction&quot;/> </li></ul><ul><li><styleUrl>#undecorated_style</styleUrl> </li></ul><ul><li></ScreenOverlay> </li></ul>
    5. 5. Screenshot of the Screen Overlay
    6. 6. Style (css) for ScreenOverlay <ul><li><style type=&quot;text/css&quot;> </li></ul><ul><li>Img { </li></ul><ul><li>border-style: none; </li></ul><ul><li>} </li></ul><ul><li>a:link { </li></ul><ul><li>text-decoration: none; </li></ul><ul><li>} </li></ul><ul><li>div.overlaystyle </li></ul><ul><li>{ </li></ul><ul><li>width: 320px; </li></ul><ul><li>height: 50px; </li></ul><ul><li>left: -160px; </li></ul><ul><li>...contd. </li></ul>
    7. 7. Style (css) for ScreenOverlay (contd.) <ul><li>top: 0px; </li></ul><ul><li>font-family: sans-serif; </li></ul><ul><li>font-size: 14px; </li></ul><ul><li>background-color: rgba(0, 0, 0, 0.5); </li></ul><ul><li>border-width: 2px; </li></ul><ul><li>border-color: rgba(255, 255, 255, 1.0); </li></ul><ul><li>color: rgba(255, 255, 255, 1); </li></ul><ul><li>vertical-align: top; </li></ul><ul><li>text-align: left; </li></ul><ul><li>position: absolute; </li></ul><ul><li>} </li></ul><ul><li></style> </li></ul>
    8. 8. Javascript <ul><li>List of functions: </li></ul><ul><li>getCurrentPlacemark() </li></ul><ul><li>setCurrentPlacemark(PlacemarkName) </li></ul><ul><li>getNextPlacemark(PlacemarkName) </li></ul><ul><li>change_opacity(opacity, idSeed) </li></ul><ul><li>toggleInit() </li></ul><ul><li>toggleControl(buttonParam,StateParam) </li></ul><ul><li>toggletoStop(buttonID) </li></ul><ul><li>toggletoPlay(buttonID) </li></ul><ul><li>Audio functions: playSound, stopSound, pauseSound, rewindSound </li></ul><ul><li>nextGrave() </li></ul><ul><li>function flyTonextPlacemark(placemarkRef) </li></ul>
    9. 9. Javascript functions <ul><li>// Hack to launch into experience directly </li></ul><ul><li>if (/WebKit/i.test(navigator.userAgent)) { // sniff </li></ul><ul><li>var _timer=setInterval(function() {if(/loaded|complete/.test(document.readyState)) </li></ul><ul><li>{ </li></ul><ul><li>clearInterval(_timer); </li></ul><ul><li>nextGrave(); // call the onload handler </li></ul><ul><li>} </li></ul><ul><li>}, 10); </li></ul><ul><li>} </li></ul>
    10. 10. Javascript functions (contd.) <ul><li>var playState='play'; </li></ul><ul><li>var stopState='stop'; </li></ul><ul><li>var CurrentPlacemark; </li></ul><ul><li>var lastSound=null; </li></ul><ul><li><!-- getter and setter for placemarks --> </li></ul><ul><li>function getCurrentPlacemark() </li></ul><ul><li>{ </li></ul><ul><li>var curr_placemark = CurrentPlacemark; </li></ul><ul><li>return curr_placemark; </li></ul><ul><li>} </li></ul><ul><li>function setCurrentPlacemark(PlacemarkName) </li></ul><ul><li>{ </li></ul><ul><li>var PlacemarkTemp = PlacemarkName; </li></ul><ul><li>CurrentPlacemark= PlacemarkTemp; </li></ul><ul><li>} </li></ul>
    11. 11. <ul><li>function getNextPlacemark(PlacemarkName) </li></ul><ul><li>{ </li></ul><ul><li>var PlacemarkTemp = PlacemarkName; </li></ul><ul><li>var compton= &quot;Compton&quot;; </li></ul><ul><li>var nissen=&quot;Nissen&quot;; </li></ul><ul><li>var crumley=&quot;Crumley&quot;; </li></ul><ul><li>var garrett=&quot;Garrett&quot;; </li></ul><ul><li>var end=&quot;End&quot;; </li></ul><ul><li>if (PlacemarkTemp==null) </li></ul><ul><li>{ </li></ul><ul><li>return compton; </li></ul><ul><li>} </li></ul><ul><li>else if (PlacemarkTemp==compton) </li></ul><ul><li>{ </li></ul><ul><li>return nissen; </li></ul><ul><li>} </li></ul><ul><li>...contd. </li></ul>Javascript functions (contd.)
    12. 12. <ul><li>else if (PlacemarkTemp==nissen) </li></ul><ul><li>{ </li></ul><ul><li>return crumley; </li></ul><ul><li>} </li></ul><ul><li>else if (PlacemarkTemp==crumley) </li></ul><ul><li>{ </li></ul><ul><li>return garrett; </li></ul><ul><li>} </li></ul><ul><li>else if (PlacemarkTemp==garrett) </li></ul><ul><li>{ </li></ul><ul><li>return end; </li></ul><ul><li>} </li></ul>Javascript functions (contd.)
    13. 13. <ul><li>else </li></ul><ul><li>{ </li></ul><ul><li>console.log(&quot;No next placemark found&quot;); </li></ul><ul><li>return null; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li><!-- end of get and set functions --> </li></ul>Javascript functions (contd.)
    14. 14. <ul><li><!-- Image and Button Manipulations ---> </li></ul><ul><li>function change_opacity(opacity, idSeed) { </li></ul><ul><li>//change opacity (cross browsers) </li></ul><ul><li>var id = idSeed+'Btn'; </li></ul><ul><li>var object = document.getElementById(id).style; </li></ul><ul><li>object.opacity = (opacity / 100); </li></ul><ul><li>object.MozOpacity = (opacity / 100); </li></ul><ul><li>object.KhtmlOpacity = (opacity / 100); </li></ul><ul><li>object.filter = &quot;alpha(opacity=&quot; + opacity + &quot;)&quot;; </li></ul><ul><li>} </li></ul>Javascript functions (contd.)
    15. 15. <ul><li>function toggleInit() </li></ul><ul><li>{ </li></ul><ul><li>toggletoPlay('life'); </li></ul><ul><li>toggletoPlay('culture'); </li></ul><ul><li>toggletoPlay('place'); </li></ul><ul><li>stopSound(nextSound); </li></ul><ul><li>} </li></ul><ul><li>function toggleControl(buttonParam,StateParam) </li></ul><ul><li>{ </li></ul><ul><li>change_opacity(100,buttonParam); </li></ul><ul><li>if (StateParam==playState) </li></ul><ul><li>{ </li></ul><ul><li>toggleInit(); </li></ul><ul><li>toggletoStop(buttonParam); </li></ul><ul><li>} </li></ul><ul><li>… contd. </li></ul>Javascript functions (contd.)
    16. 16. <ul><li>else if(StateParam==stopState) </li></ul><ul><li>{ </li></ul><ul><li>toggleInit(); </li></ul><ul><li>toggletoPlay(buttonParam); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>Javascript functions (contd.)
    17. 17. <ul><li>function toggletoStop(buttonID) </li></ul><ul><li>{ </li></ul><ul><li>var cId=buttonID+'Btn'; </li></ul><ul><li>var cLink=buttonID+'ID'; </li></ul><ul><li>var cImg = document.getElementById(cId); </li></ul><ul><li>var cAnchor=document.getElementById(cLink); </li></ul><ul><li>var CsoundId=getCurrentPlacemark()+&quot;-&quot;+buttonID; </li></ul><ul><li>cImg.src=&quot;http://www.graffitos.org/oakland/stop_&quot;+buttonID+&quot;.png&quot;; </li></ul><ul><li>playSound(CsoundId); </li></ul><ul><li>lastSound=CsoundId; </li></ul><ul><li>cAnchor.onclick = function(){ toggleControl(buttonID,stopState); }; </li></ul><ul><li>} </li></ul>Javascript functions (contd.)
    18. 18. <ul><li>function toggletoPlay(buttonID) </li></ul><ul><li>{ </li></ul><ul><li>var cId=buttonID+'Btn'; </li></ul><ul><li>var cLink=buttonID+'ID'; </li></ul><ul><li>var cImg = document.getElementById(cId); </li></ul><ul><li>var cAnchor=document.getElementById(cLink); </li></ul><ul><li>var curr_placemark=getCurrentPlacemark(); </li></ul><ul><li>var CsoundId = curr_placemark+&quot;-&quot;+buttonID; </li></ul><ul><li>cImg.src=&quot;http://www.graffitos.org/oakland/square_&quot;+buttonID+&quot;.png&quot;; </li></ul><ul><li>stopSound(CsoundId); </li></ul><ul><li>cAnchor.onclick = function(){ toggleControl(buttonID,playState); }; </li></ul><ul><li>} </li></ul>Javascript functions (contd.)
    19. 19. <ul><li><!-- Audio Functions ---> </li></ul><ul><li>function playSound(soundId) </li></ul><ul><li>{ </li></ul><ul><li>lastSound=soundId; </li></ul><ul><li>var mySound = KHARMA.getKMLElementById(soundId); </li></ul><ul><li>if (mySound) </li></ul><ul><li>mySound.play(); </li></ul><ul><li>console.log(&quot;playing &quot; + soundId); </li></ul><ul><li>} </li></ul><ul><li>function stopSound(soundId) </li></ul><ul><li>{ </li></ul><ul><li>var mySound = KHARMA.getKMLElementById(soundId); </li></ul><ul><li>if (mySound) </li></ul><ul><li>mySound.stop(); </li></ul><ul><li>console.log(&quot;stopping &quot; + soundId); </li></ul><ul><li>} </li></ul><ul><li><!-- End of Audio fn ---> </li></ul>Javascript functions (contd.)
    20. 20. <ul><li>function nextGrave() </li></ul><ul><li>{ </li></ul><ul><li>var currPlacemark = getCurrentPlacemark(); </li></ul><ul><li>var nextPlacemark=getNextPlacemark(currPlacemark); </li></ul><ul><li>if(currPlacemark != null) </li></ul><ul><li>{ </li></ul><ul><li>toggleInit(); </li></ul><ul><li>} </li></ul><ul><li>flyTonextPlacemark(nextPlacemark); </li></ul><ul><li>} </li></ul>Javascript functions (contd.)
    21. 21. <ul><li>function flyTonextPlacemark(placemarkRef) </li></ul><ul><li>{ </li></ul><ul><li>var featureId=placemarkRef+&quot;_geospot&quot;; var myFeature = KHARMA.getKMLElementById(featureId); </li></ul><ul><li>if (myFeature) </li></ul><ul><li>{ </li></ul><ul><li>myFeature.flyToBalloon(0); </li></ul><ul><li>setCurrentPlacemark(placemarkRef); </li></ul><ul><li>var CsoundId = placemarkRef + &quot;-next&quot;; </li></ul><ul><li>playSound(CsoundId); </li></ul><ul><li>console.log(&quot;setting geoSpot &quot; + featureId); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li></script> </li></ul>Javascript functions (contd.)
    22. 22. <ul><li><div align=&quot;center&quot; class=&quot;overlaystyle&quot; id=&quot;overlay&quot;> </li></ul><ul><li><table width=&quot;100%&quot; border=&quot;0&quot; style=&quot;text-align:center&quot;> </li></ul><ul><li><tr> </li></ul><ul><li><td> </li></ul><ul><li><a href=&quot;#&quot; class=&quot;life&quot; id=&quot;lifeID&quot; name=&quot;lifeID“ onclick=&quot;toggleControl('life',playState)&quot; > </li></ul><ul><li><img src=&quot;http://www.graffitos.org/oakland/square_life.png&quot; alt=&quot;Play Life Audio&quot; id=&quot;lifeBtn&quot; name=&quot;lifeBtn&quot; class=&quot;life&quot; width=&quot;50&quot; height=&quot;50&quot; border=&quot;0&quot; /></a> </li></ul><ul><li></td> </li></ul><ul><li><td> </li></ul><ul><li><a href=&quot;#&quot; class=&quot;culture&quot; id=&quot;cultureID&quot; name=&quot;cultureID&quot; onclick=&quot;toggleControl('culture',playState)&quot; ><img src=&quot;http://www.graffitos.org/oakland/square_culture.png&quot; width=&quot;50&quot; height=&quot;50&quot; border=&quot;0&quot; alt=&quot;Play audio on Culture&quot; id=&quot;cultureBtn&quot; name=&quot;cultureBtn&quot; class=&quot;culture&quot; /> </a> </li></ul>Div block
    23. 23. <ul><li><td> </li></ul><ul><li> <a href=&quot;#&quot; class=&quot;place&quot; id=&quot;placeID&quot; name=&quot;placeID&quot; onclick=&quot;toggleControl('place',playState)&quot; ><img src=&quot;http://www.graffitos.org/oakland/square_place.png&quot; width=&quot;50&quot; height=&quot;50&quot; border=&quot;0&quot; alt=&quot;Play place rleated audio&quot; id=&quot;placeBtn&quot; name=&quot;placeBtn&quot; class=&quot;place&quot; /></a> </li></ul><ul><li></td> </li></ul><ul><li><td> </li></ul><ul><li><a href=&quot;#&quot; class=&quot;next&quot; id=&quot;nextID&quot; name=&quot;nextID&quot; onclick=&quot;nextGrave()&quot; ><img src=&quot;http://www.graffitos.org/oakland/square_arrow.png&quot; width=&quot;50&quot; height=&quot;50&quot; border=&quot;0&quot; id=&quot;nextBtn&quot; name=&quot;nextBtn&quot; class=&quot;next&quot; /> </a> </li></ul><ul><li></td> </li></ul><ul><li></tr> </li></ul><ul><li></table> </li></ul><ul><li></div> </li></ul>Div block (contd.)
    24. 24. <ul><li><PhotoOverlay id=&quot;Compton_geospot&quot;> </li></ul><ul><li><name>.</name> </li></ul><ul><li><author> </li></ul><ul><li><name>jenifer.vandagriff@gatech.edu</name> </li></ul><ul><li></author> </li></ul><ul><li><link href=&quot;http://en.wikipedia.org/wiki/Wilson_Lumpkin&quot;/> </li></ul><ul><li><address>43-119 Foundry St NW Atlanta, GA 30313</address> </li></ul><ul><li><Camera> </li></ul><ul><li><TimeSpan> </li></ul><ul><li><begin>2009-12-31T19:00:00-05:00</begin> </li></ul><ul><li><end>2010-12-31T19:00:00-05:00</end> </li></ul><ul><li></TimeSpan> </li></ul><ul><li><longitude>-84.3745287160597</longitude> </li></ul><ul><li><latitude>33.7474158357573</latitude> </li></ul><ul><li><altitude>0</altitude> </li></ul><ul><li><heading>90</heading> </li></ul><ul><li>… contd. </li></ul>PhotoOverlay
    25. 25. <ul><li><tilt>0</tilt> </li></ul><ul><li><altitudeMode>relativeToGround</altitudeMode> </li></ul><ul><li><Icon> </li></ul><ul><li><href></href> </li></ul><ul><li></Icon> </li></ul><ul><li></Camera> </li></ul><ul><li><Icon><href>http://www.graffitos.org/oakland/panoramas/compton.pano/ lumpkin_$[side].png</href> </li></ul><ul><li></Icon> </li></ul><ul><li><Point> </li></ul><ul><li><coordinates>-84.3745287160597,33.7474158357573,0</coordinates> </li></ul><ul><li></Point> </li></ul><ul><li><shape>cube</shape> </li></ul><ul><li><balloonVisibility>0</balloonVisibility> </li></ul><ul><li> <styleUrl>#undecorated_style</styleUrl> </li></ul><ul><li></PhotoOverlay> </li></ul>PhotoOverlay (contd.)
    26. 26. <ul><li><Placemark id=&quot;Crumley&quot;> </li></ul><ul><li><name>Crumley</name> </li></ul><ul><li><description> </li></ul><ul><li><![CDATA[ </li></ul><ul><li>]]> </li></ul><ul><li></description> </li></ul><ul><li><Sound id=&quot;Crumley-life&quot;> <!-- sounds can be positioned and oriented --> </li></ul><ul><li><locationMode>relative</locationMode> <!-- default, relative --> </li></ul><ul><li><location> </li></ul><ul><li><latitude>0.0</latitude> </li></ul><ul><li><longitude>0.0</longitude> </li></ul><ul><li><altitude>0.0</altitude> </li></ul><ul><li></location> </li></ul><ul><li><gain>1</gain> </li></ul><ul><li><looping>0</looping> <!-- 0=false,1=true --> </li></ul><ul><li><sourceState>stopped</sourceState> </li></ul><ul><li><!-- state can be triggered by URL using ;playing, ;stopped and ;resuming --> </li></ul><ul><li>… contd. </li></ul>Placemark
    27. 27. Placemarks (contd.) <ul><li><link> </li></ul><ul><li><href>http://www.graffitos.org/oakland/audio/Crumley- life.mp3</href> </li></ul><ul><li></link> </li></ul><ul><li></Sound> </li></ul><ul><li><styleUrl>#undecorated_style</styleUrl> </li></ul><ul><li><balloonVisibility>1</balloonVisibility> </li></ul><ul><li><!– More sounds can be added here to the same location  </li></ul><ul><li><Point> </li></ul><ul><li><coordinates>-84.37411459174398,33.74730673365343,0</coordinates> </li></ul><ul><li></Point> </li></ul><ul><li></Placemark> </li></ul>
    28. 28. Document description <ul><li><name>Oakland.kml</name> </li></ul><ul><li><Snippet>Voices of Oakland</Snippet> </li></ul><ul><li><description><![CDATA[ </li></ul><ul><li><div><p>The Voices of Oakland uses Augmented Reality (AR) technology to introduce visitors to the history and architecture of Oakland Cemetery, Atlanta's oldest cemetery. Carrying your iPhone, you can walk among the graves and listen to the voices of historical figures interred at Oakland. You will be guided from grave to grave by a narrator, and choose the audio segments that interest you the most using the interface. You can learn about the life of the person buried here, the historical context or the architecture of the cemetery. </p></div> </li></ul><ul><li>]]> </li></ul><ul><li></description> </li></ul>
    29. 29. Questions? <ul><li>Contact info: </li></ul><ul><li>Nachiketas: [email_address] </li></ul><ul><li>Sanika: smokashi6@gatech.edu </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×