, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Jason E. VanHorn | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Dr. Jason E. VanHorn

Professor, Director of Master of Science in GIScience Program

Biography

Originally from Indiana, Dr. VanHorn grew up with a fascination for maps. At an early age he became interested in cartography from the various road atlases and National Geographic Magazine thematic maps that he came across.

Education

  • BA, Geography & Political Science, Indiana University
  • MS, Geography, Texas A&M University
  • PhD, Geography, The Ohio State University


Professional Experience

Professor VanHorn joined the GEO department at ÃÛÌÒapp College in 2007 and has been recognized for his contributions to the field of geography through publication, research with undergraduate students, and international speaking engagements. His consulting work continues to grow to include work both domestically in the United States as well as abroad.

Academic Interests

  • geographic thought and philosophy
  • Geographic Information Systems (GIS)
  • cartography
  • remote sensing
  • geography of terrorism

Professional Associations

  • Association of American Geographers
  • American Geographical Society
  • EIS-Africa

Awards

2015 Student-Faculty Research Award at ÃÛÌÒapp College

Research and Scholarship