body {
/*Account for the navbar*/
padding-top: 3.5rem;
}
.globe {
width: 100%;
height: calc(100vh - 3.5rem);
background-color: black;
}
.globe-overlay {
position: absolute;
top: 3.5rem;
}
.globe-card {
background: rgba(255, 255, 255, 0.7);
}
.globe-button {
background: rgba(255, 255, 255, 0.25);
}
.globe-dropdown {
background: rgba(255, 255, 255, 0.25);
}
/*When the modal fills the screen it has no margin on top and bottom*/
/*Centers the modal*/
.modal-dialog {
margin: 0 auto;
}
/*Sets the maximum height of the entire modal to 100% of the screen height*/
.modal-content {
max-height: 100vh;
}
/*Sets the maximum height of the modal body to 90% of the screen height*/
.modal-body {
max-height: 90vh;
}
/*Sets the height of a modal's canvas to 30% or 200px*/
.modal-body-canvas {
max-height: 200px;
height: 30vh;
}
/*Sets the height of a modal's canvas to 60% minus the height of a footer*/
.modal-body-table {
max-height: calc(60vh - 71px);
overflow-y: auto;
}
/*Extra small devices (portrait phones, less than 576px)*/
@media (max-width: 575.98px) {
.card-columns {
column-count: 1;
}
}
/*Small devices (landscape phones, 576px and up)*/
@media (min-width: 576px) and (max-width: 767.98px) {
.card-columns {
column-count: 1;
}
}
/*Medium devices (tablets, 768px and up)*/
@media (min-width: 768px) and (max-width: 991.98px) {
.card-columns {
column-count: 2;
}
}
/*Large devices (desktops, 992px and up)*/
@media (min-width: 992px) and (max-width: 1199.98px) {
.card-columns {
column-count: 3;
}
}
/*Extra large devices (large desktops, 1200px and up)*/
@media (min-width: 1200px) {
.card-columns {
column-count: 4;
}
}
.noninteractive {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
pointer-events: none;
}
.interactive {
-webkit-touch-callout: auto !important;
...
JavaScript
/* global WorldWind */
$(document).ready(function() {
"use strict";
// Set your Bing Maps key which is used when requesting Bing Maps resources.
// Without your own key you will be using a limited WorldWind developer's key.
// See: https://www.bingmapsportal.com/ to register for your own key and then enter it below:
const BING_API_KEY = "";
if (BING_API_KEY) {
// Initialize WorldWind properties before creating the first WorldWindow
WorldWind.BingMapsKey = BING_API_KEY;
} else {
console.error("app.js: A Bing API key is required to use the Bing maps in production. Get your API key at https://www.bingmapsportal.com/");
}
// Set the MapQuest API key used for the Nominatim service.
// Get your own key at https://developer.mapquest.com/
// Without your own key you will be using a limited WorldWind developer's key.
const MAPQUEST_API_KEY = "";
/**
* The Globe encapulates the WorldWindow object (wwd) and provides application
* specific logic for interacting with layers.
* @param {String} canvasId
* @param {String|null} projectionName
* @returns {Globe}
*/
class Globe {
constructor(canvasId, projectionName) {
// Create a WorldWindow globe on the specified HTML5 canvas
this.wwd = new WorldWind.WorldWindow(canvasId);
// Projection support
this.roundGlobe = this.wwd.globe;
this.flatGlobe = null;
if (projectionName) {
this.changeProjection(projectionName);
}
// A map of category and 'observable' timestamp pairs
this.categoryTimestamps = new Map();
// Add a BMNGOneImageLayer background layer. We're overriding the default
// minimum altitude of the BMNGOneImageLayer so this layer always available.
this.addLayer(new WorldWind.BMNGOneImageLayer(), {
category: "background",
minActiveAltitude: 0
});
}
get projectionNames() {
return [
"3D",
"Equirectangular",
"Mercator",
...
Please Whitelist JSFiddle in your content blocker.
Help keep JSFiddle free for always by one of two ways:
Whitelist JSFiddle in your content blocker (two clicks)
Go PRO and get access to additional PRO features →
Join the 4+ million users, and keep the JSFiddle dream alive.
Ad-free
All ads in the editor and listing pages are turned completely off.
Use pre-released features
You get to try and use features (like the Palette Color Generator) months before everyone else.
Fiddle collections
Sort and categorize your Fiddles into multiple collections.
Private collections and fiddles
You can make as many Private Fiddles, and Private Collections as you wish!
Console
Debug your Fiddle with a minimal built-in JavaScript console.