├── .gitignore ├── .travis.yml ├── .vscode ├── launch.json └── tasks.json ├── Apache License 2.0.pdf ├── CONTRIBUTING.md ├── Gruntfile.js ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── WebWorldWind 3rd-party notices and licenses.pdf ├── apps ├── Collada.html ├── Collada │ ├── Collada.js │ └── collada_models │ │ ├── 2_cylinder_engine │ │ └── 2_cylinder_engine.dae │ │ ├── Reciprocating_Saw │ │ └── Reciprocating_Saw.dae │ │ ├── bad_normals │ │ └── bad_normals.dae │ │ ├── box │ │ └── box.dae │ │ ├── buggy │ │ └── buggy.dae │ │ ├── duck │ │ ├── duck.dae │ │ └── duckCM.png │ │ ├── gearbox_assy │ │ └── gearbox_assy.dae │ │ └── kmlBuilding │ │ ├── CU Macky.dae │ │ ├── CU-Macky---Center-StairsnoCulling.jpg │ │ ├── CU-Macky-4sideturretnoCulling.jpg │ │ ├── CU-Macky-Back-NorthnoCulling.jpg │ │ ├── CU-Macky-BrickwallnoCulling.jpg │ │ ├── CU-Macky-East-WingnoCulling.jpg │ │ ├── CU-Macky-EastdetaildoornoCulling.jpg │ │ ├── CU-Macky-EastnoCulling.jpg │ │ ├── CU-Macky-EntrancenoCulling.jpg │ │ ├── CU-Macky-Front--TurretnoCulling.jpg │ │ ├── CU-Macky-FrontbrickwallnoCulling.jpg │ │ ├── CU-Macky-FrontnoCulling.jpg │ │ ├── CU-Macky-FrontofTowernoCulling.jpg │ │ ├── CU-Macky-NortheastUnivnoCulling.jpg │ │ ├── CU-Macky-NorthnoCulling.jpg │ │ ├── CU-Macky-RoofnoCulling.jpg │ │ ├── CU-Macky-Tower-SidenoCulling.jpg │ │ ├── CU-Macky-TowerBasenoCulling.jpg │ │ ├── CU-Macky-TowernoCulling.jpg │ │ ├── CU-Macky-_Side_BrickwallnoCulling.jpg │ │ └── roofnoCulling.jpg ├── Explorer.html ├── Explorer │ ├── Explorer.css │ ├── Explorer.js │ ├── app.js │ └── skin-lion │ │ ├── icons.gif │ │ ├── loading.gif │ │ └── ui.fancytree.css ├── NDVIViewer.html ├── NDVIViewer │ ├── CanvasWorker.js │ ├── NDVIViewer.js │ ├── analyticalSurfaces.json │ └── app.js ├── NEO.html ├── NEO │ ├── DatasetDropdown.js │ ├── LayerDropdown.js │ ├── NEO.css │ ├── NEO.js │ └── app.js ├── Offline.html ├── SentinelWMTS.html ├── SentinelWMTS │ ├── SentinelWMTS.js │ └── app.js ├── SubSurface.html ├── SubSurface │ ├── SubSurface.js │ └── app.js ├── USGSSlabs.html ├── USGSSlabs │ ├── DataGrid.js │ ├── USGSSlabs.js │ └── app.js ├── USGSWells.html ├── USGSWells │ ├── USGSWells.js │ └── app.js ├── util │ ├── GoToBox.js │ ├── LayerManager.js │ ├── LayersPanel.js │ ├── ProjectionMenu.js │ ├── ServersPanel.js │ ├── TerrainOpacityController.js │ └── TimeSeriesPlayer.js └── web-app-template │ ├── LICENSE │ ├── README.md │ ├── app.js │ ├── custom.css │ ├── index.html │ └── world.png ├── docs ├── _config.yml ├── emxsys_logo.png ├── index.md ├── lesson-1.md ├── lesson-2.md ├── lesson-3.md └── lesson-4.md ├── examples ├── AnnotationController.js ├── Annotations.html ├── Annotations.js ├── BasicExample.html ├── BasicExample.js ├── BlueMarbleTimeSeries.html ├── BlueMarbleTimeSeries.js ├── Canyon.html ├── Canyon.js ├── Collada.html ├── Collada.js ├── Configuration.html ├── Configuration.js ├── CustomPlacemark.html ├── CustomPlacemark.js ├── DeepPicking.html ├── DeepPicking.js ├── DigitalGlobe.html ├── DigitalGlobe.js ├── GeoJSON.html ├── GeoJSON.js ├── GeoJSONExporter.html ├── GeoJSONExporter.js ├── GeoTiff.html ├── GeoTiff.js ├── GeographicMeshes.html ├── GeographicMeshes.js ├── GeographicText.html ├── GeographicText.js ├── GoToLocation.html ├── GoToLocation.js ├── HeatMap.html ├── HeatMap.js ├── KML.html ├── KML.js ├── LayerManager.js ├── Measurements.html ├── Measurements.js ├── MultiWindow.html ├── MultiWindow.js ├── NightSkyAnimation.html ├── NightSkyAnimation.js ├── ParseUrlArguments.html ├── ParseUrlArguments.js ├── Paths.html ├── Paths.js ├── PickAllShapesInRegion.html ├── PickAllShapesInRegion.js ├── PlacemarksAndPicking.html ├── PlacemarksAndPicking.js ├── Polygons.html ├── Polygons.js ├── RefreshImagery.html ├── RefreshImagery.js ├── ScreenImage.html ├── ScreenImage.js ├── ScreenText.html ├── ScreenText.js ├── ShapeEditor.html ├── ShapeEditor.js ├── Shapefiles.html ├── Shapefiles.js ├── SimplestExample.html ├── SurfaceImage.html ├── SurfaceImage.js ├── SurfaceShapes.html ├── SurfaceShapes.js ├── TestMovingSurfaceShapes.html ├── TestMovingSurfaceShapes.js ├── TriangleMeshes.html ├── TriangleMeshes.js ├── Views.html ├── Views.js ├── WKT.html ├── WKT.js ├── WMS.html ├── WMS.js ├── WMTS.html ├── WMTS.js ├── WktExporter.html ├── WktExporter.js ├── WorldWindShim.js ├── collada_models │ └── duck │ │ ├── duck.dae │ │ └── duckCM.png └── data │ ├── 400x230-splash-nww.png │ ├── KML_Samples.kml │ ├── S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T32UQB.tif.png │ ├── S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T33UUS.tif.png │ ├── S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T33UVS.tif.png │ ├── S2A_OPER_MTD_L1C_TL_EPA__20150810T100716_A000691_T33UVP.tif.png │ ├── S2A_OPER_MTD_L1C_TL_EPA__20150813T101657_A000734_T32UQA.tif.png │ ├── S2A_OPER_MTD_L1C_TL_EPA__20150813T101657_A000734_T32UQV.tif.png │ ├── esa_logo_min.png │ ├── etna.jpg │ ├── etna.kmz │ ├── etnaOverlay.kml │ ├── surface-image-nearest.png │ └── top_left.jpg ├── images ├── BMNG_world.topo.bathy.200405.3.2048x1024.jpg ├── TectonicPlates.json ├── blue-dot.png ├── crosshair.png ├── dnb_land_ocean_ice_2012.png ├── gray-dot.png ├── green-dot.png ├── notched-compass.png ├── powered-by-bing.png ├── pushpins │ ├── castshadow-black.png │ ├── castshadow-blue.png │ ├── castshadow-brown.png │ ├── castshadow-gray.png │ ├── castshadow-green.png │ ├── castshadow-orange.png │ ├── castshadow-purple.png │ ├── castshadow-red.png │ ├── castshadow-teal.png │ ├── castshadow-white.png │ ├── plain-black-transparent.png │ ├── plain-black.png │ ├── plain-blue.png │ ├── plain-brown.png │ ├── plain-gray.png │ ├── plain-green.png │ ├── plain-orange.png │ ├── plain-purple.png │ ├── plain-red.png │ ├── plain-teal.png │ ├── plain-white.png │ ├── plain-yellow.png │ ├── push-pin-red.png │ ├── push-pin-yellow-32.png │ └── push-pin-yellow.png ├── stars.json ├── sunTexture.png ├── view │ ├── view-elevation-down-32x32.png │ ├── view-elevation-up-32x32.png │ ├── view-fov-narrow-32x32.png │ ├── view-fov-wide-32x32.png │ ├── view-heading-left-32x32.png │ ├── view-heading-right-32x32.png │ ├── view-look-64x64.png │ ├── view-pan-64x64.png │ ├── view-pitch-down-32x32.png │ ├── view-pitch-up-32x32.png │ ├── view-zoom-in-32x32.png │ └── view-zoom-out-32x32.png ├── white-dot.png └── yellow-dot.png ├── karma.conf.js ├── nbproject ├── project.properties └── project.xml ├── package-lock.json ├── package.json ├── performance ├── DeepPickingPerformance.html ├── DeepPickingPerformance.js ├── ShapefilesComplex.html ├── ShapefilesComplex.js ├── SurfaceShapesComplex.html ├── SurfaceShapesComplex.js ├── VeryManyPaths.html ├── VeryManyPaths.js ├── VeryManyPolygons.html └── VeryManyPolygons.js ├── src ├── BasicWorldWindowController.js ├── WorldWind.js ├── WorldWindow.js ├── WorldWindowController.js ├── cache │ ├── GpuResourceCache.js │ ├── MemoryCache.js │ └── MemoryCacheListener.js ├── error │ ├── AbstractError.js │ ├── ArgumentError.js │ ├── NotYetImplementedError.js │ └── UnsupportedOperationError.js ├── formats │ ├── aaigrid │ │ ├── AAIGridConstants.js │ │ ├── AAIGridMetadata.js │ │ └── AAIGridReader.js │ ├── collada │ │ ├── ColladaAsset.js │ │ ├── ColladaImage.js │ │ ├── ColladaLoader.js │ │ ├── ColladaMaterial.js │ │ ├── ColladaMesh.js │ │ ├── ColladaNode.js │ │ ├── ColladaScene.js │ │ └── ColladaUtils.js │ ├── geojson │ │ ├── GeoJSONCRS.js │ │ ├── GeoJSONConstants.js │ │ ├── GeoJSONExporter.js │ │ ├── GeoJSONFeature.js │ │ ├── GeoJSONFeatureCollection.js │ │ ├── GeoJSONGeometry.js │ │ ├── GeoJSONGeometryCollection.js │ │ ├── GeoJSONGeometryLineString.js │ │ ├── GeoJSONGeometryMultiLineString.js │ │ ├── GeoJSONGeometryMultiPoint.js │ │ ├── GeoJSONGeometryMultiPolygon.js │ │ ├── GeoJSONGeometryPoint.js │ │ ├── GeoJSONGeometryPolygon.js │ │ └── GeoJSONParser.js │ ├── geotiff │ │ ├── GeoTiffConstants.js │ │ ├── GeoTiffKeyEntry.js │ │ ├── GeoTiffMetadata.js │ │ ├── GeoTiffReader.js │ │ ├── GeoTiffUtil.js │ │ ├── TiffConstants.js │ │ └── TiffIFDEntry.js │ ├── kml │ │ ├── KmlAbstractView.js │ │ ├── KmlCamera.js │ │ ├── KmlElements.js │ │ ├── KmlFile.js │ │ ├── KmlFileCache.js │ │ ├── KmlIcon.js │ │ ├── KmlLatLonAltBox.js │ │ ├── KmlLatLonBox.js │ │ ├── KmlLatLonQuad.js │ │ ├── KmlLink.js │ │ ├── KmlLocation.js │ │ ├── KmlLod.js │ │ ├── KmlLookAt.js │ │ ├── KmlObject.js │ │ ├── KmlOrientation.js │ │ ├── KmlRegion.js │ │ ├── KmlTimePrimitive.js │ │ ├── KmlTimeSpan.js │ │ ├── KmlTimeStamp.js │ │ ├── KmzFile.js │ │ ├── README.MD │ │ ├── controls │ │ │ ├── KmlControls.js │ │ │ └── KmlTreeVisibility.js │ │ ├── features │ │ │ ├── KmlContainer.js │ │ │ ├── KmlDocument.js │ │ │ ├── KmlFeature.js │ │ │ ├── KmlFolder.js │ │ │ ├── KmlGroundOverlay.js │ │ │ ├── KmlNetworkLink.js │ │ │ ├── KmlOverlay.js │ │ │ ├── KmlPhotoOverlay.js │ │ │ ├── KmlPlacemark.js │ │ │ ├── KmlScreenOverlay.js │ │ │ └── KmlTour.js │ │ ├── geom │ │ │ ├── KmlGeometry.js │ │ │ ├── KmlLineString.js │ │ │ ├── KmlLinearRing.js │ │ │ ├── KmlMultiGeometry.js │ │ │ ├── KmlMultiTrack.js │ │ │ ├── KmlPoint.js │ │ │ ├── KmlPolygon.js │ │ │ └── KmlTrack.js │ │ ├── styles │ │ │ ├── KmlBalloonStyle.js │ │ │ ├── KmlColorStyle.js │ │ │ ├── KmlIconStyle.js │ │ │ ├── KmlLabelStyle.js │ │ │ ├── KmlLineStyle.js │ │ │ ├── KmlListStyle.js │ │ │ ├── KmlPolyStyle.js │ │ │ ├── KmlStyle.js │ │ │ ├── KmlStyleMap.js │ │ │ ├── KmlStyleSelector.js │ │ │ └── KmlSubStyle.js │ │ └── util │ │ │ ├── KmlAttribute.js │ │ │ ├── KmlChange.js │ │ │ ├── KmlCreate.js │ │ │ ├── KmlDelete.js │ │ │ ├── KmlElementsFactory.js │ │ │ ├── KmlElementsFactoryCached.js │ │ │ ├── KmlHrefResolver.js │ │ │ ├── KmlImagePyramid.js │ │ │ ├── KmlItemIcon.js │ │ │ ├── KmlNetworkLinkControl.js │ │ │ ├── KmlNodeTransformers.js │ │ │ ├── KmlPair.js │ │ │ ├── KmlRefreshListener.js │ │ │ ├── KmlRemoteFile.js │ │ │ ├── KmlScale.js │ │ │ ├── KmlSchema.js │ │ │ ├── KmlStyleResolver.js │ │ │ ├── KmlTreeKeyValueCache.js │ │ │ ├── KmlUpdate.js │ │ │ └── KmlViewVolume.js │ ├── shapefile │ │ ├── DBaseField.js │ │ ├── DBaseFile.js │ │ ├── DBaseRecord.js │ │ ├── PrjFile.js │ │ ├── Shapefile.js │ │ ├── ShapefileRecord.js │ │ ├── ShapefileRecordMultiPoint.js │ │ ├── ShapefileRecordNull.js │ │ ├── ShapefileRecordPoint.js │ │ ├── ShapefileRecordPolygon.js │ │ └── ShapefileRecordPolyline.js │ └── wkt │ │ ├── README.MD │ │ ├── Wkt.js │ │ ├── WktElements.js │ │ ├── WktExporter.js │ │ ├── WktTokens.js │ │ ├── WktType.js │ │ └── geom │ │ ├── WktGeometryCollection.js │ │ ├── WktLineString.js │ │ ├── WktMultiLineString.js │ │ ├── WktMultiPoint.js │ │ ├── WktMultiPolygon.js │ │ ├── WktObject.js │ │ ├── WktPoint.js │ │ ├── WktPolygon.js │ │ └── WktTriangle.js ├── geom │ ├── Angle.js │ ├── BoundingBox.js │ ├── Camera.js │ ├── Frustum.js │ ├── Line.js │ ├── Location.js │ ├── LookAt.js │ ├── Matrix.js │ ├── Matrix3.js │ ├── MeasuredLocation.js │ ├── Plane.js │ ├── Position.js │ ├── Rectangle.js │ ├── Sector.js │ ├── TileMatrix.js │ ├── TileMatrixSet.js │ ├── Vec2.js │ └── Vec3.js ├── gesture │ ├── ClickRecognizer.js │ ├── DragRecognizer.js │ ├── GestureRecognizer.js │ ├── PanRecognizer.js │ ├── PinchRecognizer.js │ ├── RotationRecognizer.js │ ├── TapRecognizer.js │ ├── TiltRecognizer.js │ └── Touch.js ├── globe │ ├── AsterV2ElevationCoverage.js │ ├── EarthElevationModel.js │ ├── EarthRestElevationCoverage.js │ ├── ElevationCoverage.js │ ├── ElevationImage.js │ ├── ElevationModel.js │ ├── GebcoElevationCoverage.js │ ├── Globe.js │ ├── Globe2D.js │ ├── Terrain.js │ ├── TerrainTile.js │ ├── TerrainTileList.js │ ├── Tessellator.js │ ├── TiledElevationCoverage.js │ ├── UsgsNedElevationCoverage.js │ ├── UsgsNedHiElevationCoverage.js │ └── WcsEarthElevationCoverage.js ├── layer │ ├── AtmosphereLayer.js │ ├── BMNGLandsatLayer.js │ ├── BMNGLayer.js │ ├── BMNGOneImageLayer.js │ ├── BMNGRestLayer.js │ ├── BingAerialLayer.js │ ├── BingAerialWithLabelsLayer.js │ ├── BingRoadsLayer.js │ ├── BingTiledImageLayer.js │ ├── BingWMSLayer.js │ ├── CompassLayer.js │ ├── CoordinatesDisplayLayer.js │ ├── DigitalGlobeTiledImageLayer.js │ ├── FrameStatisticsLayer.js │ ├── LandsatRestLayer.js │ ├── Layer.js │ ├── MercatorTiledImageLayer.js │ ├── OpenStreetMapImageLayer.js │ ├── RenderableLayer.js │ ├── RestTiledImageLayer.js │ ├── ShowTessellationLayer.js │ ├── StarFieldLayer.js │ ├── TectonicPlatesLayer.js │ ├── TiledImageLayer.js │ ├── ViewControlsLayer.js │ ├── WmsLayer.js │ ├── WmsTimeDimensionedLayer.js │ ├── WmtsLayer.js │ ├── WmtsLayerTile.js │ └── heatmap │ │ ├── HeatMapColoredTile.js │ │ ├── HeatMapIntervalType.js │ │ ├── HeatMapLayer.js │ │ └── HeatMapTile.js ├── navigate │ ├── LookAtNavigator.js │ ├── LookAtPositionProxy.js │ └── Navigator.js ├── ogc │ ├── WfsCapabilities.js │ ├── gml │ │ ├── GmlBoundedBy.js │ │ ├── GmlDomainSet.js │ │ └── GmlRectifiedGrid.js │ ├── ows │ │ ├── OwsBoundingBox.js │ │ ├── OwsConstraint.js │ │ ├── OwsDatasetSummary.js │ │ ├── OwsDescription.js │ │ ├── OwsKeywords.js │ │ ├── OwsLanguageString.js │ │ ├── OwsOperationsMetadata.js │ │ ├── OwsServiceIdentification.js │ │ └── OwsServiceProvider.js │ ├── wcs │ │ ├── WcsCapabilities.js │ │ ├── WcsCoverage.js │ │ ├── WcsCoverageDescriptions.js │ │ ├── WcsUrlBuilder.js │ │ └── WebCoverageService.js │ ├── wms │ │ ├── WmsCapabilities.js │ │ └── WmsLayerCapabilities.js │ └── wmts │ │ ├── WmtsCapabilities.js │ │ └── WmtsLayerCapabilities.js ├── pick │ ├── PickedObject.js │ └── PickedObjectList.js ├── projections │ ├── GeographicProjection.js │ ├── ProjectionEquirectangular.js │ ├── ProjectionGnomonic.js │ ├── ProjectionMercator.js │ ├── ProjectionPolarEquidistant.js │ ├── ProjectionUPS.js │ └── ProjectionWgs84.js ├── render │ ├── DrawContext.js │ ├── FramebufferTexture.js │ ├── FramebufferTile.js │ ├── FramebufferTileController.js │ ├── ImageTile.js │ ├── OrderedRenderable.js │ ├── Renderable.js │ ├── ScreenCreditController.js │ ├── SurfaceRenderable.js │ ├── SurfaceTile.js │ ├── SurfaceTileRenderer.js │ ├── TextRenderer.js │ ├── Texture.js │ └── TextureTile.js ├── shaders │ ├── AtmosphereProgram.js │ ├── BasicProgram.js │ ├── BasicTextureProgram.js │ ├── GpuProgram.js │ ├── GpuShader.js │ ├── GroundProgram.js │ ├── SkyProgram.js │ ├── StarFieldProgram.js │ └── SurfaceTileRendererProgram.js ├── shapes │ ├── AbstractMesh.js │ ├── AbstractShape.js │ ├── Annotation.js │ ├── AnnotationAttributes.js │ ├── Compass.js │ ├── GeographicMesh.js │ ├── GeographicText.js │ ├── Path.js │ ├── Placemark.js │ ├── PlacemarkAttributes.js │ ├── Polygon.js │ ├── ScreenImage.js │ ├── ScreenText.js │ ├── ShapeAttributes.js │ ├── SurfaceCircle.js │ ├── SurfaceEllipse.js │ ├── SurfaceImage.js │ ├── SurfacePolygon.js │ ├── SurfacePolyline.js │ ├── SurfaceRectangle.js │ ├── SurfaceSector.js │ ├── SurfaceShape.js │ ├── SurfaceShapeTile.js │ ├── SurfaceShapeTileBuilder.js │ ├── Text.js │ ├── TextAttributes.js │ └── TriangleMesh.js └── util │ ├── AbsentResourceList.js │ ├── BasicTimeSequence.js │ ├── BingImageryUrlBuilder.js │ ├── ByteBuffer.js │ ├── Color.js │ ├── Date.js │ ├── Font.js │ ├── FrameStatistics.js │ ├── GoToAnimator.js │ ├── HashMap.js │ ├── HighlightController.js │ ├── ImageSource.js │ ├── Insets.js │ ├── KeyboardControls.js │ ├── Level.js │ ├── LevelRowColumnUrlBuilder.js │ ├── LevelSet.js │ ├── Logger.js │ ├── NominatimGeocoder.js │ ├── Offset.js │ ├── PeriodicTimeSequence.js │ ├── PolygonSplitter.js │ ├── Promise.js │ ├── SunPosition.js │ ├── Tile.js │ ├── TileFactory.js │ ├── UrlBuilder.js │ ├── WWMath.js │ ├── WWMessage.js │ ├── WWUtil.js │ ├── WcsTileUrlBuilder.js │ ├── WmsUrlBuilder.js │ ├── XmlDocument.js │ ├── editor │ ├── BaseSurfaceEditorFragment.js │ ├── PlacemarkEditorFragment.js │ ├── ShapeEditor.js │ ├── ShapeEditorConstants.js │ ├── SurfaceCircleEditorFragment.js │ ├── SurfaceEllipseEditorFragment.js │ ├── SurfacePolygonEditorFragment.js │ ├── SurfacePolylineEditorFragment.js │ ├── SurfaceRectangleEditorFragment.js │ └── SurfaceSectorEditorFragment.js │ ├── es6-promise.js │ ├── jszip.js │ ├── libtess.js │ ├── measure │ ├── AreaMeasurer.js │ ├── LengthMeasurer.js │ └── MeasurerUtils.js │ └── proj4-src.js ├── test ├── BasicWorldWindowController.test.js ├── CustomMatchers.test.js ├── README.md ├── WorldWindow.test.js ├── formats │ ├── aaigrid │ │ ├── AAIGridReader.test.js │ │ └── aaigrid-tile.asc │ ├── collada │ │ ├── ColladaScene.test.js │ │ └── bad_normals.dae │ ├── geotiff │ │ ├── GeoTiffReader.test.js │ │ ├── grayscale-test.tif │ │ └── rgb-test.tif │ ├── kml │ │ ├── KmlAbstractView.test.js │ │ ├── KmlCamera.test.js │ │ ├── KmlFile.test.js │ │ ├── KmlIcon.test.js │ │ ├── KmlLatLonAltBox.test.js │ │ ├── KmlLatLonBox.test.js │ │ ├── KmlLatLonQuad.test.js │ │ ├── KmlLink.test.js │ │ ├── KmlLocation.test.js │ │ ├── KmlLod.test.js │ │ ├── KmlLookAt.test.js │ │ ├── KmlObject.test.js │ │ ├── KmlOrientation.test.js │ │ ├── KmlRegion.test.js │ │ ├── KmlTimeSpan.test.js │ │ ├── KmlTimeStamp.test.js │ │ ├── features │ │ │ ├── KmlDocument.test.js │ │ │ ├── KmlFeature.test.js │ │ │ ├── KmlFolder.test.js │ │ │ ├── KmlGroundOverlay.test.js │ │ │ ├── KmlNetworkLink.test.js │ │ │ ├── KmlOverlay.test.js │ │ │ ├── KmlPhotoOverlay.test.js │ │ │ ├── KmlPlacemark.test.js │ │ │ └── KmlScreenOverlay.test.js │ │ ├── geom │ │ │ ├── KmlLineString.test.js │ │ │ ├── KmlMultiGeometry.test.js │ │ │ └── KmlPoint.test.js │ │ ├── styles │ │ │ ├── KmlBalloonStyle.test.js │ │ │ ├── KmlIconStyle.test.js │ │ │ ├── KmlLabelStyle.test.js │ │ │ ├── KmlLineStyle.test.js │ │ │ ├── KmlListStyle.test.js │ │ │ ├── KmlPolyStyle.test.js │ │ │ ├── KmlStyle.test.js │ │ │ └── KmlStyleMap.test.js │ │ └── util │ │ │ ├── Attribute.test.js │ │ │ ├── ImagePyramid.test.js │ │ │ ├── ItemIcon.test.js │ │ │ ├── KmlElementsFactory.test.js │ │ │ ├── KmlElementsFactoryCached.test.js │ │ │ ├── NodeTransformers.test.js │ │ │ ├── Pair.test.js │ │ │ ├── Scale.test.js │ │ │ ├── TreeKeyValueCache.test.js │ │ │ └── ViewVolume.test.js │ └── wkt │ │ └── WktTokens.test.js ├── geom │ ├── Angle.test.js │ ├── BoundingBox.test.js │ ├── Camera.test.js │ ├── Frustum.test.js │ ├── Line.test.js │ ├── Location.test.js │ ├── LookAt.test.js │ ├── Matrix.test.js │ ├── Matrix3.test.js │ ├── Plane.test.js │ ├── Position.test.js │ ├── Sector.test.js │ ├── TileMatrix.test.js │ ├── TileMatrixSet.test.js │ ├── Vec2.test.js │ └── Vec3.test.js ├── globe │ ├── ElevationImage.test.js │ ├── ElevationModel.test.js │ ├── Globe.test.js │ └── ProjectionWgs84.test.js ├── ogc │ └── wcs │ │ ├── WcsCapabilities.test.js │ │ ├── WcsCoverage.test.js │ │ ├── WcsCoverageDescriptions.test.js │ │ ├── WcsUrlBuilder.test.js │ │ ├── WebCoverageService.test.js │ │ ├── wcs100DescribeCoverage.xml │ │ ├── wcs100GetCapabilities.xml │ │ ├── wcs201DescribeCoverage.xml │ │ └── wcs201GetCapabilities.xml ├── render │ ├── DrawContext.test.js │ └── TextRenderer.test.js ├── test-main.js └── util │ ├── Color.test.js │ ├── PolygonSplitter.test.js │ ├── PolygonSplitterData.test.js │ ├── SunPosition.test.js │ ├── TestUtils.test.js │ ├── WWMath.test.js │ ├── WWUtil.test.js │ └── XmlDocument.test.js ├── tools ├── WorldWindShim.build.js ├── almond.js ├── jsdoc.conf.json ├── jsdoc.layout.tmpl ├── wrap.end └── wrap.start └── travis ├── changelog.sh └── publishFolderToArtifactory.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .idea/shelf 4 | 5 | .idea/tasks.xml 6 | 7 | .idea/workspace.xml 8 | 9 | build/ 10 | 11 | nasaworldwind-worldwind-*.tgz 12 | 13 | node_modules/ 14 | 15 | npm-debug.log 16 | /nbproject/private/ 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Directs the Travis CI build service for Web WorldWind 2 | # For more information see https://docs.travis-ci.com/user/customizing-the-build/ 3 | 4 | # Set up to run the JavaScript build script per the Travis CI documentation 5 | language: node_js 6 | 7 | # Configure the build to use the latest Node.js 10.x release 8 | node_js: 9 | - "10" 10 | 11 | # Build the project. Travis CI automatically runs npm install before the build 12 | script: 13 | - npm run build 14 | 15 | # Deploy build artifacts. Travis does not invoke this step for pull request builds 16 | deploy: 17 | # Publish develop branch distributions to the Artifactory apps repository 18 | #- provider: script 19 | # script: node ./travis/publishFolderToArtifactory $ARTIFACTORY_API_KEY ./build/dist /artifactory/apps/web 20 | # skip_cleanup: true 21 | # on: 22 | # branch: develop 23 | # Publish API documentation to GitHub Pages 24 | #- provider: pages 25 | # github_token: $GITHUB_API_KEY 26 | # local_dir: build/dist/api-doc 27 | # skip_cleanup: true 28 | # on: 29 | # branch: develop 30 | # Publish release artifacts to the npm repository 31 | - provider: npm 32 | email: $NPM_EMAIL 33 | api_key: $NPM_API_KEY 34 | skip_cleanup: true 35 | on: 36 | tags: true 37 | # Publish release distributions to the Artifactory repository 38 | - provider: script 39 | script: node ./travis/publishFolderToArtifactory $ARTIFACTORY_API_KEY ./build/dist /artifactory/web/${TRAVIS_TAG:1} 40 | skip_cleanup: true 41 | on: 42 | tags: true 43 | # Create CHANGELOG.md in the current directory 44 | - provider: script 45 | script: ./travis/changelog.sh >> CHANGELOG.md 46 | skip_cleanup: true 47 | on: 48 | tags: true 49 | # Create a GitHub release and publish CHANGELOG.md and WebWorldWind.zip to the release assets 50 | - provider: releases 51 | api_key: $GITHUB_API_KEY 52 | file_glob: true 53 | file: 54 | - CHANGELOG.md 55 | - build/WebWorldWind-Distribution-*.zip 56 | skip_cleanup: true 57 | on: 58 | tags: true 59 | 60 | # Node.js build cache configuration. See the Travis CI documentation: https://docs.travis-ci.com/user/languages/javascript-with-nodejs/#Caching-with-npm 61 | cache: 62 | directories: 63 | - "node_modules" 64 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "type": "grunt", 6 | "task": "default", 7 | "problemMatcher": [], 8 | "label": "grunt: default", 9 | "group": { 10 | "kind": "build", 11 | "isDefault": true 12 | } 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /Apache License 2.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/Apache License 2.0.pdf -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | **Note:** Any issue that does not include enough information to be reviewed in a timely manner may be closed at the 2 | maintainer's discretion. 3 | 4 | ### Prerequisites 5 | 6 | Please fulfill the following requirements before submitting an issue to this repository. 7 | 8 | - Check the "Common Problems" page on the WorldWind website: https://worldwind.arc.nasa.gov/web/tutorials/common-problems/ 9 | - Check that your issue isn't already filed: https://github.com/NASAWorldWind/WebWorldWind/issues 10 | - Check the WorldWind forum for common solutions: https://forum.worldwindcentral.com/forum/web-world-wind/web-world-wind-help 11 | 12 | ### Description 13 | 14 | [Description of the issue] 15 | 16 | ### Steps to Reproduce 17 | 18 | 1. [First step] 19 | 2. [Second step] 20 | 3. [and so on...] 21 | 22 | **Expected behavior:** [What you expect to happen] 23 | 24 | **Actual behavior:** [What actually happens] 25 | 26 | **Reproduces how often:** [What percentage of the time does it reproduce?] 27 | 28 | ### Browser, Operating System and their versions 29 | 30 | [What operating system and version are you using?] 31 | 32 | ### Additional Information 33 | 34 | Any additional information, configuration or data that might be necessary to reproduce the issue. -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | ___Preconditions___ 3 | 4 | _To satisfy the NASAWorldWind/WebWorldWind Apache 2.0 license, changed files should contain this notice:_ 5 | ``` 6 | /* 7 | * NOTICE: This file was modified from the original NASAWorldWind/WebWorldWind distribution. 8 | * NOTICE: This file contains changes made by [your name ]. 9 | */ 10 | ``` 11 | ### Description of the Change 12 | 13 | ### Why Should This Be In Core? 14 | 15 | ### Benefits 16 | 17 | ### Potential Drawbacks 18 | 19 | ### Applicable Issues 20 | -------------------------------------------------------------------------------- /WebWorldWind 3rd-party notices and licenses.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/WebWorldWind 3rd-party notices and licenses.pdf -------------------------------------------------------------------------------- /apps/Collada/collada_models/duck/duckCM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/duck/duckCM.png -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky---Center-StairsnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky---Center-StairsnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-4sideturretnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-4sideturretnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-Back-NorthnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-Back-NorthnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-BrickwallnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-BrickwallnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-East-WingnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-East-WingnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-EastdetaildoornoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-EastdetaildoornoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-EastnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-EastnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-EntrancenoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-EntrancenoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-Front--TurretnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-Front--TurretnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-FrontbrickwallnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-FrontbrickwallnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-FrontnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-FrontnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-FrontofTowernoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-FrontofTowernoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-NortheastUnivnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-NortheastUnivnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-NorthnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-NorthnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-RoofnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-RoofnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-Tower-SidenoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-Tower-SidenoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-TowerBasenoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-TowerBasenoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-TowernoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-TowernoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/CU-Macky-_Side_BrickwallnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/CU-Macky-_Side_BrickwallnoCulling.jpg -------------------------------------------------------------------------------- /apps/Collada/collada_models/kmlBuilding/roofnoCulling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Collada/collada_models/kmlBuilding/roofnoCulling.jpg -------------------------------------------------------------------------------- /apps/Explorer/Explorer.css: -------------------------------------------------------------------------------- 1 | .wrap-panel-heading { 2 | white-space: normal; 3 | -ms-word-wrap: break-word; 4 | word-wrap: break-word; 5 | } -------------------------------------------------------------------------------- /apps/Explorer/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | requirejs.config({ 29 | "paths": { 30 | "Explorer": "Explorer" 31 | } 32 | }); 33 | 34 | requirejs(["Explorer"], function (Explorer) { 35 | new Explorer() 36 | }); 37 | -------------------------------------------------------------------------------- /apps/Explorer/skin-lion/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Explorer/skin-lion/icons.gif -------------------------------------------------------------------------------- /apps/Explorer/skin-lion/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/Explorer/skin-lion/loading.gif -------------------------------------------------------------------------------- /apps/NDVIViewer/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | requirejs.config({ 29 | "paths": { 30 | "NDVIViewer": "NDVIViewer" 31 | } 32 | }); 33 | 34 | requirejs(["NDVIViewer"], function (NDVIViewer) { 35 | new NDVIViewer() 36 | }); 37 | -------------------------------------------------------------------------------- /apps/NEO/LayerDropdown.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define(function () { 29 | "use strict"; 30 | 31 | var LayerDropdown = function (controller) { 32 | this.controller = controller; 33 | }; 34 | 35 | LayerDropdown.prototype.setLayers = function (datasetCaps) { 36 | this.fillDropdownList(datasetCaps); 37 | 38 | $("#layerDropdownTitle").html(datasetCaps.layers[0].title + ""); 39 | }; 40 | 41 | LayerDropdown.prototype.fillDropdownList = function (datasetCaps) { 42 | 43 | var dropdownList = $('#layerDropdownList'); 44 | 45 | dropdownList.empty(); 46 | 47 | for (var i = 0; i < datasetCaps.layers.length; i++) { 48 | var layer = datasetCaps.layers[i]; 49 | 50 | var menuItem = $('
  • ' + layer.title + '
  • '); 51 | dropdownList.append(menuItem); 52 | } 53 | 54 | var controller = this.controller; 55 | dropdownList.find(" li").on("click", function (e) { 56 | controller.onLayerClick(e); 57 | }); 58 | }; 59 | 60 | return LayerDropdown; 61 | }); -------------------------------------------------------------------------------- /apps/NEO/NEO.css: -------------------------------------------------------------------------------- 1 | /* Time series player position in medium to large viewports. */ 2 | @media (min-width: 992px) { 3 | #timeSeriesPlayer { 4 | position: absolute; 5 | top: 200px; 6 | left: 20px; 7 | } 8 | } 9 | 10 | /* Time series player overlay position in small viewports. */ 11 | @media (max-width: 992px) { 12 | #timeSeriesPlayer { 13 | position: absolute; 14 | top: 100px; 15 | left: 5px; 16 | } 17 | } 18 | 19 | .scrollable-menu { 20 | height: auto; 21 | max-height: 300px; 22 | overflow-x: hidden; 23 | } -------------------------------------------------------------------------------- /apps/NEO/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | requirejs.config({ 29 | "paths": { 30 | "NEO": "NEO" 31 | } 32 | }); 33 | 34 | requirejs(["NEO"], function (NEO) { 35 | new NEO() 36 | }); 37 | -------------------------------------------------------------------------------- /apps/SentinelWMTS/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | 29 | requirejs.config({ 30 | "paths": { 31 | "SentinelWMTS": "SentinelWMTS" 32 | } 33 | }); 34 | 35 | requirejs(["SentinelWMTS"], function (SentinelWMTS) { 36 | new SentinelWMTS(); 37 | }); 38 | -------------------------------------------------------------------------------- /apps/SubSurface/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | requirejs.config({ 29 | "paths": { 30 | "SubSurface": "SubSurface" 31 | } 32 | }); 33 | 34 | requirejs(["SubSurface"], function (SubSurface) { 35 | new SubSurface() 36 | }); 37 | -------------------------------------------------------------------------------- /apps/USGSSlabs/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | requirejs.config({ 29 | "paths": { 30 | "USGSSlabs": "USGSSlabs" 31 | } 32 | }); 33 | 34 | requirejs(["USGSSlabs"], function (USGSSlabs) { 35 | new USGSSlabs() 36 | }); 37 | -------------------------------------------------------------------------------- /apps/USGSWells/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | 29 | requirejs.config({ 30 | "paths": { 31 | "USGSWells": "USGSWells" 32 | } 33 | }); 34 | 35 | requirejs(["USGSWells"], function (USGSWells) { 36 | new USGSWells() 37 | }); 38 | -------------------------------------------------------------------------------- /apps/web-app-template/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Bruce Schubert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /apps/web-app-template/README.md: -------------------------------------------------------------------------------- 1 | # WorldWindJS Web App Template 2 | A template for creating a __worldwindjs__ geo-browser web app with Bootstrap and Knockout. 3 | 4 | This project template lets you quickly build a [WorldWindJS](https://emxsys.github.io/worldwindjs) 5 | web app using [Bootstrap](https://getbootstrap.com/docs/4.0/getting-started/introduction/) 6 | and [Knockout](http://knockoutjs.com/index.html). You will build a feature-rich, responsive, 7 | customizable web app ready to be deployed to your site. This template includes: 8 | 9 | - Initializing WorldWindJS with 3D globes and/or 2D maps 10 | - Configuring and managing layers and settings 11 | - Place name searches and geocoding 12 | - Creating placemarks 13 | - Going to locations 14 | - Multi-globe support 15 | 16 | Here's what this template looks like online in GitHub pages: [worldwind-web-app](https://emxsys.github.io/worldwind-web-app) 17 | 18 | ## Quick Start 19 | 20 | 1. Copy the __web-app-template__ folder contents to root of a web app project. 21 | 2. Copy __worldind.min.js__ and/or __worldwind.js__ from the build/dist folder or from the releases to your web app project. 22 | 3. Unzip __images.zip__ found in the build/dist folder or in releases to the root of your web app project. 23 | 4. Edit __index.hmtl__ and ensure a correct path to either __worldwind.js__ or __worldwind.min.js__ 24 | 5. Edit __app.js__ and ensure the a correct path to images like pushpins 25 | 26 | 27 | ## More Information 28 | 29 | - View the tutorial "[How to Build a WorldWind Web App](https://emxsys.github.io/worldwind-web-app-tutorial/)" 30 | - Are you interested in building a WorldWind web app using [React](https://reactjs.org)? Check out the [worldwind-react-app](https://github.com/emxsys/worldwind-react-app) project. 31 | 32 | -------------------------------------------------------------------------------- /apps/web-app-template/world.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/apps/web-app-template/world.png -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman 2 | title: WorldWindJS 3 | description: Build geo-browser web apps with WorldWindJS, a community supported and enhanced Web WorldWind library. 4 | google_analytics: UA-10395973-13 5 | show_downloads: true 6 | github: 7 | zip_url: https://github.com/emxsys/worldwindjs/archive/v1.6.90.zip 8 | tar_url: https://github.com/emxsys/worldwindjs/archive/v1.6.90.tar.gz 9 | plugins: 10 | - jekyll-mentions 11 | - jemoji 12 | - jekyll-redirect-from 13 | - jekyll-sitemap 14 | - jekyll-feed 15 | - jekyll-seo-tag 16 | -------------------------------------------------------------------------------- /docs/emxsys_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/docs/emxsys_logo.png -------------------------------------------------------------------------------- /docs/lesson-4.md: -------------------------------------------------------------------------------- 1 | # How to Build a WorldWindJS Web App 2 | 3 | ## Lesson 4: Place Search and Geocoding 4 | 5 | --- 6 | 7 | ### Next Steps: 8 | - [Home](index.md) 9 | - [Lesson 1: HTML with Bootstrap](lesson-1.md) 10 | - [Lesson 2: WorldWind Globe](lesson-2.md) 11 | - [Lesson 3: Layer Management with Knockout](lesson-3.md) 12 | - [Lesson 4: Place Search and Geocoding](lesson-4.md) 13 | -------------------------------------------------------------------------------- /examples/BasicExample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/BlueMarbleTimeSeries.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
    16 | 19 |
    20 |
    21 |

    Projection

    22 | 24 |
    25 |

    Layers

    26 |
    27 |
    28 |
    29 |
    30 | 32 | Your browser does not support HTML5 Canvas. 33 | 34 |
    35 |
    36 |
    37 | 38 | 39 | -------------------------------------------------------------------------------- /examples/Canyon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 11 | 12 | 13 | 14 | 15 |
    16 |
    17 |

    WorldWind Grand Canyon Animation

    18 |
    19 |
    20 |
    21 |
    22 | 23 | 24 |
    25 |
    26 |
    27 | 28 | Your browser does not support HTML5 Canvas. 29 | 30 |
    31 |
    32 |
    33 | 34 | -------------------------------------------------------------------------------- /examples/Collada.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
    17 | 20 |
    21 |
    22 |

    Projection

    23 | 25 |
    26 |

    Layers

    27 |
    28 |
    29 |
    30 |
    31 | 33 | Your browser does not support HTML5 Canvas. 34 | 35 |
    36 |
    37 |
    38 | 39 | 40 | -------------------------------------------------------------------------------- /examples/Configuration.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/CustomPlacemark.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/DeepPicking.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/DigitalGlobe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/GeoJSON.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/GeoJSONExporter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |

    GeoJSON Exporter

    39 | 40 | 41 |
    42 |
    43 | 45 | Your browser does not support HTML5 Canvas. 46 | 47 |
    48 |
    49 |
    50 | 51 | 52 | -------------------------------------------------------------------------------- /examples/GeoTiff.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
    17 | 20 |
    21 |
    22 |

    Projection

    23 | 25 |
    26 |

    Layers

    27 |
    28 |
    29 |
    30 |

    Destination

    31 | 39 |
    40 |
    41 | 43 | Your browser does not support HTML5 Canvas. 44 | 45 |
    46 |
    47 |
    48 | 49 | -------------------------------------------------------------------------------- /examples/GeographicMeshes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/GeographicText.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/GoToLocation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/HeatMap.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/MultiWindow.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WorldWind Multi-window Example 8 | 9 | 10 | 11 |
    12 |
    13 | 14 | Your browser does not support HTML5 Canvas. 15 | 16 |
    17 |
    18 | 19 | 20 |
    21 |
    22 | 23 | 24 |
    25 |
    26 | 27 | -------------------------------------------------------------------------------- /examples/ParseUrlArguments.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/Paths.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/PickAllShapesInRegion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/PlacemarksAndPicking.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/Polygons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/RefreshImagery.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/ScreenImage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/ScreenText.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/Shapefiles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/SimplestExample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | WorldWind Simplest Example 7 | 8 | 9 | 10 | 11 |
    12 | 13 | 14 | Your browser does not support HTML5 Canvas. 15 | 16 |
    17 | 36 | 37 | -------------------------------------------------------------------------------- /examples/SurfaceImage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/SurfaceShapes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/TestMovingSurfaceShapes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 |
    16 | 19 |
    20 |
    21 |

    Projection

    22 | 24 |
    25 |

    Layers

    26 |
    27 |
    28 |
    29 |

    Destination

    30 | 38 |
    39 |
    40 | 42 | Your browser does not support HTML5 Canvas. 43 | 44 |
    45 |
    46 |
    47 | 48 | -------------------------------------------------------------------------------- /examples/TriangleMeshes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/WMS.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/WMTS.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 41 | Your browser does not support HTML5 Canvas. 42 | 43 |
    44 |
    45 |
    46 | 47 | -------------------------------------------------------------------------------- /examples/WktExporter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |

    WKT Exporter

    39 | 40 | 41 |
    42 |
    43 | 45 | Your browser does not support HTML5 Canvas. 46 | 47 |
    48 |
    49 |
    50 | 51 | 52 | -------------------------------------------------------------------------------- /examples/WorldWindShim.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This shim is used to switch between the individual WorldWind source files and the minified single file library for 3 | * the WorldWind module. Switching allows locally developed examples to run from the individual WorldWind source files 4 | * and hosted examples to use the faster to download minified library. A shim is not required for the use of WorldWind. 5 | * The minified library (worldwind.min.js) is recommended for use in deployed applications. 6 | */ 7 | define(['../src/WorldWind'], function (WorldWind) { 8 | "use strict"; 9 | 10 | return WorldWind; 11 | }); 12 | -------------------------------------------------------------------------------- /examples/collada_models/duck/duckCM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/collada_models/duck/duckCM.png -------------------------------------------------------------------------------- /examples/data/400x230-splash-nww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/400x230-splash-nww.png -------------------------------------------------------------------------------- /examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T32UQB.tif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T32UQB.tif.png -------------------------------------------------------------------------------- /examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T33UUS.tif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T33UUS.tif.png -------------------------------------------------------------------------------- /examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T33UVS.tif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150803T101010_A000591_T33UVS.tif.png -------------------------------------------------------------------------------- /examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150810T100716_A000691_T33UVP.tif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150810T100716_A000691_T33UVP.tif.png -------------------------------------------------------------------------------- /examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150813T101657_A000734_T32UQA.tif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150813T101657_A000734_T32UQA.tif.png -------------------------------------------------------------------------------- /examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150813T101657_A000734_T32UQV.tif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/S2A_OPER_MTD_L1C_TL_EPA__20150813T101657_A000734_T32UQV.tif.png -------------------------------------------------------------------------------- /examples/data/esa_logo_min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/esa_logo_min.png -------------------------------------------------------------------------------- /examples/data/etna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/etna.jpg -------------------------------------------------------------------------------- /examples/data/etna.kmz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/etna.kmz -------------------------------------------------------------------------------- /examples/data/etnaOverlay.kml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | KML Samples 5 | 1 6 | 1 7 | Unleash your creativity with the help of these examples! 8 | 9 | Ground Overlays 10 | Examples of ground overlays 11 | 12 | Large-scale overlay on terrain 13 | Overlay shows Mount Etna erupting 14 | on July 13th, 2001. 15 | 16 | 17 | data/etna.jpg 18 | 19 | 20 | 37.91904192681665 21 | 37.46543388598137 22 | 15.35832653742206 23 | 14.60128369746704 24 | -0.1556640799496235 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /examples/data/surface-image-nearest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/surface-image-nearest.png -------------------------------------------------------------------------------- /examples/data/top_left.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/examples/data/top_left.jpg -------------------------------------------------------------------------------- /images/BMNG_world.topo.bathy.200405.3.2048x1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/BMNG_world.topo.bathy.200405.3.2048x1024.jpg -------------------------------------------------------------------------------- /images/blue-dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/blue-dot.png -------------------------------------------------------------------------------- /images/crosshair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/crosshair.png -------------------------------------------------------------------------------- /images/dnb_land_ocean_ice_2012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/dnb_land_ocean_ice_2012.png -------------------------------------------------------------------------------- /images/gray-dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/gray-dot.png -------------------------------------------------------------------------------- /images/green-dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/green-dot.png -------------------------------------------------------------------------------- /images/notched-compass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/notched-compass.png -------------------------------------------------------------------------------- /images/powered-by-bing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/powered-by-bing.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-black.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-blue.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-brown.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-gray.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-green.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-orange.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-purple.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-red.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-teal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-teal.png -------------------------------------------------------------------------------- /images/pushpins/castshadow-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/castshadow-white.png -------------------------------------------------------------------------------- /images/pushpins/plain-black-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-black-transparent.png -------------------------------------------------------------------------------- /images/pushpins/plain-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-black.png -------------------------------------------------------------------------------- /images/pushpins/plain-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-blue.png -------------------------------------------------------------------------------- /images/pushpins/plain-brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-brown.png -------------------------------------------------------------------------------- /images/pushpins/plain-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-gray.png -------------------------------------------------------------------------------- /images/pushpins/plain-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-green.png -------------------------------------------------------------------------------- /images/pushpins/plain-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-orange.png -------------------------------------------------------------------------------- /images/pushpins/plain-purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-purple.png -------------------------------------------------------------------------------- /images/pushpins/plain-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-red.png -------------------------------------------------------------------------------- /images/pushpins/plain-teal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-teal.png -------------------------------------------------------------------------------- /images/pushpins/plain-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-white.png -------------------------------------------------------------------------------- /images/pushpins/plain-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/plain-yellow.png -------------------------------------------------------------------------------- /images/pushpins/push-pin-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/push-pin-red.png -------------------------------------------------------------------------------- /images/pushpins/push-pin-yellow-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/push-pin-yellow-32.png -------------------------------------------------------------------------------- /images/pushpins/push-pin-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/pushpins/push-pin-yellow.png -------------------------------------------------------------------------------- /images/sunTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/sunTexture.png -------------------------------------------------------------------------------- /images/view/view-elevation-down-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-elevation-down-32x32.png -------------------------------------------------------------------------------- /images/view/view-elevation-up-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-elevation-up-32x32.png -------------------------------------------------------------------------------- /images/view/view-fov-narrow-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-fov-narrow-32x32.png -------------------------------------------------------------------------------- /images/view/view-fov-wide-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-fov-wide-32x32.png -------------------------------------------------------------------------------- /images/view/view-heading-left-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-heading-left-32x32.png -------------------------------------------------------------------------------- /images/view/view-heading-right-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-heading-right-32x32.png -------------------------------------------------------------------------------- /images/view/view-look-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-look-64x64.png -------------------------------------------------------------------------------- /images/view/view-pan-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-pan-64x64.png -------------------------------------------------------------------------------- /images/view/view-pitch-down-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-pitch-down-32x32.png -------------------------------------------------------------------------------- /images/view/view-pitch-up-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-pitch-up-32x32.png -------------------------------------------------------------------------------- /images/view/view-zoom-in-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-zoom-in-32x32.png -------------------------------------------------------------------------------- /images/view/view-zoom-out-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/view/view-zoom-out-32x32.png -------------------------------------------------------------------------------- /images/white-dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/white-dot.png -------------------------------------------------------------------------------- /images/yellow-dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/images/yellow-dot.png -------------------------------------------------------------------------------- /nbproject/project.properties: -------------------------------------------------------------------------------- 1 | auxiliary.org-netbeans-modules-javascript-nodejs.run_2e_enabled=false 2 | browser.autorefresh.Chrome=true 3 | browser.highlightselection.Chrome=true 4 | browser.run=true 5 | file.reference.Projects-worldwindjs=. 6 | file.reference.worldwindjs-examples=examples 7 | file.reference.worldwindjs-src=src 8 | file.reference.worldwindjs-test=test 9 | files.encoding=UTF-8 10 | project.license=apache20 11 | site.root.folder=${file.reference.Projects-worldwindjs} 12 | source.folder=${file.reference.worldwindjs-src} 13 | start.file=apps/web-app-template/index.html 14 | test.folder=${file.reference.worldwindjs-test} 15 | web.context.root=/ 16 | -------------------------------------------------------------------------------- /nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.web.clientproject 4 | 5 | 6 | WorldWindJS 7 | 8 | 9 | API 10 | JavaScript 11 | NodeJS 12 | npm 13 | WebWorldWind 14 | WorldWind 15 | WorldWindJS 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "worldwindjs", 3 | "version": "1.9.5", 4 | "description": "WorldWindJS is an interactive 3D globe library featuring imagery, maps, terrain and 2D projections from the Web WorldWind virtual globe SDK from NASA and ESA plus several community contributions.", 5 | "main": "build/dist/worldwind.min.js", 6 | "homepage": "https://emxsys.github.io/worldwindjs/", 7 | "bugs": { 8 | "url": "https://github.com/emxsys/worldwindjs/issues" 9 | }, 10 | "license": "Apache-2.0", 11 | "author": "NASA", 12 | "contributors": [ 13 | "NASA Project Manager ", 14 | "ESA Consortium Contact ", 15 | "Bruce Schubert 2 | 3 | 4 | 5 | 6 | 7 | 8 | WorldWind Deep Picking Performance 9 | 10 | 11 | 12 | 14 | 15 | 16 |
    17 | 20 |
    21 |
    22 |

    Projection

    23 | 25 |
    26 |

    Layers

    27 |
    28 |
    29 |
    30 |

    Destination

    31 | 39 |
    40 |
    41 | 42 | Your browser does not support HTML5 Canvas. 43 | 44 |
    45 |
    46 |
    47 | 48 | -------------------------------------------------------------------------------- /performance/ShapefilesComplex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 40 | Your browser does not support HTML5 Canvas. 41 | 42 |
    43 |
    44 |
    45 | 46 | 47 | -------------------------------------------------------------------------------- /performance/SurfaceShapesComplex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |

    Destination

    29 | 37 |
    38 |
    39 | 40 | Your browser does not support HTML5 Canvas. 41 | 42 |
    43 |
    44 |
    45 | 46 | 47 | -------------------------------------------------------------------------------- /performance/VeryManyPaths.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |
    29 | 30 | Your browser does not support HTML5 Canvas. 31 | 32 |
    33 |
    34 |
    35 | 36 | -------------------------------------------------------------------------------- /performance/VeryManyPolygons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 18 |
    19 |
    20 |

    Projection

    21 | 23 |
    24 |

    Layers

    25 |
    26 |
    27 |
    28 |
    29 | 30 | Your browser does not support HTML5 Canvas. 31 | 32 |
    33 |
    34 |
    35 | 36 | -------------------------------------------------------------------------------- /src/error/AbstractError.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports AbstractError 30 | */ 31 | define(function () { 32 | "use strict"; 33 | 34 | /** 35 | * Constructs an error with a specified name and message. 36 | * @alias AbstractError 37 | * @constructor 38 | * @abstract 39 | * @classdesc Provides an abstract base class for error classes. This class is not meant to be instantiated 40 | * directly but used only by subclasses. 41 | * @param {String} name The error's name. 42 | * @param {String} message The message. 43 | */ 44 | var AbstractError = function (name, message) { 45 | this.name = name; 46 | this.message = message; 47 | }; 48 | 49 | /** 50 | * Returns the message and stack trace associated with this error. 51 | * @returns {String} The message and stack trace associated with this error. 52 | */ 53 | AbstractError.prototype.toString = function () { 54 | var str = this.name + ': ' + this.message; 55 | 56 | if (this.stack) { 57 | str += '\n' + this.stack.toString(); 58 | } 59 | 60 | return str; 61 | }; 62 | 63 | return AbstractError; 64 | 65 | }); -------------------------------------------------------------------------------- /src/error/ArgumentError.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports ArgumentError 30 | */ 31 | define(['../error/AbstractError'], 32 | function (AbstractError) { 33 | "use strict"; 34 | 35 | /** 36 | * Constructs an argument error with a specified message. 37 | * @alias ArgumentError 38 | * @constructor 39 | * @classdesc Represents an error associated with invalid function arguments. 40 | * @augments AbstractError 41 | * @param {String} message The message. 42 | */ 43 | var ArgumentError = function (message) { 44 | AbstractError.call(this, "ArgumentError", message); 45 | 46 | var stack; 47 | try { 48 | //noinspection ExceptionCaughtLocallyJS 49 | throw new Error(); 50 | } catch (e) { 51 | stack = e.stack; 52 | } 53 | this.stack = stack; 54 | }; 55 | 56 | ArgumentError.prototype = Object.create(AbstractError.prototype); 57 | 58 | return ArgumentError; 59 | }); -------------------------------------------------------------------------------- /src/error/NotYetImplementedError.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports NotYetImplementedError 30 | */ 31 | define(['../error/AbstractError'], 32 | function (AbstractError) { 33 | "use strict"; 34 | 35 | /** 36 | * Constructs a not-yet-implemented error with a specified message. 37 | * @alias NotYetImplementedError 38 | * @constructor 39 | * @classdesc Represents an error associated with an operation that is not yet implemented. 40 | * @augments AbstractError 41 | * @param {String} message The message. 42 | */ 43 | var NotYetImplementedError = function (message) { 44 | AbstractError.call(this, "NotYetImplementedError", message); 45 | 46 | var stack; 47 | try { 48 | //noinspection ExceptionCaughtLocallyJS 49 | throw new Error(); 50 | } catch (e) { 51 | stack = e.stack; 52 | } 53 | this.stack = stack; 54 | }; 55 | 56 | NotYetImplementedError.prototype = Object.create(AbstractError.prototype); 57 | 58 | return NotYetImplementedError; 59 | }); -------------------------------------------------------------------------------- /src/formats/aaigrid/AAIGridConstants.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([], 29 | function () { 30 | 'use strict'; 31 | 32 | /** 33 | * Provides constants for the AAIGridReader. 34 | * @exports AAIGridConstants 35 | */ 36 | var AAIGridConstants = { 37 | N_COLS: 'ncols', 38 | N_ROWS:'nrows', 39 | X_LL_CORNER: 'xllcorner', 40 | Y_LL_CORNER: 'yllcorner', 41 | CELL_SIZE: 'cellsize', 42 | NO_DATA_VALUE: 'NODATA_value' 43 | }; 44 | 45 | return AAIGridConstants; 46 | }); -------------------------------------------------------------------------------- /src/formats/kml/controls/KmlControls.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define(['../../../util/Logger'], function (Logger) { 29 | "use strict"; 30 | /** 31 | * Every control used by the KML should inherit from this class. It contains common functionality and basically 32 | * serves as a reference to what needs to be implemented in the descendants. 33 | * @alias KmlControls 34 | * @constructor 35 | */ 36 | var KmlControls = function() { 37 | 38 | }; 39 | 40 | /** 41 | * Controls added to the KML document will be notified by the update of the Kml document. Hook is method which is 42 | * called once, when the element is updated. It is necessary to be careful and hook the element only once. The 43 | * other solution is to make sure the ids will be used correctly. 44 | */ 45 | KmlControls.prototype.hook = function() { 46 | Logger.logMessage(Logger.LEVEL_WARNING, "KmlControls", "hook", "Every KML controls should override hook" + 47 | " method."); 48 | }; 49 | 50 | return KmlControls; 51 | }); -------------------------------------------------------------------------------- /src/formats/kml/styles/KmlStyleSelector.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | './../KmlObject' 30 | ], function (KmlObject) { 31 | "use strict"; 32 | /** 33 | * Constructs an KmlStyleSelector. Application usually don't call this constructor. It is called by {@link KmlFile} 34 | * as Objects from KmlFile are read. 35 | * @alias KmlStyleSelector 36 | * @constructor 37 | * @classdesc Contains the data associated with Kml style selector 38 | * @param options {Object} 39 | * @param options.objectNode {Node} Node representing the Kml style selector. 40 | * @throws {ArgumentError} If either the node is null or undefined. 41 | * @see https://developers.google.com/kml/documentation/kmlreference#styleselector 42 | * @augments KmlObject 43 | */ 44 | var KmlStyleSelector = function (options) { 45 | KmlObject.call(this, options); 46 | }; 47 | 48 | KmlStyleSelector.prototype = Object.create(KmlObject.prototype); 49 | 50 | /** 51 | * @inheritDoc 52 | */ 53 | KmlStyleSelector.prototype.getTagNames = function () { 54 | return ['Style', 'StyleMap']; 55 | }; 56 | 57 | return KmlStyleSelector; 58 | }); -------------------------------------------------------------------------------- /src/formats/kml/util/KmlChange.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | '../KmlElements', 30 | '../KmlObject' 31 | ], function(KmlElements, 32 | KmlObject){ 33 | /** 34 | * @augment KmlObject 35 | * @param options 36 | * @constructor 37 | * @alias KmlChange 38 | */ 39 | var KmlChange = function(options) { 40 | KmlObject.call(this, options); 41 | }; 42 | 43 | KmlChange.prototype = Object.create(KmlObject.prototype); 44 | 45 | Object.defineProperties(KmlChange.prototype, { 46 | /** 47 | * All shapes which should be changed with the location where they should be changed. 48 | * @memberof KmlChange.prototype 49 | * @readonly 50 | * @type {KmlObject[]} 51 | */ 52 | shapes: { 53 | get: function(){ 54 | return this._factory.all(this); 55 | } 56 | } 57 | }); 58 | 59 | /** 60 | * @inheritDoc 61 | */ 62 | KmlChange.prototype.getTagNames = function() { 63 | return ['Change']; 64 | }; 65 | 66 | KmlElements.addKey(KmlChange.prototype.getTagNames()[0], KmlChange); 67 | 68 | return KmlChange; 69 | }); -------------------------------------------------------------------------------- /src/formats/kml/util/KmlCreate.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | '../KmlElements', 30 | '../KmlObject' 31 | ], function(KmlElements, 32 | KmlObject){ 33 | /** 34 | * 35 | * @param options {Object} 36 | * @augments KmlObject 37 | * @constructor 38 | * @alias KmlCreate 39 | */ 40 | var KmlCreate = function(options) { 41 | KmlObject.call(this, options); 42 | }; 43 | 44 | KmlCreate.prototype = Object.create(KmlObject.prototype); 45 | 46 | Object.defineProperties(KmlCreate.prototype, { 47 | /** 48 | * All shapes which should be created with the location where they should be created. 49 | * @memberof KmlCreate.prototype 50 | * @readonly 51 | * @type {KmlObject[]} 52 | */ 53 | shapes: { 54 | get: function(){ 55 | return this._factory.all(this); 56 | } 57 | } 58 | }); 59 | 60 | /** 61 | * @inheritDoc 62 | */ 63 | KmlCreate.prototype.getTagNames = function() { 64 | return ['Create']; 65 | }; 66 | 67 | KmlElements.addKey(KmlCreate.prototype.getTagNames()[0], KmlCreate); 68 | 69 | return KmlCreate; 70 | }); -------------------------------------------------------------------------------- /src/formats/kml/util/KmlDelete.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | '../KmlElements', 30 | '../KmlObject' 31 | ], function(KmlElements, 32 | KmlObject){ 33 | /** 34 | * @augments KmlObject 35 | * @param options 36 | * @constructor 37 | * @alias KmlDelete 38 | */ 39 | var KmlDelete = function(options) { 40 | KmlObject.call(this, options); 41 | }; 42 | 43 | KmlDelete.prototype = Object.create(KmlObject.prototype); 44 | 45 | Object.defineProperties(KmlDelete.prototype, { 46 | /** 47 | * All shapes which should be deleted 48 | * @memberof KmlDelete.prototype 49 | * @readonly 50 | * @type {KmlObject[]} 51 | */ 52 | shapes: { 53 | get: function(){ 54 | return this._factory.all(this); 55 | } 56 | } 57 | }); 58 | 59 | /** 60 | * @inheritDoc 61 | */ 62 | KmlDelete.prototype.getTagNames = function() { 63 | return ['Delete']; 64 | }; 65 | 66 | KmlElements.addKey(KmlDelete.prototype.getTagNames()[0], KmlDelete); 67 | 68 | return KmlDelete; 69 | }); -------------------------------------------------------------------------------- /src/formats/kml/util/KmlRefreshListener.js: -------------------------------------------------------------------------------- 1 | define([], function(){ 2 | /** 3 | * Utility class which is associated with every Kml file. It allows parts of the KML to ask for the refresh which will happen in the correct time. 4 | * Main usage is in the different modes of refresh in the NetworkLink / Link. 5 | * The refresh listener works in this fashion: 6 | * User, which is some of the classes supporting refreshes adds event to the Refresh listener. Event has some content and 7 | * @constructor 8 | * @alias KmlRefreshListener 9 | */ 10 | var KmlRefreshListener = function(){ 11 | this.currentActiveEvents = []; 12 | }; 13 | 14 | /** 15 | * It adds event which should be scheduled later on. It is necessary to store it in a structure, which will return 16 | * what is to be scheduled in a fast manner. 17 | * @param event {KmlRefreshListener.Event} Event which should be part of the Refresh listeners internals. 18 | */ 19 | KmlRefreshListener.prototype.addEvent = function(event) { 20 | var self = this; 21 | setTimeout(function(){ 22 | self.currentActiveEvents.push(event); 23 | }, event.time); 24 | }; 25 | 26 | /** 27 | * All events, which weren't scheduled and should still be. 28 | * @return {KmlRefreshListener.Event[]} It returns all events which should have been scheduled by now. 29 | */ 30 | KmlRefreshListener.prototype.getActiveEvents = function() { 31 | var activeEvents = this.currentActiveEvents.slice(); 32 | this.currentActiveEvents = []; 33 | return activeEvents; 34 | }; 35 | 36 | /** 37 | * It represents simple Event used inside of the KmlRefreshListener. 38 | * @alias KmlRefreshListener.Event 39 | * @constructor 40 | * @param type {String} type of the event. The consumers decides whether the event is relevant for them based on this type. 41 | * @param payload {Object} Object representing payload of the event. It is possible to schedule event with some additional information 42 | * @param time {Number} Number of milliseconds before the event should occur. 43 | */ 44 | KmlRefreshListener.Event = function(type, time, payload) { 45 | this.type = type; 46 | this.payload = payload; 47 | this.time = time; 48 | }; 49 | 50 | return KmlRefreshListener; 51 | }); -------------------------------------------------------------------------------- /src/formats/wkt/WktElements.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([], function () { 29 | //noinspection UnnecessaryLocalVariableJS 30 | /** 31 | * Map representing the available elements. Basically this is a way to overcome circular dependencies issues. They 32 | * might happen when there are inter dependencies among objects. It shouldn't happen in case of WKT. 33 | * @exports WktElements 34 | */ 35 | var WktElements = { 36 | }; 37 | 38 | return WktElements; 39 | }); -------------------------------------------------------------------------------- /src/globe/Globe2D.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports Globe2D 30 | */ 31 | define(['../globe/ElevationModel', 32 | '../globe/Globe', 33 | '../projections/ProjectionEquirectangular' 34 | ], 35 | function (ElevationModel, 36 | Globe, 37 | ProjectionEquirectangular) { 38 | "use strict"; 39 | 40 | /** 41 | * Constructs a 2D globe with a default {@link ElevationModel} and 42 | * [equirectangular projection]{@link ProjectionEquirectangular}. 43 | * @alias Globe2D 44 | * @constructor 45 | * @augments Globe 46 | * @classdesc Represents a 2D flat globe with a configurable projection. 47 | * The default rectangular projection scrolls longitudinally. 48 | */ 49 | var Globe2D = function () { 50 | Globe.call(this, new ElevationModel(), new ProjectionEquirectangular()); 51 | }; 52 | 53 | Globe2D.prototype = Object.create(Globe.prototype); 54 | 55 | return Globe2D; 56 | }); -------------------------------------------------------------------------------- /src/layer/BingWMSLayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports BingWMSLayer 30 | */ 31 | define([ 32 | '../geom/Location', 33 | '../geom/Sector', 34 | '../layer/TiledImageLayer', 35 | '../util/WmsUrlBuilder' 36 | ], 37 | function (Location, 38 | Sector, 39 | TiledImageLayer, 40 | WmsUrlBuilder) { 41 | "use strict"; 42 | 43 | // Intentionally not documented. For diagnostic use only. 44 | var BingWMSLayer = function () { 45 | TiledImageLayer.call(this, 46 | Sector.FULL_SPHERE, new Location(45, 45), 16, "image/png", "BingWMS", 256, 256); 47 | 48 | this.displayName = "Bing WMS"; 49 | this.pickEnabled = false; 50 | this.maxActiveAltitude = 10e3; 51 | 52 | this.urlBuilder = new WmsUrlBuilder("https://worldwind27.arc.nasa.gov/wms/virtualearth", "ve", "", "1.3.0"); 53 | }; 54 | 55 | BingWMSLayer.prototype = Object.create(TiledImageLayer.prototype); 56 | 57 | return BingWMSLayer; 58 | }); -------------------------------------------------------------------------------- /src/layer/heatmap/HeatMapIntervalType.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([], function(){ 29 | "use strict"; 30 | 31 | /** 32 | * Enumeration of different approaches towards the interval and color scales in case of HeatMap layer. 33 | * Continuous - The distribution of the colors in the color scale is even based on the measure. This is good for the 34 | * data sets with even distribution. 35 | * Quantiles - The distribution of the colors in the color scale is uneven based on the value. It is distributed evenly 36 | * based on the measure for the lowest 10%, 10% to 20% and so on. Basically it categorizes measures based on to which 37 | * quantile the measure belongs. This is good for data sets with uneven distribution. 38 | * @exports HeatMapIntervalType 39 | * @type {{CONTINUOUS: number, QUANTILES: number}} 40 | */ 41 | var HeatMapIntervalType = { 42 | CONTINUOUS: 0, 43 | QUANTILES: 1 44 | }; 45 | 46 | return HeatMapIntervalType; 47 | }); -------------------------------------------------------------------------------- /src/ogc/ows/OwsKeywords.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports OwsKeywords 30 | */ 31 | define([ 32 | '../../error/ArgumentError', 33 | '../../util/Logger', 34 | '../../ogc/ows/OwsLanguageString' 35 | ], 36 | function (ArgumentError, 37 | Logger, 38 | OwsLanguageString) { 39 | "use strict"; 40 | 41 | var OwsKeywords = function (element) { 42 | if (!element) { 43 | throw new ArgumentError( 44 | Logger.logMessage(Logger.LEVEL_SEVERE, "OwsKeywords", "constructor", "missingDomElement")); 45 | } 46 | 47 | var children = element.children || element.childNodes; 48 | for (var c = 0; c < children.length; c++) { 49 | var child = children[c]; 50 | 51 | if (child.localName === "keyword") { 52 | this.keywords = this.keywords || []; 53 | this.keywords.push(new OwsLanguageString(child)); 54 | } 55 | } 56 | }; 57 | 58 | return OwsKeywords; 59 | }); 60 | -------------------------------------------------------------------------------- /src/util/Promise.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define(['./es6-promise'], 29 | function (LegacyPromise) { 30 | "use strict"; 31 | if (window.Promise) { 32 | return window.Promise; 33 | } else { 34 | return LegacyPromise.Promise; 35 | } 36 | }); -------------------------------------------------------------------------------- /src/util/WWMessage.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | /** 29 | * @exports WWMessage 30 | */ 31 | define([], 32 | function () { 33 | "use strict"; 34 | 35 | /** 36 | * Create a WWMessage instance. 37 | * @classdesc Defines a class to hold message information. 38 | * @param {String} type The message type. 39 | * @param {{}} source The source of the message. 40 | * @constructor 41 | */ 42 | var WWMessage = function(type, source) { 43 | 44 | /** 45 | * This object's message type. 46 | * @type {String} 47 | * @readonly 48 | */ 49 | this.type = type; 50 | 51 | /** 52 | * The source object of this message. 53 | * @type {{}} 54 | * @readonly 55 | */ 56 | this.source = source; 57 | }; 58 | 59 | return WWMessage; 60 | } 61 | ); -------------------------------------------------------------------------------- /src/util/editor/ShapeEditorConstants.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, United States Government, as represented by the Administrator of the 3 | * National Aeronautics and Space Administration. All rights reserved. 4 | * 5 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | define([], 18 | function () { 19 | 'use strict'; 20 | 21 | /** 22 | * Provides constants for the ShapeEditor. 23 | * @exports ShapeEditorConstants 24 | */ 25 | var ShapeEditorConstants = { 26 | 27 | // Indicates a control point controlling a location. 28 | LOCATION: "location", 29 | 30 | // Indicates a control point controlling the rotation of shape. 31 | ROTATION: "rotation", 32 | 33 | // Indicates a control point controlling the width of a shape. 34 | WIDTH: "width", 35 | 36 | // Indicates a control point controlling the height of a shape. 37 | HEIGHT: "height", 38 | 39 | // Indicates a control point controlling the radius of a shape. 40 | RADIUS: "radius", 41 | 42 | // Indicates that an entire shape is being dragged. 43 | DRAG: "drag", 44 | 45 | // Indicates the corner with min latitude for a surface sector 46 | MIN_CORNER: "min_corner", 47 | 48 | // Indicates the corner with max latitude for a surface sector 49 | MAX_CORNER: "max_corner", 50 | 51 | // Indicates a control point that marks the middle of a segment. 52 | SHADOW: "shadow" 53 | }; 54 | 55 | return ShapeEditorConstants; 56 | }); -------------------------------------------------------------------------------- /test/formats/geotiff/grayscale-test.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/test/formats/geotiff/grayscale-test.tif -------------------------------------------------------------------------------- /test/formats/geotiff/rgb-test.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WorldWindEarth/worldwindjs/99177930e60456d0a5961f61814e694d299bf474/test/formats/geotiff/rgb-test.tif -------------------------------------------------------------------------------- /test/formats/kml/KmlAbstractView.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/KmlAbstractView', 30 | 'src/formats/kml/KmlTimeSpan', 31 | 'src/util/XmlDocument' 32 | ], function ( KmlAbstractView, 33 | KmlTimeSpan, 34 | XmlDocument){ 35 | "use strict"; 36 | 37 | describe("KmlAbstractViewTest", function () { 38 | var validKml = "" + 39 | "" + 40 | "" + 41 | "" + 42 | "" + 43 | ""; 44 | var kmlRepresentation = new XmlDocument(validKml).dom(); 45 | var overlay = new KmlAbstractView({ 46 | objectNode: kmlRepresentation.getElementsByTagName("AbstractView")[0] 47 | }); 48 | 49 | it ("should have the prototype property of KmlTimeSpan", function () { 50 | expect(overlay.kmlTimePrimitive instanceof KmlTimeSpan).toBeTruthy(); 51 | }) 52 | }); 53 | }); 54 | 55 | -------------------------------------------------------------------------------- /test/formats/kml/KmlFile.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | var WorldWind = {}; 29 | define([ 30 | 'src/formats/kml/KmlFile' 31 | ], function (KmlFile) { 32 | "use strict"; 33 | WorldWind.KmlFile = KmlFile; 34 | 35 | describe("KmlFile", function () { 36 | describe("testLoadingKmlFromRelativeRemote", function () { 37 | var kmlLocation = "../base/examples/data/KML_Samples.kml"; 38 | var loadedFile = false; 39 | 40 | beforeEach(function (done) { 41 | new KmlFile(kmlLocation).then(function () { 42 | loadedFile = true; 43 | done(); 44 | }).catch(function (err) { 45 | done(err); 46 | }); 47 | }); 48 | 49 | it('should be loaded from a remote document', function () { 50 | expect(loadedFile).toEqual(true); 51 | }); 52 | }); 53 | }); 54 | }); 55 | -------------------------------------------------------------------------------- /test/formats/kml/KmlLocation.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/KmlLocation', 30 | 'src/util/XmlDocument' 31 | ], function ( 32 | KmlLocation, 33 | XmlDocument 34 | ) { 35 | "use strict"; 36 | describe("KmlLocationTest", function () { 37 | var validKml = "" + 38 | "" + 39 | "" + 40 | " 45.0" + 41 | " 10.0" + 42 | " 0.0" + 43 | "" + 44 | ""; 45 | var kmlRepresentation = new XmlDocument(validKml).dom(); 46 | var location = new KmlLocation({objectNode: 47 | kmlRepresentation.getElementsByTagName("Location")[0]}); 48 | it('should have the Longitude, Latitude and Altitude properties', function(){ 49 | 50 | expect(location.kmlLongitude).toBe('45.0'); 51 | expect(location.kmlLatitude).toBe('10.0'); 52 | expect(location.kmlAltitude).toBe('0.0'); 53 | }); 54 | }); 55 | }); -------------------------------------------------------------------------------- /test/formats/kml/KmlObject.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/KmlObject', 30 | 'src/formats/kml/geom/KmlPoint', 31 | 'src/util/XmlDocument' 32 | ], function( 33 | KmlObject, 34 | KmlPoint, 35 | XmlDocument 36 | ) { 37 | describe("KmlObjectTestCase", function () { 38 | describe("testUndefinedNode", function () { 39 | 40 | it('should raise an exception', function () { 41 | expect(function () { 42 | new KmlObject(); 43 | fail("Exception should have been thrown"); 44 | }).toThrow(); 45 | }); 46 | 47 | 48 | }); 49 | describe('testNullNode', function () { 50 | 51 | 52 | it('should raise an Argument Error exception', function () { 53 | expect(function () { 54 | new KmlObject(null, {}); 55 | fail("Exception should have been thrown")}).toThrow(); 56 | }); 57 | }); 58 | }); 59 | }); 60 | -------------------------------------------------------------------------------- /test/formats/kml/KmlOrientation.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/KmlOrientation', 30 | 'src/util/XmlDocument' 31 | ], function ( 32 | KmlOrientation, 33 | XmlDocument 34 | ) { 35 | "use strict"; 36 | describe("KmlOrientationTest",function () { 37 | var validKml = "" + 38 | "" + 39 | "" + 40 | " 45.0" + 41 | " 10.0" + 42 | " 0.0" + 43 | "" + 44 | ""; 45 | var kmlRepresentation = new XmlDocument(validKml).dom(); 46 | var orientation = new KmlOrientation({objectNode: 47 | kmlRepresentation.getElementsByTagName("Orientation")[0]}); 48 | it('should have the Heading, Tilt and Roll properties', function(){ 49 | 50 | expect(orientation.kmlHeading).toBe(45.0); 51 | expect(orientation.kmlTilt).toBe(10.0); 52 | expect(orientation.kmlRoll).toBe(0.0); 53 | }); 54 | }); 55 | }); -------------------------------------------------------------------------------- /test/formats/kml/KmlTimeSpan.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/util/XmlDocument', 30 | 'src/formats/kml/KmlTimeSpan' 31 | ], function( 32 | XmlDocument, 33 | KmlTimeSpan 34 | ){ 35 | describe("KmlTimeSpanTest", function() { 36 | var validTimeSpanXml = "" + 37 | "" + 38 | "" + 39 | " 1997-07-16T07:30:15Z" + 40 | " 1997-07-16T08:30:15Z" + 41 | "" + 42 | ""; 43 | 44 | var kmlRepresentation = new XmlDocument(validTimeSpanXml).dom(); 45 | var timeSpan = new KmlTimeSpan({objectNode:kmlRepresentation.getElementsByTagName("TimeSpan")[0], style: {}}); 46 | it('should have the begin and end properties', function(){ 47 | expect(timeSpan.kmlBegin.toUTCString()).toEqual("Wed, 16 Jul 1997 07:30:15 GMT"); 48 | expect(timeSpan.kmlEnd.toUTCString()).toEqual("Wed, 16 Jul 1997 08:30:15 GMT"); 49 | }); 50 | 51 | 52 | }); 53 | }); 54 | -------------------------------------------------------------------------------- /test/formats/kml/KmlTimeStamp.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/KmlTimeStamp', 30 | 'src/util/XmlDocument' 31 | ], function (KmlTimeStamp, 32 | XmlDocument) { 33 | describe ("KmlTimeStamp", function () { 34 | var validTimeStampXml = "" + 35 | "" + 36 | "" + 37 | " 1997-07-16T07:30:15Z" + 38 | "" + 39 | ""; 40 | 41 | var kmlRepresentation = new XmlDocument(validTimeStampXml).dom(); 42 | var timeStamp = new KmlTimeStamp({objectNode:kmlRepresentation.getElementsByTagName("TimeStamp")[0],style: {}}); 43 | it('should have the time property which specifies when exactly the event happen', function(){ 44 | expect(timeStamp.kmlWhen.toUTCString()).toBe("Wed, 16 Jul 1997 07:30:15 GMT"); 45 | }); 46 | 47 | 48 | }); 49 | }); 50 | -------------------------------------------------------------------------------- /test/formats/kml/features/KmlDocument.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define( [ 29 | 'src/formats/kml/features/KmlDocument', 30 | 'src/formats/kml/features/KmlPlacemark', 31 | 'src/util/XmlDocument' 32 | ], function ( 33 | KmlDocument, 34 | KmlPlacemark, 35 | XmlDocument 36 | ) { 37 | "use strict"; 38 | describe("KmlDocumentTest", function() { 39 | 40 | var validKml = "" + 41 | "" + 42 | "" + 43 | " " + 44 | "" + 45 | ""; 46 | var kmlRepresentation = new XmlDocument(validKml).dom(); 47 | var document = new KmlDocument({objectNode: 48 | kmlRepresentation.getElementsByTagName("Document")[0]}); 49 | it("should include shapes",function(){ 50 | expect(document.kmlShapes.length).toEqual(1); 51 | expect(document.kmlShapes[0] instanceof KmlPlacemark).toBeTruthy(); 52 | }); 53 | 54 | }); 55 | }); 56 | -------------------------------------------------------------------------------- /test/formats/kml/features/KmlFolder.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/features/KmlFolder', 30 | 'src/formats/kml/features/KmlPlacemark', 31 | 'src/util/XmlDocument' 32 | ], function ( 33 | KmlFolder, 34 | KmlPlacemark, 35 | XmlDocument 36 | ) { 37 | "use strict"; 38 | describe("KmlFolderTest", function() { 39 | 40 | var validKml = "" + 41 | "" + 42 | "" + 43 | " " + 44 | "" + 45 | ""; 46 | var kmlRepresentation = new XmlDocument(validKml).dom(); 47 | var folder = new KmlFolder({objectNode: 48 | kmlRepresentation.getElementsByTagName("Document")[0]}); 49 | it("it should contain documents",function(){ 50 | expect(folder.kmlShapes.length).toEqual(1); 51 | expect(folder.kmlShapes[0] instanceof KmlPlacemark).toBeTruthy(); 52 | }); 53 | }); 54 | }); -------------------------------------------------------------------------------- /test/formats/kml/features/KmlPlacemark.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/util/XmlDocument', 30 | 'src/formats/kml/features/KmlPlacemark', 31 | 'src/formats/kml/geom/KmlPoint' 32 | ], function ( 33 | XmlDocument, 34 | KmlPlacemark, 35 | KmlPoint 36 | ) { 37 | "use strict"; 38 | describe("KmlPlacemark", function(){ 39 | 40 | var validKml = "" + 41 | "" + 42 | "" + 43 | " " + 44 | " " + 45 | "" + 46 | ""; 47 | 48 | var kmlRepresentation = new XmlDocument(validKml).dom(); 49 | var placemark = new KmlPlacemark({objectNode: 50 | kmlRepresentation.getElementsByTagName("Placemark")[0]}); 51 | it ("should have the prototype properties of KmlPoint", function(){ 52 | expect(placemark.kmlGeometry instanceof KmlPoint).toBeTruthy(); 53 | }); 54 | 55 | }); 56 | }); 57 | -------------------------------------------------------------------------------- /test/formats/kml/features/KmlScreenOverlay.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/features/KmlScreenOverlay', 30 | 'src/util/XmlDocument' 31 | ], function ( 32 | KmlScreenOverlay, 33 | XmlDocument 34 | ) { 35 | "use strict"; 36 | describe("KmlScreenOverlayTest", function () { 37 | var validKml = "" + 38 | "" + 39 | "" + 40 | " 0" + 41 | "" + 42 | ""; 43 | var kmlRepresentation = new XmlDocument(validKml).dom(); 44 | var screenOverlay = new KmlScreenOverlay({objectNode: 45 | kmlRepresentation.getElementsByTagName("ScreenOverlay")[0]}); 46 | it("should have the Rotation property", function(){ 47 | expect(screenOverlay.kmlRotation).toEqual(0); 48 | }); 49 | }); 50 | }); 51 | -------------------------------------------------------------------------------- /test/formats/kml/styles/KmlLabelStyle.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/util/XmlDocument', 30 | 'src/formats/kml/styles/KmlLabelStyle' 31 | ], function ( 32 | XmlDocument, 33 | KmlLabelStyle 34 | ) { 35 | "use strict"; 36 | describe ("KmlLabelStyle", function(){ 37 | var validKml = "" + 38 | "" + 39 | "" + 40 | " ffffffff" + 41 | " normal" + 42 | " 1" + 43 | "" + 44 | ""; 45 | 46 | 47 | var kmlRepresentation = new XmlDocument(validKml).dom(); 48 | var labelStyle = new KmlLabelStyle({objectNode: 49 | kmlRepresentation.getElementsByTagName("LabelStyle")[0]}); 50 | it ("should have the Scale property", function(){ 51 | expect(labelStyle.kmlScale).toEqual(1); 52 | }); 53 | 54 | }); 55 | }); 56 | -------------------------------------------------------------------------------- /test/formats/kml/styles/KmlStyleMap.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/styles/KmlStyleMap', 30 | 'src/formats/kml/util/KmlPair', 31 | 'src/util/XmlDocument' 32 | ], function ( 33 | KmlStyleMap, 34 | Pair, 35 | XmlDocument 36 | ) { 37 | "use strict"; 38 | describe("KmlStyleMapTest",function(){ 39 | 40 | var validKml = "" + 41 | "" + 42 | "" + 43 | " " + 44 | "" + 45 | ""; 46 | var kmlRepresentation = new XmlDocument(validKml).dom(); 47 | var styleMap = new KmlStyleMap({objectNode: 48 | kmlRepresentation.getElementsByTagName("StyleMap")[0]}); 49 | it("should have the prototype properties of Pair", function(){ 50 | console.log(styleMap.kmlPairs[0]); 51 | expect(styleMap.kmlPairs[0] instanceof Pair).toBeTruthy(); 52 | }); 53 | 54 | }); 55 | }); -------------------------------------------------------------------------------- /test/formats/kml/util/ItemIcon.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/util/KmlItemIcon', 30 | 'src/formats/kml/KmlFileCache', 31 | 'src/util/XmlDocument' 32 | ], function ( 33 | ItemIcon, 34 | KmlFileCache, 35 | XmlDocument 36 | ) { 37 | "use strict"; 38 | describe("ItemIconTest", function () { 39 | var validKml = "" + 40 | "" + 41 | "" + 42 | " open" + 43 | " validUrl" + 44 | "" + 45 | ""; 46 | var kmlRepresentation = new XmlDocument(validKml).dom(); 47 | var scale = new ItemIcon({objectNode: 48 | kmlRepresentation.getElementsByTagName("ItemIcon")[0]}); 49 | it ('should have the State and Href properties', function(){ 50 | expect(scale.kmlState).toEqual("open"); 51 | expect(scale.kmlHref(new KmlFileCache())).toEqual("validUrl"); 52 | }); 53 | 54 | 55 | }); 56 | }); 57 | -------------------------------------------------------------------------------- /test/formats/kml/util/Scale.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | define([ 29 | 'src/formats/kml/util/KmlScale', 30 | 'src/util/XmlDocument' 31 | ], function ( 32 | Scale, 33 | XmlDocument 34 | ) { 35 | "use strict"; 36 | describe("ScaleTest", function () { 37 | var validKml = "" + 38 | "" + 39 | "" + 40 | " 1" + 41 | " 1" + 42 | " 1" + 43 | "" + 44 | ""; 45 | var kmlRepresentation = new XmlDocument(validKml).dom(); 46 | var scale = new Scale({objectNode: 47 | kmlRepresentation.getElementsByTagName("Scale")[0]}); 48 | it('should have the X, Y and Z properties',function(){ 49 | expect(scale.kmlX).toBe(1); 50 | expect(scale.kmlY).toBe(1); 51 | expect(scale.kmlZ).toBe(1); 52 | }); 53 | 54 | 55 | }); 56 | }); 57 | -------------------------------------------------------------------------------- /test/test-main.js: -------------------------------------------------------------------------------- 1 | var allTestFiles = []; 2 | var TEST_REGEXP = /(spec|test)\.js$/i; 3 | 4 | // Get a list of all the test files to include 5 | Object.keys(window.__karma__.files).forEach(function(file) { 6 | if (TEST_REGEXP.test(file)) { 7 | // Normalize paths to RequireJS module names. 8 | // If you require sub-dependencies of test files to be loaded as-is (requiring file extension) 9 | // then do not normalize the paths 10 | var normalizedTestModule = file.replace(/^\/base\/|\.js$/g, ''); 11 | allTestFiles.push(normalizedTestModule); 12 | } 13 | }); 14 | 15 | require.config({ 16 | // Karma serves files under /base, which is the basePath from your config file 17 | baseUrl: '/base', 18 | 19 | // dynamically load all test files 20 | deps: allTestFiles, 21 | 22 | // we have to kickoff jasmine, as it is asynchronous 23 | callback: window.__karma__.start 24 | }); 25 | -------------------------------------------------------------------------------- /test/util/XmlDocument.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2003-2006, 2009, 2017, 2020 United States Government, as represented 3 | * by the Administrator of the National Aeronautics and Space Administration. 4 | * All rights reserved. 5 | * 6 | * The NASAWorldWind/WebWorldWind platform is licensed under the Apache License, 7 | * Version 2.0 (the "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License 9 | * at http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software distributed 12 | * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 13 | * CONDITIONS OF ANY KIND, either express or implied. See the License for the 14 | * specific language governing permissions and limitations under the License. 15 | * 16 | * NASAWorldWind/WebWorldWind also contains the following 3rd party Open Source 17 | * software: 18 | * 19 | * ES6-Promise – under MIT License 20 | * libtess.js – SGI Free Software License B 21 | * Proj4 – under MIT License 22 | * JSZip – under MIT License 23 | * 24 | * A complete listing of 3rd Party software notices and licenses included in 25 | * WebWorldWind can be found in the WebWorldWind 3rd-party notices and licenses 26 | * PDF found in code directory. 27 | */ 28 | require([ 29 | 'src/util/XmlDocument' 30 | ], function( 31 | XmlDocument 32 | ){ 33 | describe("XmlDocument", function() { 34 | it("testGettingDomOfValidXml", function() { 35 | var xmlDocument = "" + 36 | "" + 37 | "" + 38 | " " + 39 | " -122.0822035425683,37.42228990140251,0" + 40 | " " + 41 | "" + 42 | ""; 43 | var document = new XmlDocument(xmlDocument); 44 | var resultingDom = document.dom(); 45 | 46 | expect(resultingDom.childNodes.length).toEqual(1); 47 | }); 48 | }); 49 | }); -------------------------------------------------------------------------------- /tools/WorldWindShim.build.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This shim is used to switch between the individual WorldWind source files and the minified single file library for 3 | * the WorldWind module. Switching allows locally developed examples to run from the individual WorldWind source files 4 | * and hosted examples to use the faster to download minified library. A shim is not required for the use of WorldWind. 5 | * The minified library (worldwind.min.js) is recommended for use in deployed applications. 6 | */ 7 | define(['../worldwind.min.js'], function (WorldWind) { 8 | "use strict"; 9 | 10 | return WorldWind; 11 | }); 12 | -------------------------------------------------------------------------------- /tools/jsdoc.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "templates": { 3 | "default": { 4 | "layoutFile": "jsdoc.layout.tmpl" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /tools/jsdoc.layout.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WorldWind: <?js= title ?> 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 | 20 |

    21 | 22 | 23 |
    24 | 25 | 28 | 29 |
    30 | 31 |
    32 | Documentation generated by JSDoc on 33 |
    34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tools/wrap.end: -------------------------------------------------------------------------------- 1 | //Use almond's special top-level, synchronous require to trigger factory 2 | //functions, get the final module value, and export it as the public 3 | //value. 4 | return require('WorldWind'); 5 | })); 6 | -------------------------------------------------------------------------------- /tools/wrap.start: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | if (typeof exports === "object") { 3 | // CommonJS-like 4 | module.exports = factory(); 5 | } else if (typeof define === 'function' && define.amd) { 6 | // AMD. 7 | define([], factory); 8 | } else { 9 | // Browser globals 10 | root.WorldWind = factory(); 11 | } 12 | }(this, function () { 13 | 14 | -------------------------------------------------------------------------------- /travis/changelog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Writes a change log to stdout using the GitHub API and the milestone associated with the specified Git tag 3 | 4 | # Write Markdown headers for the Git tag and release date 5 | echo "## ${TRAVIS_TAG}" 6 | echo "###### Released on $(date '+%Y-%m-%d')" 7 | 8 | # Query GitHub API for a milestone matching the Git tag 9 | GITHUB_API_URL="https://api.github.com/repos/${TRAVIS_REPO_SLUG}" 10 | MILESTONE_ARRAY=( \ 11 | $(curl --silent "${GITHUB_API_URL}/milestones?state=all" \ 12 | | jq --arg title "${TRAVIS_TAG}" '.[] | select(.title | contains($title)) | .number') \ 13 | ) > /dev/null 14 | 15 | # When GitHub has a milestone matching the Git tag, write milestone related information to the change log 16 | if [[ "${#MILESTONE_ARRAY[@]}" -ne 0 ]]; then 17 | # Write the milestone description to the change log 18 | MILESTONE_DESCRIPTION=( \ 19 | $(curl --silent "${GITHUB_API_URL}/milestones/${MILESTONE_ARRAY[0]}" \ 20 | | jq .description --raw-output) \ 21 | ) > /dev/null 22 | echo "${MILESTONE_DESCRIPTION[*]}" 23 | 24 | # Write the milestone's associated issues to the change log with each issue on a separate line with the issue 25 | # title, issue number, and a link to the issue on GitHub.com, all in markdown format: .title ([#.number](.html_url)) 26 | ISSUE_ARRAY=$(curl --silent "${GITHUB_API_URL}/issues?state=all&milestone=${MILESTONE_ARRAY[0]}" | jq -c '.[] | [.title, .number, .html_url]') >> /dev/null 27 | while read line 28 | do 29 | echo ${line} | sed 's#\["\(.*\)",\(.*\),"\(.*\)"\]#- \1 [\#\2](\3)#' 30 | done <<< "${ISSUE_ARRAY[*]}" 31 | fi 32 | --------------------------------------------------------------------------------