cesium 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.md +259 -0
- data/README.rdoc +90 -0
- data/Rakefile +40 -0
- data/app/assets/javascripts/Assets/Assets.profile.js +8 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- data/app/assets/javascripts/Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/waterNormals.jpg +0 -0
- data/app/assets/javascripts/Assets/package.json +6 -0
- data/app/assets/javascripts/Cesium.js +320 -0
- data/app/assets/javascripts/Core/AnimationController.js +148 -0
- data/app/assets/javascripts/Core/AxisAlignedBoundingBox.js +243 -0
- data/app/assets/javascripts/Core/BoundingRectangle.js +364 -0
- data/app/assets/javascripts/Core/BoundingSphere.js +819 -0
- data/app/assets/javascripts/Core/BoxTessellator.js +93 -0
- data/app/assets/javascripts/Core/Cartesian2.js +762 -0
- data/app/assets/javascripts/Core/Cartesian3.js +861 -0
- data/app/assets/javascripts/Core/Cartesian4.js +762 -0
- data/app/assets/javascripts/Core/Cartographic.js +211 -0
- data/app/assets/javascripts/Core/CatmullRomSpline.js +232 -0
- data/app/assets/javascripts/Core/Clock.js +195 -0
- data/app/assets/javascripts/Core/ClockRange.js +37 -0
- data/app/assets/javascripts/Core/ClockStep.js +32 -0
- data/app/assets/javascripts/Core/Color.js +1629 -0
- data/app/assets/javascripts/Core/ComponentDatatype.js +119 -0
- data/app/assets/javascripts/Core/Core.profile.js +8 -0
- data/app/assets/javascripts/Core/CubeMapEllipsoidTessellator.js +198 -0
- data/app/assets/javascripts/Core/CubicRealPolynomial.js +251 -0
- data/app/assets/javascripts/Core/DefaultProxy.js +30 -0
- data/app/assets/javascripts/Core/DeveloperError.js +60 -0
- data/app/assets/javascripts/Core/EarthOrientationParameters.js +383 -0
- data/app/assets/javascripts/Core/EarthOrientationParametersSample.js +50 -0
- data/app/assets/javascripts/Core/Ellipsoid.js +539 -0
- data/app/assets/javascripts/Core/EllipsoidTangentPlane.js +207 -0
- data/app/assets/javascripts/Core/EllipsoidalOccluder.js +151 -0
- data/app/assets/javascripts/Core/EncodedCartesian3.js +197 -0
- data/app/assets/javascripts/Core/Enumeration.js +67 -0
- data/app/assets/javascripts/Core/Event.js +122 -0
- data/app/assets/javascripts/Core/Extent.js +383 -0
- data/app/assets/javascripts/Core/ExtentTessellator.js +384 -0
- data/app/assets/javascripts/Core/FAR.js +13 -0
- data/app/assets/javascripts/Core/FeatureDetection.js +126 -0
- data/app/assets/javascripts/Core/Fullscreen.js +235 -0
- data/app/assets/javascripts/Core/GeographicProjection.js +107 -0
- data/app/assets/javascripts/Core/HermitePolynomialApproximation.js +176 -0
- data/app/assets/javascripts/Core/HermiteSpline.js +234 -0
- data/app/assets/javascripts/Core/Iau2006XysData.js +259 -0
- data/app/assets/javascripts/Core/Iau2006XysSample.js +36 -0
- data/app/assets/javascripts/Core/IndexDatatype.js +28 -0
- data/app/assets/javascripts/Core/Intersect.js +40 -0
- data/app/assets/javascripts/Core/IntersectionTests.js +359 -0
- data/app/assets/javascripts/Core/Interval.js +27 -0
- data/app/assets/javascripts/Core/Iso8601.js +46 -0
- data/app/assets/javascripts/Core/JulianDate.js +1228 -0
- data/app/assets/javascripts/Core/KeyboardEventModifier.js +38 -0
- data/app/assets/javascripts/Core/LagrangePolynomialApproximation.js +96 -0
- data/app/assets/javascripts/Core/LeapSecond.js +158 -0
- data/app/assets/javascripts/Core/LinearApproximation.js +98 -0
- data/app/assets/javascripts/Core/Math.js +532 -0
- data/app/assets/javascripts/Core/Matrix2.js +833 -0
- data/app/assets/javascripts/Core/Matrix3.js +1099 -0
- data/app/assets/javascripts/Core/Matrix4.js +2164 -0
- data/app/assets/javascripts/Core/MeshFilters.js +568 -0
- data/app/assets/javascripts/Core/Occluder.js +474 -0
- data/app/assets/javascripts/Core/OrientationInterpolator.js +109 -0
- data/app/assets/javascripts/Core/PlaneTessellator.js +74 -0
- data/app/assets/javascripts/Core/PolygonPipeline.js +792 -0
- data/app/assets/javascripts/Core/PolylinePipeline.js +90 -0
- data/app/assets/javascripts/Core/PrimitiveType.js +80 -0
- data/app/assets/javascripts/Core/QuadraticRealPolynomial.js +146 -0
- data/app/assets/javascripts/Core/QuarticRealPolynomial.js +339 -0
- data/app/assets/javascripts/Core/Quaternion.js +947 -0
- data/app/assets/javascripts/Core/Queue.js +95 -0
- data/app/assets/javascripts/Core/Ray.js +64 -0
- data/app/assets/javascripts/Core/ReferenceFrame.js +25 -0
- data/app/assets/javascripts/Core/RequestErrorEvent.js +35 -0
- data/app/assets/javascripts/Core/RuntimeError.js +59 -0
- data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +658 -0
- data/app/assets/javascripts/Core/ScreenSpaceEventType.js +149 -0
- data/app/assets/javascripts/Core/Shapes.js +230 -0
- data/app/assets/javascripts/Core/Spherical.js +192 -0
- data/app/assets/javascripts/Core/TaskProcessor.js +131 -0
- data/app/assets/javascripts/Core/TimeConstants.js +85 -0
- data/app/assets/javascripts/Core/TimeInterval.js +305 -0
- data/app/assets/javascripts/Core/TimeIntervalCollection.js +543 -0
- data/app/assets/javascripts/Core/TimeStandard.js +31 -0
- data/app/assets/javascripts/Core/Tipsify.js +285 -0
- data/app/assets/javascripts/Core/Transforms.js +614 -0
- data/app/assets/javascripts/Core/TridiagonalSystemSolver.js +102 -0
- data/app/assets/javascripts/Core/Visibility.js +38 -0
- data/app/assets/javascripts/Core/WebMercatorProjection.js +154 -0
- data/app/assets/javascripts/Core/WindingOrder.js +40 -0
- data/app/assets/javascripts/Core/binarySearch.js +69 -0
- data/app/assets/javascripts/Core/buildModuleUrl.js +77 -0
- data/app/assets/javascripts/Core/clone.js +21 -0
- data/app/assets/javascripts/Core/combine.js +81 -0
- data/app/assets/javascripts/Core/computeSunPosition.js +116 -0
- data/app/assets/javascripts/Core/createGuid.js +25 -0
- data/app/assets/javascripts/Core/defaultValue.js +22 -0
- data/app/assets/javascripts/Core/destroyObject.js +61 -0
- data/app/assets/javascripts/Core/freezeObject.js +20 -0
- data/app/assets/javascripts/Core/getImagePixels.js +46 -0
- data/app/assets/javascripts/Core/isLeapYear.js +30 -0
- data/app/assets/javascripts/Core/jsonp.js +116 -0
- data/app/assets/javascripts/Core/loadArrayBuffer.js +76 -0
- data/app/assets/javascripts/Core/loadImage.js +85 -0
- data/app/assets/javascripts/Core/loadJson.js +54 -0
- data/app/assets/javascripts/Core/loadText.js +78 -0
- data/app/assets/javascripts/Core/loadXML.js +76 -0
- data/app/assets/javascripts/Core/package.json +6 -0
- data/app/assets/javascripts/Core/pointInsideTriangle2D.js +41 -0
- data/app/assets/javascripts/Core/requestAnimationFrame.js +61 -0
- data/app/assets/javascripts/Core/throttleRequestByServer.js +74 -0
- data/app/assets/javascripts/Core/writeTextToCanvas.js +92 -0
- data/app/assets/javascripts/DynamicScene/CompositeDynamicObjectCollection.js +254 -0
- data/app/assets/javascripts/DynamicScene/CzmlBoolean.js +57 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartesian2.js +96 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartesian3.js +99 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartographic.js +125 -0
- data/app/assets/javascripts/DynamicScene/CzmlColor.js +127 -0
- data/app/assets/javascripts/DynamicScene/CzmlDefaults.js +135 -0
- data/app/assets/javascripts/DynamicScene/CzmlHorizontalOrigin.js +59 -0
- data/app/assets/javascripts/DynamicScene/CzmlImage.js +61 -0
- data/app/assets/javascripts/DynamicScene/CzmlLabelStyle.js +59 -0
- data/app/assets/javascripts/DynamicScene/CzmlNumber.js +82 -0
- data/app/assets/javascripts/DynamicScene/CzmlString.js +56 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitCartesian3.js +99 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitQuaternion.js +172 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitSpherical.js +98 -0
- data/app/assets/javascripts/DynamicScene/CzmlVerticalOrigin.js +59 -0
- data/app/assets/javascripts/DynamicScene/DynamicBillboard.js +245 -0
- data/app/assets/javascripts/DynamicScene/DynamicBillboardVisualizer.js +347 -0
- data/app/assets/javascripts/DynamicScene/DynamicColorMaterial.js +78 -0
- data/app/assets/javascripts/DynamicScene/DynamicCone.js +291 -0
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +350 -0
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizerUsingCustomSensor.js +389 -0
- data/app/assets/javascripts/DynamicScene/DynamicDirectionsProperty.js +163 -0
- data/app/assets/javascripts/DynamicScene/DynamicEllipsoid.js +158 -0
- data/app/assets/javascripts/DynamicScene/DynamicEllipsoidVisualizer.js +277 -0
- data/app/assets/javascripts/DynamicScene/DynamicImageMaterial.js +136 -0
- data/app/assets/javascripts/DynamicScene/DynamicLabel.js +286 -0
- data/app/assets/javascripts/DynamicScene/DynamicLabelVisualizer.js +341 -0
- data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +125 -0
- data/app/assets/javascripts/DynamicScene/DynamicObject.js +364 -0
- data/app/assets/javascripts/DynamicScene/DynamicObjectCollection.js +137 -0
- data/app/assets/javascripts/DynamicScene/DynamicObjectView.js +299 -0
- data/app/assets/javascripts/DynamicScene/DynamicPath.js +214 -0
- data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +402 -0
- data/app/assets/javascripts/DynamicScene/DynamicPoint.js +184 -0
- data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +323 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolygon.js +138 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolygonVisualizer.js +251 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolyline.js +183 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +268 -0
- data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +525 -0
- data/app/assets/javascripts/DynamicScene/DynamicProperty.js +352 -0
- data/app/assets/javascripts/DynamicScene/DynamicPyramid.js +204 -0
- data/app/assets/javascripts/DynamicScene/DynamicPyramidVisualizer.js +302 -0
- data/app/assets/javascripts/DynamicScene/DynamicScene.profile.js +8 -0
- data/app/assets/javascripts/DynamicScene/DynamicVertexPositionsProperty.js +199 -0
- data/app/assets/javascripts/DynamicScene/ReferenceProperty.js +155 -0
- data/app/assets/javascripts/DynamicScene/VisualizerCollection.js +181 -0
- data/app/assets/javascripts/DynamicScene/package.json +6 -0
- data/app/assets/javascripts/DynamicScene/processCzml.js +77 -0
- data/app/assets/javascripts/Renderer/BlendEquation.js +52 -0
- data/app/assets/javascripts/Renderer/BlendFunction.js +158 -0
- data/app/assets/javascripts/Renderer/BlendingState.js +64 -0
- data/app/assets/javascripts/Renderer/Buffer.js +141 -0
- data/app/assets/javascripts/Renderer/BufferUsage.js +48 -0
- data/app/assets/javascripts/Renderer/ClearCommand.js +40 -0
- data/app/assets/javascripts/Renderer/CommandLists.js +42 -0
- data/app/assets/javascripts/Renderer/Context.js +2805 -0
- data/app/assets/javascripts/Renderer/CubeMap.js +358 -0
- data/app/assets/javascripts/Renderer/CubeMapFace.js +202 -0
- data/app/assets/javascripts/Renderer/CullFace.js +50 -0
- data/app/assets/javascripts/Renderer/DepthFunction.js +95 -0
- data/app/assets/javascripts/Renderer/DrawCommand.js +96 -0
- data/app/assets/javascripts/Renderer/Framebuffer.js +435 -0
- data/app/assets/javascripts/Renderer/MipmapHint.js +50 -0
- data/app/assets/javascripts/Renderer/PickFramebuffer.js +178 -0
- data/app/assets/javascripts/Renderer/PixelDatatype.js +86 -0
- data/app/assets/javascripts/Renderer/PixelFormat.js +113 -0
- data/app/assets/javascripts/Renderer/Renderbuffer.js +102 -0
- data/app/assets/javascripts/Renderer/RenderbufferFormat.js +77 -0
- data/app/assets/javascripts/Renderer/Renderer.profile.js +8 -0
- data/app/assets/javascripts/Renderer/ShaderCache.js +121 -0
- data/app/assets/javascripts/Renderer/ShaderProgram.js +2402 -0
- data/app/assets/javascripts/Renderer/StencilFunction.js +95 -0
- data/app/assets/javascripts/Renderer/StencilOperation.js +95 -0
- data/app/assets/javascripts/Renderer/Texture.js +395 -0
- data/app/assets/javascripts/Renderer/TextureAtlas.js +472 -0
- data/app/assets/javascripts/Renderer/TextureAtlasBuilder.js +133 -0
- data/app/assets/javascripts/Renderer/TextureMagnificationFilter.js +41 -0
- data/app/assets/javascripts/Renderer/TextureMinificationFilter.js +77 -0
- data/app/assets/javascripts/Renderer/TextureWrap.js +50 -0
- data/app/assets/javascripts/Renderer/UniformDatatype.js +218 -0
- data/app/assets/javascripts/Renderer/UniformState.js +799 -0
- data/app/assets/javascripts/Renderer/VertexArray.js +365 -0
- data/app/assets/javascripts/Renderer/VertexArrayFacade.js +574 -0
- data/app/assets/javascripts/Renderer/VertexLayout.js +49 -0
- data/app/assets/javascripts/Renderer/loadCubeMap.js +92 -0
- data/app/assets/javascripts/Renderer/package.json +6 -0
- data/app/assets/javascripts/Scene/AnimationCollection.js +249 -0
- data/app/assets/javascripts/Scene/ArcGisMapServerImageryProvider.js +384 -0
- data/app/assets/javascripts/Scene/Billboard.js +680 -0
- data/app/assets/javascripts/Scene/BillboardCollection.js +1209 -0
- data/app/assets/javascripts/Scene/BingMapsImageryProvider.js +460 -0
- data/app/assets/javascripts/Scene/BingMapsStyle.js +55 -0
- data/app/assets/javascripts/Scene/Camera.js +358 -0
- data/app/assets/javascripts/Scene/CameraColumbusViewMode.js +30 -0
- data/app/assets/javascripts/Scene/CameraController.js +1258 -0
- data/app/assets/javascripts/Scene/CameraEventAggregator.js +270 -0
- data/app/assets/javascripts/Scene/CameraEventType.js +53 -0
- data/app/assets/javascripts/Scene/CameraFlightPath.js +495 -0
- data/app/assets/javascripts/Scene/CentralBody.js +817 -0
- data/app/assets/javascripts/Scene/CentralBodySurface.js +1120 -0
- data/app/assets/javascripts/Scene/CentralBodySurfaceShaderSet.js +107 -0
- data/app/assets/javascripts/Scene/ComplexConicSensorVolume.js +511 -0
- data/app/assets/javascripts/Scene/CompositePrimitive.js +454 -0
- data/app/assets/javascripts/Scene/CullingVolume.js +59 -0
- data/app/assets/javascripts/Scene/CustomSensorVolume.js +440 -0
- data/app/assets/javascripts/Scene/DiscardMissingTileImagePolicy.js +134 -0
- data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +412 -0
- data/app/assets/javascripts/Scene/EllipsoidTerrainProvider.js +182 -0
- data/app/assets/javascripts/Scene/FrameState.js +86 -0
- data/app/assets/javascripts/Scene/FrustumCommands.js +32 -0
- data/app/assets/javascripts/Scene/GeographicTilingScheme.js +265 -0
- data/app/assets/javascripts/Scene/HorizontalOrigin.js +39 -0
- data/app/assets/javascripts/Scene/Imagery.js +85 -0
- data/app/assets/javascripts/Scene/ImageryLayer.js +876 -0
- data/app/assets/javascripts/Scene/ImageryLayerCollection.js +403 -0
- data/app/assets/javascripts/Scene/ImageryProvider.js +185 -0
- data/app/assets/javascripts/Scene/ImageryProviderError.js +149 -0
- data/app/assets/javascripts/Scene/ImageryState.js +20 -0
- data/app/assets/javascripts/Scene/Label.js +706 -0
- data/app/assets/javascripts/Scene/LabelCollection.js +697 -0
- data/app/assets/javascripts/Scene/LabelStyle.js +39 -0
- data/app/assets/javascripts/Scene/Material.js +1177 -0
- data/app/assets/javascripts/Scene/NeverTileDiscardPolicy.js +38 -0
- data/app/assets/javascripts/Scene/OpenStreetMapImageryProvider.js +282 -0
- data/app/assets/javascripts/Scene/OrthographicFrustum.js +345 -0
- data/app/assets/javascripts/Scene/PerformanceDisplay.js +183 -0
- data/app/assets/javascripts/Scene/PerspectiveFrustum.js +239 -0
- data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +394 -0
- data/app/assets/javascripts/Scene/Polygon.js +886 -0
- data/app/assets/javascripts/Scene/Polyline.js +441 -0
- data/app/assets/javascripts/Scene/PolylineCollection.js +1532 -0
- data/app/assets/javascripts/Scene/Projections.js +93 -0
- data/app/assets/javascripts/Scene/RectangularPyramidSensorVolume.js +224 -0
- data/app/assets/javascripts/Scene/Scene.js +632 -0
- data/app/assets/javascripts/Scene/Scene.profile.js +8 -0
- data/app/assets/javascripts/Scene/SceneMode.js +51 -0
- data/app/assets/javascripts/Scene/SceneTransitioner.js +776 -0
- data/app/assets/javascripts/Scene/ScreenSpaceCameraController.js +1063 -0
- data/app/assets/javascripts/Scene/SensorVolumeCollection.js +192 -0
- data/app/assets/javascripts/Scene/SingleTileImageryProvider.js +295 -0
- data/app/assets/javascripts/Scene/SkyAtmosphere.js +239 -0
- data/app/assets/javascripts/Scene/SkyBox.js +231 -0
- data/app/assets/javascripts/Scene/TerrainProvider.js +229 -0
- data/app/assets/javascripts/Scene/TexturePool.js +154 -0
- data/app/assets/javascripts/Scene/Tile.js +322 -0
- data/app/assets/javascripts/Scene/TileDiscardPolicy.js +42 -0
- data/app/assets/javascripts/Scene/TileImagery.js +36 -0
- data/app/assets/javascripts/Scene/TileLoadQueue.js +123 -0
- data/app/assets/javascripts/Scene/TileMapServiceImageryProvider.js +337 -0
- data/app/assets/javascripts/Scene/TileReplacementQueue.js +139 -0
- data/app/assets/javascripts/Scene/TileState.js +19 -0
- data/app/assets/javascripts/Scene/TilingScheme.js +213 -0
- data/app/assets/javascripts/Scene/VerticalOrigin.js +39 -0
- data/app/assets/javascripts/Scene/ViewportQuad.js +256 -0
- data/app/assets/javascripts/Scene/WebMapServiceImageryProvider.js +374 -0
- data/app/assets/javascripts/Scene/WebMercatorTilingScheme.js +291 -0
- data/app/assets/javascripts/Scene/package.json +6 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionFS.glsl +30 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionFS.js +31 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.glsl +68 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +54 -0
- data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +927 -0
- data/app/assets/javascripts/Shaders/BuiltinFunctions.js +322 -0
- data/app/assets/javascripts/Shaders/CentralBodyFS.glsl +106 -0
- data/app/assets/javascripts/Shaders/CentralBodyFS.js +82 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSDepth.glsl +20 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSDepth.js +22 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSPole.glsl +29 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSPole.js +28 -0
- data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +88 -0
- data/app/assets/javascripts/Shaders/CentralBodyVS.js +69 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSDepth.glsl +9 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSDepth.js +13 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSPole.glsl +12 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSPole.js +15 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.glsl +448 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.js +361 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.glsl +19 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.js +20 -0
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.glsl +886 -0
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.js +586 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.glsl +126 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +95 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.glsl +14 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.js +18 -0
- data/app/assets/javascripts/Shaders/EllipsoidFS.glsl +40 -0
- data/app/assets/javascripts/Shaders/EllipsoidFS.js +38 -0
- data/app/assets/javascripts/Shaders/EllipsoidVS.glsl +26 -0
- data/app/assets/javascripts/Shaders/EllipsoidVS.js +16 -0
- data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.glsl +25 -0
- data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.js +23 -0
- data/app/assets/javascripts/Shaders/Materials/BlobMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/BlobMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl +42 -0
- data/app/assets/javascripts/Shaders/Materials/BrickMaterial.js +36 -0
- data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.glsl +29 -0
- data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.js +27 -0
- data/app/assets/javascripts/Shaders/Materials/CementMaterial.glsl +19 -0
- data/app/assets/javascripts/Shaders/Materials/CementMaterial.js +20 -0
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.glsl +38 -0
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +32 -0
- data/app/assets/javascripts/Shaders/Materials/DotMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/DotMaterial.js +18 -0
- data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.glsl +23 -0
- data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.js +24 -0
- data/app/assets/javascripts/Shaders/Materials/FacetMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/FacetMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.glsl +12 -0
- data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.js +15 -0
- data/app/assets/javascripts/Shaders/Materials/GrassMaterial.glsl +28 -0
- data/app/assets/javascripts/Shaders/Materials/GrassMaterial.js +26 -0
- data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.glsl +19 -0
- data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.js +21 -0
- data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.glsl +13 -0
- data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.js +16 -0
- data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.glsl +14 -0
- data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.js +17 -0
- data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.glsl +29 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +26 -0
- data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/Water.glsl +91 -0
- data/app/assets/javascripts/Shaders/Materials/Water.js +60 -0
- data/app/assets/javascripts/Shaders/Materials/WoodMaterial.glsl +36 -0
- data/app/assets/javascripts/Shaders/Materials/WoodMaterial.js +31 -0
- data/app/assets/javascripts/Shaders/Noise.glsl +453 -0
- data/app/assets/javascripts/Shaders/Noise.js +242 -0
- data/app/assets/javascripts/Shaders/PolygonFS.glsl +27 -0
- data/app/assets/javascripts/Shaders/PolygonFS.js +23 -0
- data/app/assets/javascripts/Shaders/PolygonFSPick.glsl +6 -0
- data/app/assets/javascripts/Shaders/PolygonFSPick.js +11 -0
- data/app/assets/javascripts/Shaders/PolygonVS.glsl +38 -0
- data/app/assets/javascripts/Shaders/PolygonVS.js +39 -0
- data/app/assets/javascripts/Shaders/PolygonVSPick.glsl +30 -0
- data/app/assets/javascripts/Shaders/PolygonVSPick.js +32 -0
- data/app/assets/javascripts/Shaders/PolylineFS.glsl +6 -0
- data/app/assets/javascripts/Shaders/PolylineFS.js +11 -0
- data/app/assets/javascripts/Shaders/PolylineVS.glsl +34 -0
- data/app/assets/javascripts/Shaders/PolylineVS.js +35 -0
- data/app/assets/javascripts/Shaders/Ray.glsl +532 -0
- data/app/assets/javascripts/Shaders/Ray.js +357 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.glsl +26 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +22 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.glsl +11 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +14 -0
- data/app/assets/javascripts/Shaders/SensorVolume.glsl +43 -0
- data/app/assets/javascripts/Shaders/SensorVolume.js +31 -0
- data/app/assets/javascripts/Shaders/Shaders.profile.js +8 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.glsl +70 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +62 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereVS.glsl +131 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereVS.js +115 -0
- data/app/assets/javascripts/Shaders/SkyBoxFS.glsl +10 -0
- data/app/assets/javascripts/Shaders/SkyBoxFS.js +14 -0
- data/app/assets/javascripts/Shaders/SkyBoxVS.glsl +10 -0
- data/app/assets/javascripts/Shaders/SkyBoxVS.js +14 -0
- data/app/assets/javascripts/Shaders/ViewportQuadFS.glsl +16 -0
- data/app/assets/javascripts/Shaders/ViewportQuadFS.js +17 -0
- data/app/assets/javascripts/Shaders/ViewportQuadVS.glsl +10 -0
- data/app/assets/javascripts/Shaders/ViewportQuadVS.js +14 -0
- data/app/assets/javascripts/Shaders/package.json +6 -0
- data/app/assets/javascripts/ThirdParty/ThirdParty.profile.js +8 -0
- data/app/assets/javascripts/ThirdParty/Tween.js +678 -0
- data/app/assets/javascripts/ThirdParty/Uri.js +277 -0
- data/app/assets/javascripts/ThirdParty/measureText.js +197 -0
- data/app/assets/javascripts/ThirdParty/package.json +6 -0
- data/app/assets/javascripts/ThirdParty/sprintf.js +319 -0
- data/app/assets/javascripts/ThirdParty/when.js +748 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.css +175 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.html +52 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +1237 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.html +4 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.js +349 -0
- data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.css +1 -0
- data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.js +47 -0
- data/app/assets/javascripts/Widgets/Dojo/checkForChromeFrame.js +71 -0
- data/app/assets/javascripts/Widgets/Images/Bing_Logo_51x19_White.png +0 -0
- data/app/assets/javascripts/Widgets/Images/Cesium_Logo_overlay.png +0 -0
- data/app/assets/javascripts/Widgets/Images/TimelineIcons.png +0 -0
- data/app/assets/javascripts/Widgets/Images/ajax-loader.gif +0 -0
- data/app/assets/javascripts/Widgets/Images/animationBar.png +0 -0
- data/app/assets/javascripts/Widgets/Images/viewControlBar.png +0 -0
- data/app/assets/javascripts/Widgets/Timeline.css +113 -0
- data/app/assets/javascripts/Widgets/Timeline.js +629 -0
- data/app/assets/javascripts/Widgets/TimelineHighlightRange.js +51 -0
- data/app/assets/javascripts/Widgets/TimelineTrack.js +54 -0
- data/app/assets/javascripts/Widgets/Widgets.profile.js +8 -0
- data/app/assets/javascripts/Widgets/package.json +6 -0
- data/app/assets/javascripts/Workers/Workers.profile.js +8 -0
- data/app/assets/javascripts/Workers/cesiumWorkerBootstrapper.js +2015 -0
- data/app/assets/javascripts/Workers/createTaskProcessorWorker.js +55 -0
- data/app/assets/javascripts/Workers/createVerticesFromExtent.js +24 -0
- data/app/assets/javascripts/Workers/package.json +6 -0
- data/app/assets/javascripts/copyrightHeader.js +22 -0
- data/app/assets/javascripts/main.js +10 -0
- data/app/assets/stylesheets/cesium.css +4 -0
- data/app/controllers/cesium_controller.rb +4 -0
- data/app/helpers/cesium_helper.rb +2 -0
- data/app/views/cesium/index.html.erb +3 -0
- data/config/routes.rb +3 -0
- data/lib/cesium.rb +4 -0
- data/lib/cesium/engine.rb +4 -0
- data/lib/cesium/version.rb +3 -0
- data/lib/tasks/cesium_tasks.rake +4 -0
- data/test/cesium_test.rb +7 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/adapters/jquery-adapter.js.coffee +4 -0
- data/test/dummy/app/assets/javascripts/app.js.coffee +11 -0
- data/test/dummy/app/assets/javascripts/application.js.coffee +73 -0
- data/test/dummy/app/assets/stylesheets/application.css +12 -0
- data/test/dummy/app/controllers/application_controller.rb +4 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +21 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/requirejs.yml +10 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/functional/cesium_controller_test.rb +9 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/helpers/cesium_helper_test.rb +4 -0
- metadata +641 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define(['../Core/Enumeration'], function(Enumeration) {
|
3
|
+
"use strict";
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Determines if vertex attributes are interleaved in a single vertex buffer or if each attribute is stored in a separate vertex buffer.
|
7
|
+
*
|
8
|
+
* @exports VertexLayout
|
9
|
+
*
|
10
|
+
* @see Context#createVertexArrayFromMesh
|
11
|
+
*/
|
12
|
+
var VertexLayout = {
|
13
|
+
/**
|
14
|
+
* Each attribute will be stored in a separate vertex buffer. This can be slightly slower
|
15
|
+
* than using a single interleaved vertex buffer, but it is more flexible; more easily allowing
|
16
|
+
* the sharing of vertex buffers among vertex arrays. It also requires much less initial CPU
|
17
|
+
* processing than interleaving.
|
18
|
+
*
|
19
|
+
* @constant
|
20
|
+
* @type {Enumeration}
|
21
|
+
*/
|
22
|
+
SEPARATE : new Enumeration(0, 'SEPARATE'),
|
23
|
+
/**
|
24
|
+
* Each attribute will be interleaved in a single vertex buffer. This can have a slight
|
25
|
+
* performance advantage over using a separate vertex buffer per attribute, but it requires
|
26
|
+
* extra CPU processing to initially interleave the vertex data. This is recommended for
|
27
|
+
* static data that will be rendered over several frames.
|
28
|
+
*
|
29
|
+
* @constant
|
30
|
+
* @type {Enumeration}
|
31
|
+
*/
|
32
|
+
INTERLEAVED : new Enumeration(1, 'INTERLEAVED'),
|
33
|
+
|
34
|
+
/**
|
35
|
+
* DOC_TBA
|
36
|
+
*
|
37
|
+
* @param vertexLayout
|
38
|
+
*
|
39
|
+
* @returns {Boolean}
|
40
|
+
*/
|
41
|
+
validate : function(vertexLayout) {
|
42
|
+
return ((vertexLayout === VertexLayout.SEPARATE) ||
|
43
|
+
(vertexLayout === VertexLayout.INTERLEAVED));
|
44
|
+
}
|
45
|
+
|
46
|
+
};
|
47
|
+
|
48
|
+
return VertexLayout;
|
49
|
+
});
|
@@ -0,0 +1,92 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'../Core/defaultValue',
|
4
|
+
'../Core/DeveloperError',
|
5
|
+
'../Core/loadImage',
|
6
|
+
'../ThirdParty/when'
|
7
|
+
], function(
|
8
|
+
defaultValue,
|
9
|
+
DeveloperError,
|
10
|
+
loadImage,
|
11
|
+
when) {
|
12
|
+
"use strict";
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Asynchronously loads six images and creates a cube map. Returns a promise that
|
16
|
+
* will resolve to a {@link CubeMap} once loaded, or reject if any image fails to load.
|
17
|
+
*
|
18
|
+
* @exports loadCubeMap
|
19
|
+
*
|
20
|
+
* @param {Context} context The context to use to create the cube map.
|
21
|
+
* @param {Object} urls The source of each image, or a promise for each URL. See the example below.
|
22
|
+
* @param {Boolean} [crossOrigin=true] Whether to request images using Cross-Origin
|
23
|
+
* Resource Sharing (CORS). Data URIs are never requested using CORS.
|
24
|
+
*
|
25
|
+
* @returns {Promise} a promise that will resolve to the requested {@link CubeMap} when loaded.
|
26
|
+
*
|
27
|
+
* @exception {DeveloperError} context is required.
|
28
|
+
* @exception {DeveloperError} urls is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.
|
29
|
+
*
|
30
|
+
* @example
|
31
|
+
* loadCubeMap(context, {
|
32
|
+
* positiveX : 'skybox_px.png',
|
33
|
+
* negativeX : 'skybox_nx.png',
|
34
|
+
* positiveY : 'skybox_py.png',
|
35
|
+
* negativeY : 'skybox_ny.png',
|
36
|
+
* positiveZ : 'skybox_pz.png',
|
37
|
+
* negativeZ : 'skybox_nz.png'
|
38
|
+
* }).then(function(cubeMap) {
|
39
|
+
* // use the cubemap
|
40
|
+
* }, function() {
|
41
|
+
* // an error occurred
|
42
|
+
* });
|
43
|
+
*
|
44
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
45
|
+
* @see <a href='http://wiki.commonjs.org/wiki/Promises/A'>CommonJS Promises/A</a>
|
46
|
+
*/
|
47
|
+
var loadCubeMap = function(context, urls, crossOrigin) {
|
48
|
+
if (typeof context === 'undefined') {
|
49
|
+
throw new DeveloperError('context is required.');
|
50
|
+
}
|
51
|
+
|
52
|
+
if ((typeof urls === 'undefined') ||
|
53
|
+
(typeof urls.positiveX === 'undefined') ||
|
54
|
+
(typeof urls.negativeX === 'undefined') ||
|
55
|
+
(typeof urls.positiveY === 'undefined') ||
|
56
|
+
(typeof urls.negativeY === 'undefined') ||
|
57
|
+
(typeof urls.positiveZ === 'undefined') ||
|
58
|
+
(typeof urls.negativeZ === 'undefined')) {
|
59
|
+
throw new DeveloperError('urls is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.');
|
60
|
+
}
|
61
|
+
|
62
|
+
// PERFORMANCE_IDEA: Given the size of some cube maps, we should consider tiling them, which
|
63
|
+
// would prevent hiccups when uploading, for example, six 4096x4096 textures to the GPU.
|
64
|
+
//
|
65
|
+
// Also, it is perhaps acceptable to use the context here in the callbacks, but
|
66
|
+
// ideally, we would do it in the primitive's update function.
|
67
|
+
|
68
|
+
var facePromises = [
|
69
|
+
loadImage(urls.positiveX, crossOrigin),
|
70
|
+
loadImage(urls.negativeX, crossOrigin),
|
71
|
+
loadImage(urls.positiveY, crossOrigin),
|
72
|
+
loadImage(urls.negativeY, crossOrigin),
|
73
|
+
loadImage(urls.positiveZ, crossOrigin),
|
74
|
+
loadImage(urls.negativeZ, crossOrigin)
|
75
|
+
];
|
76
|
+
|
77
|
+
return when.all(facePromises, function(images) {
|
78
|
+
return context.createCubeMap({
|
79
|
+
source : {
|
80
|
+
positiveX : images[0],
|
81
|
+
negativeX : images[1],
|
82
|
+
positiveY : images[2],
|
83
|
+
negativeY : images[3],
|
84
|
+
positiveZ : images[4],
|
85
|
+
negativeZ : images[5]
|
86
|
+
}
|
87
|
+
});
|
88
|
+
});
|
89
|
+
};
|
90
|
+
|
91
|
+
return loadCubeMap;
|
92
|
+
});
|
@@ -0,0 +1,249 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'../Core/DeveloperError',
|
4
|
+
'../Core/clone',
|
5
|
+
'../ThirdParty/Tween'
|
6
|
+
], function(
|
7
|
+
DeveloperError,
|
8
|
+
clone,
|
9
|
+
Tween) {
|
10
|
+
"use strict";
|
11
|
+
|
12
|
+
/**
|
13
|
+
* DOC_TBA
|
14
|
+
*
|
15
|
+
* @alias AnimationCollection
|
16
|
+
* @constructor
|
17
|
+
*/
|
18
|
+
var AnimationCollection = function() {
|
19
|
+
};
|
20
|
+
|
21
|
+
/**
|
22
|
+
* DOC_TBA
|
23
|
+
* @memberof AnimationCollection
|
24
|
+
*
|
25
|
+
* @exception {DeveloperError} duration is required.
|
26
|
+
*/
|
27
|
+
AnimationCollection.prototype.add = function(template) {
|
28
|
+
var t = template || {};
|
29
|
+
|
30
|
+
if (typeof t.duration === 'undefined') {
|
31
|
+
throw new DeveloperError('duration is required.');
|
32
|
+
}
|
33
|
+
|
34
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
35
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
36
|
+
|
37
|
+
var value = clone(t.startValue);
|
38
|
+
var tween = new Tween.Tween(value);
|
39
|
+
tween.to(t.stopValue, t.duration);
|
40
|
+
tween.delay(t.delayDuration);
|
41
|
+
tween.easing(t.easingFunction);
|
42
|
+
if (t.onUpdate) {
|
43
|
+
tween.onUpdate(function() {
|
44
|
+
t.onUpdate(value);
|
45
|
+
});
|
46
|
+
}
|
47
|
+
tween.onComplete(t.onComplete || null);
|
48
|
+
tween.start();
|
49
|
+
|
50
|
+
return {
|
51
|
+
_tween : tween
|
52
|
+
};
|
53
|
+
};
|
54
|
+
|
55
|
+
/**
|
56
|
+
* DOC_TBA
|
57
|
+
* @memberof AnimationCollection
|
58
|
+
*
|
59
|
+
* @exception {DeveloperError} material is required.
|
60
|
+
* @exception {DeveloperError} material has no properties with alpha components.
|
61
|
+
*/
|
62
|
+
AnimationCollection.prototype.addAlpha = function(material, start, stop, template) {
|
63
|
+
if (typeof material === 'undefined') {
|
64
|
+
throw new DeveloperError('material is required.');
|
65
|
+
}
|
66
|
+
|
67
|
+
var properties = [];
|
68
|
+
|
69
|
+
for ( var property in material.uniforms) {
|
70
|
+
if (material.uniforms.hasOwnProperty(property) &&
|
71
|
+
typeof material.uniforms[property] !== 'undefined' &&
|
72
|
+
typeof material.uniforms[property].alpha !== 'undefined') {
|
73
|
+
properties.push(property);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
if (properties.length === 0) {
|
78
|
+
throw new DeveloperError('material has no properties with alpha components.');
|
79
|
+
}
|
80
|
+
|
81
|
+
// Default to fade in
|
82
|
+
start = (typeof start === 'undefined') ? 0.0 : start;
|
83
|
+
stop = (typeof stop === 'undefined') ? 1.0 : stop;
|
84
|
+
|
85
|
+
var t = template || {};
|
86
|
+
t.duration = (typeof t.duration === 'undefined') ? 3000 : t.duration;
|
87
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
88
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
89
|
+
|
90
|
+
var value = {
|
91
|
+
alpha : start
|
92
|
+
};
|
93
|
+
var tween = new Tween.Tween(value);
|
94
|
+
tween.to({
|
95
|
+
alpha : stop
|
96
|
+
}, t.duration);
|
97
|
+
tween.delay(t.delayDuration);
|
98
|
+
tween.easing(t.easingFunction);
|
99
|
+
tween.onUpdate(function() {
|
100
|
+
var length = properties.length;
|
101
|
+
for ( var i = 0; i < length; ++i) {
|
102
|
+
material.uniforms[properties[i]].alpha = value.alpha;
|
103
|
+
}
|
104
|
+
});
|
105
|
+
tween.onComplete(t.onComplete || null);
|
106
|
+
tween.start();
|
107
|
+
|
108
|
+
return {
|
109
|
+
_tween : tween
|
110
|
+
};
|
111
|
+
};
|
112
|
+
|
113
|
+
/**
|
114
|
+
* DOC_TBA
|
115
|
+
* @memberof AnimationCollection
|
116
|
+
*
|
117
|
+
* @exception {DeveloperError} object is required.
|
118
|
+
* @exception {DeveloperError} property is required.
|
119
|
+
* @exception {DeveloperError} pbject must have the specified property.
|
120
|
+
*/
|
121
|
+
AnimationCollection.prototype.addProperty = function(object, property, start, stop, template) {
|
122
|
+
if (typeof object === 'undefined') {
|
123
|
+
throw new DeveloperError('object is required.');
|
124
|
+
}
|
125
|
+
|
126
|
+
if (typeof property === 'undefined') {
|
127
|
+
throw new DeveloperError('property is required.');
|
128
|
+
}
|
129
|
+
|
130
|
+
if (typeof object[property] === 'undefined') {
|
131
|
+
throw new DeveloperError('object must have the specified property.');
|
132
|
+
}
|
133
|
+
|
134
|
+
var t = template || {};
|
135
|
+
t.duration = (typeof t.duration === 'undefined') ? 3000 : t.duration;
|
136
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
137
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
138
|
+
|
139
|
+
var value = {
|
140
|
+
value : start
|
141
|
+
};
|
142
|
+
var tween = new Tween.Tween(value);
|
143
|
+
tween.to({
|
144
|
+
value : stop
|
145
|
+
}, t.duration);
|
146
|
+
tween.delay(t.delayDuration);
|
147
|
+
tween.easing(t.easingFunction);
|
148
|
+
tween.onUpdate(function() {
|
149
|
+
object[property] = value.value;
|
150
|
+
});
|
151
|
+
tween.onComplete(t.onComplete || null);
|
152
|
+
tween.start();
|
153
|
+
|
154
|
+
return {
|
155
|
+
_tween : tween
|
156
|
+
};
|
157
|
+
};
|
158
|
+
|
159
|
+
/**
|
160
|
+
* DOC_TBA
|
161
|
+
* @memberof AnimationCollection
|
162
|
+
*
|
163
|
+
* @exception {DeveloperError} material is required.
|
164
|
+
* @exception {DeveloperError} material must have an offset property.
|
165
|
+
*/
|
166
|
+
AnimationCollection.prototype.addOffsetIncrement = function(material, template) {
|
167
|
+
if (typeof material === 'undefined') {
|
168
|
+
throw new DeveloperError('material is required.');
|
169
|
+
}
|
170
|
+
|
171
|
+
if (typeof material.uniforms.offset === 'undefined') {
|
172
|
+
throw new DeveloperError('material must have an offset property.');
|
173
|
+
}
|
174
|
+
|
175
|
+
var t = template || {};
|
176
|
+
t.duration = (typeof t.duration === 'undefined') ? 3000 : t.duration;
|
177
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
178
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
179
|
+
|
180
|
+
var value = {
|
181
|
+
offset : material.uniforms.offset
|
182
|
+
};
|
183
|
+
var tween = new Tween.Tween(value);
|
184
|
+
tween.to({
|
185
|
+
offset : material.uniforms.offset + 1.0
|
186
|
+
}, t.duration);
|
187
|
+
tween.delay(t.delayDuration);
|
188
|
+
tween.easing(t.easingFunction);
|
189
|
+
tween.onUpdate(function() {
|
190
|
+
material.uniforms.offset = value.offset;
|
191
|
+
});
|
192
|
+
// t.onComplete is ignored.
|
193
|
+
tween.onComplete(function() {
|
194
|
+
tween.to({
|
195
|
+
offset : material.uniforms.offset + 1.0
|
196
|
+
}, t.duration);
|
197
|
+
tween.start();
|
198
|
+
});
|
199
|
+
tween.start();
|
200
|
+
|
201
|
+
return {
|
202
|
+
_tween : tween
|
203
|
+
};
|
204
|
+
};
|
205
|
+
|
206
|
+
/**
|
207
|
+
* DOC_TBA
|
208
|
+
* @memberof AnimationCollection
|
209
|
+
*/
|
210
|
+
AnimationCollection.prototype.remove = function(animation) {
|
211
|
+
if (typeof animation !== 'undefined') {
|
212
|
+
var count = Tween.getAll().length;
|
213
|
+
Tween.remove(animation._tween);
|
214
|
+
|
215
|
+
return Tween.getAll().length === (count - 1);
|
216
|
+
}
|
217
|
+
|
218
|
+
return false;
|
219
|
+
};
|
220
|
+
|
221
|
+
/**
|
222
|
+
* DOC_TBA
|
223
|
+
* @memberof AnimationCollection
|
224
|
+
*/
|
225
|
+
AnimationCollection.prototype.removeAll = function() {
|
226
|
+
Tween.removeAll();
|
227
|
+
};
|
228
|
+
|
229
|
+
/**
|
230
|
+
* DOC_TBA
|
231
|
+
* @memberof Animationcollection
|
232
|
+
*/
|
233
|
+
AnimationCollection.prototype.contains = function(animation) {
|
234
|
+
if (typeof animation !== 'undefined') {
|
235
|
+
return Tween.getAll().indexOf(animation._tween) !== -1;
|
236
|
+
}
|
237
|
+
return false;
|
238
|
+
};
|
239
|
+
|
240
|
+
/**
|
241
|
+
* DOC_TBA
|
242
|
+
* @memberof AnimationCollection
|
243
|
+
*/
|
244
|
+
AnimationCollection.prototype.update = function() {
|
245
|
+
Tween.update();
|
246
|
+
};
|
247
|
+
|
248
|
+
return AnimationCollection;
|
249
|
+
});
|
@@ -0,0 +1,384 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'../Core/defaultValue',
|
4
|
+
'../Core/jsonp',
|
5
|
+
'../Core/writeTextToCanvas',
|
6
|
+
'../Core/Cartesian2',
|
7
|
+
'../Core/DeveloperError',
|
8
|
+
'../Core/Event',
|
9
|
+
'../Core/RuntimeError',
|
10
|
+
'./DiscardMissingTileImagePolicy',
|
11
|
+
'./GeographicTilingScheme',
|
12
|
+
'./ImageryProvider',
|
13
|
+
'./ImageryProviderError',
|
14
|
+
'./WebMercatorTilingScheme',
|
15
|
+
'../ThirdParty/when'
|
16
|
+
], function(
|
17
|
+
defaultValue,
|
18
|
+
jsonp,
|
19
|
+
writeTextToCanvas,
|
20
|
+
Cartesian2,
|
21
|
+
DeveloperError,
|
22
|
+
Event,
|
23
|
+
RuntimeError,
|
24
|
+
DiscardMissingTileImagePolicy,
|
25
|
+
GeographicTilingScheme,
|
26
|
+
ImageryProvider,
|
27
|
+
ImageryProviderError,
|
28
|
+
WebMercatorTilingScheme,
|
29
|
+
when) {
|
30
|
+
"use strict";
|
31
|
+
|
32
|
+
/**
|
33
|
+
* Provides tiled imagery hosted by an ArcGIS MapServer. By default, the server's pre-cached tiles are
|
34
|
+
* used, if available.
|
35
|
+
*
|
36
|
+
* @alias ArcGisMapServerImageryProvider
|
37
|
+
* @constructor
|
38
|
+
*
|
39
|
+
* @param {String} description.url The URL of the ArcGIS MapServer service.
|
40
|
+
* @param {TileDiscardPolicy} [description.tileDiscardPolicy] The policy that determines if a tile
|
41
|
+
* is invalid and should be discarded. If this value is not specified, a default
|
42
|
+
* {@link DiscardMissingTileImagePolicy} is used for tiled map servers, and a
|
43
|
+
* {@link NeverTileDiscardPolicy} is used for non-tiled map servers. In the former case,
|
44
|
+
* we request tile 0,0 at the maximum tile level and check pixels (0,0), (200,20), (20,200),
|
45
|
+
* (80,110), and (160, 130). If all of these pixels are transparent, the discard check is
|
46
|
+
* disabled and no tiles are discarded. If any of them have a non-transparent color, any
|
47
|
+
* tile that has the same values in these pixel locations is discarded. The end result of
|
48
|
+
* these defaults should be correct tile discarding for a standard ArcGIS Server. To ensure
|
49
|
+
* that no tiles are discarded, construct and pass a {@link NeverTileDiscardPolicy} for this
|
50
|
+
* parameter.
|
51
|
+
* @param {Proxy} [description.proxy] A proxy to use for requests. This object is
|
52
|
+
* expected to have a getURL function which returns the proxied URL, if needed.
|
53
|
+
* @param {Boolean} [description.usePreCachedTilesIfAvailable=true] If true, the server's pre-cached
|
54
|
+
* tiles are used if they are available. If false, any pre-cached tiles are ignored and the
|
55
|
+
* 'export' service is used.
|
56
|
+
*
|
57
|
+
* @exception {DeveloperError} <code>description.url</code> is required.
|
58
|
+
*
|
59
|
+
* @see BingMapsImageryProvider
|
60
|
+
* @see OpenStreetMapImageryProvider
|
61
|
+
* @see SingleTileImageryProvider
|
62
|
+
* @see TileMapServiceImageryProvider
|
63
|
+
* @see WebMapServiceImageryProvider
|
64
|
+
*
|
65
|
+
* @see <a href='http://resources.esri.com/help/9.3/arcgisserver/apis/rest/'>ArcGIS Server REST API</a>
|
66
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
67
|
+
*
|
68
|
+
* @example
|
69
|
+
* var esri = new ArcGisMapServerImageryProvider({
|
70
|
+
* url: 'http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
|
71
|
+
* });
|
72
|
+
*/
|
73
|
+
var ArcGisMapServerImageryProvider = function ArcGisMapServerImageryProvider(description) {
|
74
|
+
description = defaultValue(description, {});
|
75
|
+
|
76
|
+
if (typeof description.url === 'undefined') {
|
77
|
+
throw new DeveloperError('description.url is required.');
|
78
|
+
}
|
79
|
+
|
80
|
+
this._url = description.url;
|
81
|
+
this._tileDiscardPolicy = description.tileDiscardPolicy;
|
82
|
+
this._proxy = description.proxy;
|
83
|
+
|
84
|
+
this._tileWidth = undefined;
|
85
|
+
this._tileHeight = undefined;
|
86
|
+
this._maximumLevel = undefined;
|
87
|
+
this._tilingScheme = undefined;
|
88
|
+
this._logo = undefined;
|
89
|
+
this._useTiles = defaultValue(description.usePreCachedTilesIfAvailable, true);
|
90
|
+
|
91
|
+
this._errorEvent = new Event();
|
92
|
+
|
93
|
+
this._ready = false;
|
94
|
+
|
95
|
+
// Grab the details of this MapServer.
|
96
|
+
var that = this;
|
97
|
+
var metadataError;
|
98
|
+
|
99
|
+
function metadataSuccess(data) {
|
100
|
+
var tileInfo = data.tileInfo;
|
101
|
+
if (!that._useTiles || typeof tileInfo === 'undefined') {
|
102
|
+
that._tileWidth = 256;
|
103
|
+
that._tileHeight = 256;
|
104
|
+
that._tilingScheme = new GeographicTilingScheme();
|
105
|
+
that._useTiles = false;
|
106
|
+
} else {
|
107
|
+
that._tileWidth = tileInfo.rows;
|
108
|
+
that._tileHeight = tileInfo.cols;
|
109
|
+
|
110
|
+
if (tileInfo.spatialReference.wkid === 102100) {
|
111
|
+
that._tilingScheme = new WebMercatorTilingScheme();
|
112
|
+
} else if (data.tileInfo.spatialReference.wkid === 4326) {
|
113
|
+
that._tilingScheme = new GeographicTilingScheme();
|
114
|
+
} else {
|
115
|
+
var message = 'Tile spatial reference WKID ' + data.tileInfo.spatialReference.wkid + ' is not supported.';
|
116
|
+
metadataError = ImageryProviderError.handleError(metadataError, that, that._errorEvent, message, undefined, undefined, undefined, requestMetadata);
|
117
|
+
return;
|
118
|
+
}
|
119
|
+
that._maximumLevel = data.tileInfo.lods.length - 1;
|
120
|
+
|
121
|
+
// Install the default tile discard policy if none has been supplied.
|
122
|
+
if (typeof that._tileDiscardPolicy === 'undefined') {
|
123
|
+
that._tileDiscardPolicy = new DiscardMissingTileImagePolicy({
|
124
|
+
missingImageUrl : buildImageUrl(that, 0, 0, that._maximumLevel),
|
125
|
+
pixelsToCheck : [new Cartesian2(0, 0), new Cartesian2(200, 20), new Cartesian2(20, 200), new Cartesian2(80, 110), new Cartesian2(160, 130)],
|
126
|
+
disableCheckIfAllPixelsAreTransparent : true
|
127
|
+
});
|
128
|
+
}
|
129
|
+
|
130
|
+
that._useTiles = true;
|
131
|
+
}
|
132
|
+
|
133
|
+
if (typeof data.copyrightText !== 'undefined' && data.copyrightText.length > 0) {
|
134
|
+
that._logo = writeTextToCanvas(data.copyrightText, {
|
135
|
+
font : '12px sans-serif'
|
136
|
+
});
|
137
|
+
}
|
138
|
+
|
139
|
+
that._ready = true;
|
140
|
+
ImageryProviderError.handleSuccess(metadataError);
|
141
|
+
}
|
142
|
+
|
143
|
+
function metadataFailure(e) {
|
144
|
+
var message = 'An error occurred while accessing ' + that._url + '.';
|
145
|
+
metadataError = ImageryProviderError.handleError(metadataError, that, that._errorEvent, message, undefined, undefined, undefined, requestMetadata);
|
146
|
+
}
|
147
|
+
|
148
|
+
function requestMetadata() {
|
149
|
+
var metadata = jsonp(that._url, {
|
150
|
+
parameters : {
|
151
|
+
f : 'json'
|
152
|
+
},
|
153
|
+
proxy : that._proxy
|
154
|
+
});
|
155
|
+
when(metadata, metadataSuccess, metadataFailure);
|
156
|
+
}
|
157
|
+
|
158
|
+
requestMetadata();
|
159
|
+
};
|
160
|
+
|
161
|
+
function buildImageUrl(imageryProvider, x, y, level) {
|
162
|
+
var url;
|
163
|
+
if (imageryProvider._useTiles) {
|
164
|
+
url = imageryProvider._url + '/tile/' + level + '/' + y + '/' + x;
|
165
|
+
} else {
|
166
|
+
var nativeExtent = imageryProvider._tilingScheme.tileXYToNativeExtent(x, y, level);
|
167
|
+
var bbox = nativeExtent.west + '%2C' + nativeExtent.south + '%2C' + nativeExtent.east + '%2C' + nativeExtent.north;
|
168
|
+
|
169
|
+
url = imageryProvider._url + '/export?';
|
170
|
+
url += 'bbox=' + bbox;
|
171
|
+
url += '&bboxSR=4326&size=256%2C256&imageSR=4326&format=png&transparent=true&f=image';
|
172
|
+
}
|
173
|
+
|
174
|
+
var proxy = imageryProvider._proxy;
|
175
|
+
if (typeof proxy !== 'undefined') {
|
176
|
+
url = proxy.getURL(url);
|
177
|
+
}
|
178
|
+
|
179
|
+
return url;
|
180
|
+
}
|
181
|
+
|
182
|
+
/**
|
183
|
+
* Gets a value indicating whether this imagery provider is using pre-cached tiles from the
|
184
|
+
* ArcGIS MapServer. If the imagery provider is not yet ready ({@link ArcGisMapServerImageryProvider#isReady}), this function
|
185
|
+
* will return the value of `description.usePreCachedTilesIfAvailable`, even if the MapServer does
|
186
|
+
* not have pre-cached tiles.
|
187
|
+
*
|
188
|
+
* @memberof ArcGisMapServerImageryProvider
|
189
|
+
*
|
190
|
+
* @returns {Boolean} true if this imagery provider is using pre-cached tiles from the ArcGIS MapServer;
|
191
|
+
* otherwise, false.
|
192
|
+
*/
|
193
|
+
ArcGisMapServerImageryProvider.prototype.isUsingPrecachedTiles = function() {
|
194
|
+
return this._useTiles;
|
195
|
+
};
|
196
|
+
|
197
|
+
/**
|
198
|
+
* Gets the URL of the ArcGIS MapServer.
|
199
|
+
*
|
200
|
+
* @memberof ArcGisMapServerImageryProvider
|
201
|
+
*
|
202
|
+
* @returns {String} The URL.
|
203
|
+
*/
|
204
|
+
ArcGisMapServerImageryProvider.prototype.getUrl = function() {
|
205
|
+
return this._url;
|
206
|
+
};
|
207
|
+
|
208
|
+
/**
|
209
|
+
* Gets the width of each tile, in pixels. This function should
|
210
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
211
|
+
*
|
212
|
+
* @memberof ArcGisMapServerImageryProvider
|
213
|
+
*
|
214
|
+
* @returns {Number} The width.
|
215
|
+
*
|
216
|
+
* @exception {DeveloperError} <code>getTileWidth</code> must not be called before the imagery provider is ready.
|
217
|
+
*/
|
218
|
+
ArcGisMapServerImageryProvider.prototype.getTileWidth = function() {
|
219
|
+
if (!this._ready) {
|
220
|
+
throw new DeveloperError('getTileWidth must not be called before the imagery provider is ready.');
|
221
|
+
}
|
222
|
+
return this._tileWidth;
|
223
|
+
};
|
224
|
+
|
225
|
+
/**
|
226
|
+
* Gets the height of each tile, in pixels. This function should
|
227
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
228
|
+
*
|
229
|
+
* @memberof ArcGisMapServerImageryProvider
|
230
|
+
*
|
231
|
+
* @returns {Number} The height.
|
232
|
+
*
|
233
|
+
* @exception {DeveloperError} <code>getTileHeight</code> must not be called before the imagery provider is ready.
|
234
|
+
*/
|
235
|
+
ArcGisMapServerImageryProvider.prototype.getTileHeight = function() {
|
236
|
+
if (!this._ready) {
|
237
|
+
throw new DeveloperError('getTileHeight must not be called before the imagery provider is ready.');
|
238
|
+
}
|
239
|
+
return this._tileHeight;
|
240
|
+
};
|
241
|
+
|
242
|
+
/**
|
243
|
+
* Gets the maximum level-of-detail that can be requested. This function should
|
244
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
245
|
+
*
|
246
|
+
* @memberof ArcGisMapServerImageryProvider
|
247
|
+
*
|
248
|
+
* @returns {Number} The maximum level, or undefined if there is no maximum level.
|
249
|
+
*
|
250
|
+
* @exception {DeveloperError} <code>getMaximumLevel</code> must not be called before the imagery provider is ready.
|
251
|
+
*/
|
252
|
+
ArcGisMapServerImageryProvider.prototype.getMaximumLevel = function() {
|
253
|
+
if (!this._ready) {
|
254
|
+
throw new DeveloperError('getMaximumLevel must not be called before the imagery provider is ready.');
|
255
|
+
}
|
256
|
+
return this._maximumLevel;
|
257
|
+
};
|
258
|
+
|
259
|
+
/**
|
260
|
+
* Gets the tiling scheme used by this provider. This function should
|
261
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
262
|
+
*
|
263
|
+
* @memberof ArcGisMapServerImageryProvider
|
264
|
+
*
|
265
|
+
* @returns {TilingScheme} The tiling scheme.
|
266
|
+
* @see WebMercatorTilingScheme
|
267
|
+
* @see GeographicTilingScheme
|
268
|
+
*
|
269
|
+
* @exception {DeveloperError} <code>getTilingScheme</code> must not be called before the imagery provider is ready.
|
270
|
+
*/
|
271
|
+
ArcGisMapServerImageryProvider.prototype.getTilingScheme = function() {
|
272
|
+
if (!this._ready) {
|
273
|
+
throw new DeveloperError('getTilingScheme must not be called before the imagery provider is ready.');
|
274
|
+
}
|
275
|
+
return this._tilingScheme;
|
276
|
+
};
|
277
|
+
|
278
|
+
/**
|
279
|
+
* Gets the extent, in radians, of the imagery provided by this instance. This function should
|
280
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
281
|
+
*
|
282
|
+
* @memberof ArcGisMapServerImageryProvider
|
283
|
+
*
|
284
|
+
* @returns {Extent} The extent.
|
285
|
+
*
|
286
|
+
* @exception {DeveloperError} <code>getExtent</code> must not be called before the imagery provider is ready.
|
287
|
+
*/
|
288
|
+
ArcGisMapServerImageryProvider.prototype.getExtent = function() {
|
289
|
+
if (!this._ready) {
|
290
|
+
throw new DeveloperError('getExtent must not be called before the imagery provider is ready.');
|
291
|
+
}
|
292
|
+
return this._tilingScheme.getExtent();
|
293
|
+
};
|
294
|
+
|
295
|
+
/**
|
296
|
+
* Gets the tile discard policy. If not undefined, the discard policy is responsible
|
297
|
+
* for filtering out "missing" tiles via its shouldDiscardImage function. If this function
|
298
|
+
* returns undefined, no tiles are filtered. This function should
|
299
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
300
|
+
*
|
301
|
+
* @memberof ArcGisMapServerImageryProvider
|
302
|
+
*
|
303
|
+
* @returns {TileDiscardPolicy} The discard policy.
|
304
|
+
*
|
305
|
+
* @see DiscardMissingTileImagePolicy
|
306
|
+
* @see NeverTileDiscardPolicy
|
307
|
+
*
|
308
|
+
* @exception {DeveloperError} <code>getTileDiscardPolicy</code> must not be called before the imagery provider is ready.
|
309
|
+
*/
|
310
|
+
ArcGisMapServerImageryProvider.prototype.getTileDiscardPolicy = function() {
|
311
|
+
if (!this._ready) {
|
312
|
+
throw new DeveloperError('getTileDiscardPolicy must not be called before the imagery provider is ready.');
|
313
|
+
}
|
314
|
+
return this._tileDiscardPolicy;
|
315
|
+
};
|
316
|
+
|
317
|
+
/**
|
318
|
+
* Gets an event that is raised when the imagery provider encounters an asynchronous error. By subscribing
|
319
|
+
* to the event, you will be notified of the error and can potentially recover from it. Event listeners
|
320
|
+
* are passed an instance of {@link ImageryProviderError}.
|
321
|
+
*
|
322
|
+
* @memberof ArcGisMapServerImageryProvider
|
323
|
+
*
|
324
|
+
* @returns {Event} The event.
|
325
|
+
*/
|
326
|
+
ArcGisMapServerImageryProvider.prototype.getErrorEvent = function() {
|
327
|
+
return this._errorEvent;
|
328
|
+
};
|
329
|
+
|
330
|
+
/**
|
331
|
+
* Gets a value indicating whether or not the provider is ready for use.
|
332
|
+
*
|
333
|
+
* @memberof ArcGisMapServerImageryProvider
|
334
|
+
*
|
335
|
+
* @returns {Boolean} True if the provider is ready to use; otherwise, false.
|
336
|
+
*/
|
337
|
+
ArcGisMapServerImageryProvider.prototype.isReady = function() {
|
338
|
+
return this._ready;
|
339
|
+
};
|
340
|
+
|
341
|
+
/**
|
342
|
+
* Requests the image for a given tile. This function should
|
343
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
344
|
+
*
|
345
|
+
* @memberof ArcGisMapServerImageryProvider
|
346
|
+
*
|
347
|
+
* @param {Number} x The tile X coordinate.
|
348
|
+
* @param {Number} y The tile Y coordinate.
|
349
|
+
* @param {Number} level The tile level.
|
350
|
+
*
|
351
|
+
* @returns {Promise} A promise for the image that will resolve when the image is available, or
|
352
|
+
* undefined if there are too many active requests to the server, and the request
|
353
|
+
* should be retried later. The resolved image may be either an
|
354
|
+
* Image or a Canvas DOM object.
|
355
|
+
*
|
356
|
+
* @exception {DeveloperError} <code>requestImage</code> must not be called before the imagery provider is ready.
|
357
|
+
*/
|
358
|
+
ArcGisMapServerImageryProvider.prototype.requestImage = function(x, y, level) {
|
359
|
+
if (!this._ready) {
|
360
|
+
throw new DeveloperError('requestImage must not be called before the imagery provider is ready.');
|
361
|
+
}
|
362
|
+
var url = buildImageUrl(this, x, y, level);
|
363
|
+
return ImageryProvider.loadImage(url);
|
364
|
+
};
|
365
|
+
|
366
|
+
/**
|
367
|
+
* Gets the logo to display when this imagery provider is active. Typically this is used to credit
|
368
|
+
* the source of the imagery. This function should not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
369
|
+
*
|
370
|
+
* @memberof ArcGisMapServerImageryProvider
|
371
|
+
*
|
372
|
+
* @returns {Image|Canvas} A canvas or image containing the log to display, or undefined if there is no logo.
|
373
|
+
*
|
374
|
+
* @exception {DeveloperError} <code>getLogo</code> must not be called before the imagery provider is ready.
|
375
|
+
*/
|
376
|
+
ArcGisMapServerImageryProvider.prototype.getLogo = function() {
|
377
|
+
if (!this._ready) {
|
378
|
+
throw new DeveloperError('getLogo must not be called before the imagery provider is ready.');
|
379
|
+
}
|
380
|
+
return this._logo;
|
381
|
+
};
|
382
|
+
|
383
|
+
return ArcGisMapServerImageryProvider;
|
384
|
+
});
|