| @@ -729,7 +729,7 @@ let position1 = DC.Position.fromString('120,22,102') | |||
| let position2 = DC.Position.fromArray([120, 22, 102]) | |||
| let position3 = DC.Position.fromObject({ lng: 120, lat: 22, height: 102 }) | |||
| let position3 = DC.Position.fromObject({ lng: 120, lat: 22, alt: 102 }) | |||
| ``` | |||
| ### creation | |||
| @@ -1,48 +1,47 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1, | |||
| }) | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84' | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1 | |||
| }) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let polyline = new DC.Polyline('-75, 35; -125, 35; -125, 10') | |||
| polyline.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineCustomEndpointMaterialProperty({ | |||
| color: DC.Color.BLUE, | |||
| // outlineColor: DC.Color.GREEN, | |||
| startType: 2, | |||
| endType: 1, | |||
| outlineShow: true, | |||
| lineWidth: 50, | |||
| }), | |||
| clampToGround: true, | |||
| }) | |||
| layer.addOverlay(polyline) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| let polyline = new DC.Polyline('-75, 35; -125, 35; -125, 10') | |||
| polyline.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineCustomEndpointMaterialProperty({ | |||
| color: DC.Color.BLUE, | |||
| startType: 2, | |||
| endType: 1, | |||
| outlineShow: true, | |||
| lineWidth: 50 | |||
| }), | |||
| clampToGround: true | |||
| }) | |||
| layer.addOverlay(polyline) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -1,53 +1,43 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1, | |||
| }) | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84' | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1 | |||
| }) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let polyline = new DC.Polyline('-75, 35; -125, 35; -125, 10') | |||
| polyline.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineDashArrowMaterialProperty({ | |||
| color: DC.Color.BLUE, | |||
| }), | |||
| clampToGround: true, | |||
| }) | |||
| layer.addOverlay(polyline) | |||
| let polyline2 = new DC.Polyline('-60, 20; -110, 20; -110, -80') | |||
| polyline2.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineEmissionMaterialProperty({ | |||
| color: DC.Color.BLUE, | |||
| }), | |||
| clampToGround: true, | |||
| }) | |||
| layer.addOverlay(polyline2) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| let polyline = new DC.Polyline('-75, 35; -125, 35; -125, 10') | |||
| polyline.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineDashArrowMaterialProperty({ | |||
| color: DC.Color.BLUE | |||
| }), | |||
| clampToGround: true | |||
| }) | |||
| layer.addOverlay(polyline) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -1,59 +1,59 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1, | |||
| }) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84' | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1 | |||
| }) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let polyline = new DC.Polyline('-75, 35; -100, 35;-100, 30;-75, 30') | |||
| polyline.setStyle({ | |||
| width: 10, | |||
| material: new DC.PolylineImageTrailMaterialProperty({ | |||
| color: new DC.Color(0, 1, 1), | |||
| speed: 20, | |||
| image: '../assets/icon/arrow.png', | |||
| repeat: { x: 40, y: 1 }, | |||
| }), | |||
| clampToGround: true, | |||
| }) | |||
| let polyline = new DC.Polyline('-75, 35; -100, 35;-100, 30;-75, 30') | |||
| polyline.setStyle({ | |||
| width: 10, | |||
| material: new DC.PolylineImageTrailMaterialProperty({ | |||
| color: new DC.Color(0, 1, 1), | |||
| speed: 20, | |||
| image: '../assets/icon/arrow.png', | |||
| repeat: { x: 40, y: 1 } | |||
| }), | |||
| clampToGround: true | |||
| }) | |||
| let polyline1 = new DC.Polyline('-75, 25; -100, 25') | |||
| polyline1.setStyle({ | |||
| width: 10, | |||
| arcType: 1, | |||
| material: new DC.PolylineImageTrailMaterialProperty({ | |||
| color: DC.Color.GREEN, | |||
| speed: 20, | |||
| image: '../assets/icon/arrow_1.png', | |||
| repeat: { x: 40, y: 1 }, | |||
| }), | |||
| clampToGround: true, | |||
| }) | |||
| let polyline1 = new DC.Polyline('-75, 25; -100, 25') | |||
| polyline1.setStyle({ | |||
| width: 10, | |||
| arcType: 1, | |||
| material: new DC.PolylineImageTrailMaterialProperty({ | |||
| color: DC.Color.GREEN, | |||
| speed: 20, | |||
| image: '../assets/icon/arrow_1.png', | |||
| repeat: { x: 40, y: 1 } | |||
| }), | |||
| clampToGround: true | |||
| }) | |||
| layer.addOverlay(polyline).addOverlay(polyline1) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| layer.addOverlay(polyline).addOverlay(polyline1) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -1,45 +1,45 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1, | |||
| }) | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| DC.config.baseUrl = '../libs/dc-sdk/resources/' | |||
| let viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84' | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| brightness: 0.1 | |||
| }) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let layer = new DC.VectorLayer('layer') | |||
| viewer.addLayer(layer) | |||
| let polyline = new DC.Polyline('-75, 35; -125, 35; -125, 10') | |||
| polyline.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineMultiArrowMaterialProperty({ | |||
| color: DC.Color.WHITE, | |||
| repeatFactor: 100.0, | |||
| antiClockWise: true, | |||
| }), | |||
| clampToGround: true, | |||
| }) | |||
| layer.addOverlay(polyline) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| let polyline = new DC.Polyline('-75, 35; -125, 35; -125, 10') | |||
| polyline.setStyle({ | |||
| width: 20, | |||
| material: new DC.PolylineMultiArrowMaterialProperty({ | |||
| color: DC.Color.WHITE, | |||
| repeatFactor: 10.0, | |||
| antiClockWise: true | |||
| }), | |||
| clampToGround: true | |||
| }) | |||
| layer.addOverlay(polyline) | |||
| viewer.flyTo(layer) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -64,7 +64,7 @@ | |||
| "dist" | |||
| ], | |||
| "dependencies": { | |||
| "cesium": "^1.133.1", | |||
| "cesium": "^1.134.1", | |||
| "supercluster": "^8.0.1" | |||
| } | |||
| } | |||
| @@ -67,6 +67,7 @@ class ImageryLayerFactory { | |||
| } | |||
| /** | |||
| * | |||
| * Create arcgis imagery layer | |||
| * @param options | |||
| * @returns {Promise<ArcGisMapServerImageryProvider>} | |||
| @@ -94,84 +95,96 @@ class ImageryLayerFactory { | |||
| } | |||
| /** | |||
| * Create single tile imagery layer | |||
| * Create TMS imagery layer | |||
| * @param options | |||
| * @returns {<SingleTileImageryProvider>} | |||
| * @returns {Promise<TileMapServiceImageryProvider>} | |||
| */ | |||
| static createSingleTileImageryLayer(options) { | |||
| return Cesium.SingleTileImageryProvider.fromUrl(options.url, options) | |||
| static createTMSImageryLayer(options) { | |||
| return Cesium.TileMapServiceImageryProvider.fromUrl(options.url, options) | |||
| } | |||
| /** | |||
| * Create WMS imagery layer | |||
| * Create grid imagery layer | |||
| * @param options | |||
| * @returns {Promise<WebMapServiceImageryProvider>} | |||
| * @returns {Promise<GridImageryProvider>} | |||
| */ | |||
| static createWMSImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.WebMapServiceImageryProvider(options)) | |||
| static createGridImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.GridImageryProvider(options)) | |||
| } | |||
| /** | |||
| * Create WMTS imagery layer | |||
| * Create google 2d imagery layer | |||
| * @param options | |||
| * @returns {Promise<WebMapTileServiceImageryProvider>} | |||
| * @returns {Promise<Google2DImageryProvider>} | |||
| */ | |||
| static createWMTSImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.WebMapTileServiceImageryProvider(options)) | |||
| static createGoogle2DImageryLayer(options) { | |||
| let provider = Cesium.Google2DImageryProvider | |||
| return options.assetId | |||
| ? provider.fromIonAssetId(options) | |||
| : provider.fromUrl(options) | |||
| } | |||
| /** | |||
| * Create xyz imagery layer | |||
| * Create mapbox imagery layer | |||
| * @param options | |||
| * @returns {Promise<UrlTemplateImageryProvider>} | |||
| * @returns {Promise<MapboxImageryProvider>} | |||
| */ | |||
| static createXYZImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.UrlTemplateImageryProvider(options)) | |||
| static createMapboxImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.MapboxImageryProvider(options)) | |||
| } | |||
| /** | |||
| * Create coord imagery layer | |||
| * Create mapbox style imagery layer | |||
| * @param options | |||
| * @returns {Promise<TileCoordinatesImageryProvider>} | |||
| * @returns {Promise<MapboxStyleImageryProvider>} | |||
| */ | |||
| static createCoordImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.TileCoordinatesImageryProvider(options)) | |||
| static createMapboxStyleImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.MapboxStyleImageryProvider(options)) | |||
| } | |||
| /** | |||
| * Create grid imagery layer | |||
| * Create single tile imagery layer | |||
| * @param options | |||
| * @returns {Promise<GridImageryProvider>} | |||
| * @returns {<SingleTileImageryProvider>} | |||
| */ | |||
| static createGridImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.GridImageryProvider(options)) | |||
| static createSingleTileImageryLayer(options) { | |||
| return Cesium.SingleTileImageryProvider.fromUrl(options.url, options) | |||
| } | |||
| /** | |||
| * Create mapbox imagery layer | |||
| * Create coord imagery layer | |||
| * @param options | |||
| * @returns {Promise<MapboxImageryProvider>} | |||
| * @returns {Promise<TileCoordinatesImageryProvider>} | |||
| */ | |||
| static createMapboxImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.MapboxImageryProvider(options)) | |||
| static createCoordImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.TileCoordinatesImageryProvider(options)) | |||
| } | |||
| /** | |||
| * Create mapbox style imagery layer | |||
| * Create xyz imagery layer | |||
| * @param options | |||
| * @returns {Promise<MapboxStyleImageryProvider>} | |||
| * @returns {Promise<UrlTemplateImageryProvider>} | |||
| */ | |||
| static createMapboxStyleImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.MapboxStyleImageryProvider(options)) | |||
| static createXYZImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.UrlTemplateImageryProvider(options)) | |||
| } | |||
| /** | |||
| * Create TMS imagery layer | |||
| * Create WMS imagery layer | |||
| * @param options | |||
| * @returns {Promise<TileMapServiceImageryProvider>} | |||
| * @returns {Promise<WebMapServiceImageryProvider>} | |||
| */ | |||
| static createTMSImageryLayer(options) { | |||
| return Cesium.TileMapServiceImageryProvider.fromUrl(options.url, options) | |||
| static createWMSImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.WebMapServiceImageryProvider(options)) | |||
| } | |||
| /** | |||
| * Create WMTS imagery layer | |||
| * @param options | |||
| * @returns {Promise<WebMapTileServiceImageryProvider>} | |||
| */ | |||
| static createWMTSImageryLayer(options) { | |||
| return Promise.resolve(new Cesium.WebMapTileServiceImageryProvider(options)) | |||
| } | |||
| /** | |||
| @@ -228,6 +241,9 @@ class ImageryLayerFactory { | |||
| case ImageryType.GRID: | |||
| promise = this.createGridImageryLayer(options) | |||
| break | |||
| case ImageryType.GOOGLE_2D: | |||
| promise = this.createGoogle2DImageryLayer(options) | |||
| break | |||
| case ImageryType.MAPBOX: | |||
| promise = this.createMapboxImageryLayer(options) | |||
| break | |||
| @@ -5,16 +5,17 @@ | |||
| let ImageryType = { | |||
| ARCGIS: 'arcgis', | |||
| BING: 'bing', | |||
| OSM: 'osm', | |||
| SINGLE_TILE: 'single_tile', | |||
| WMS: 'wms', | |||
| WMTS: 'wmts', | |||
| XYZ: 'xyz', | |||
| COORD: 'coord', | |||
| GRID: 'grid', | |||
| GOOGLE_2D: 'google_2d', | |||
| OSM: 'osm', | |||
| MAPBOX: 'mapbox', | |||
| MAPBOX_STYLE: 'mapbox_style', | |||
| SINGLE_TILE: 'single_tile', | |||
| TMS: 'tms', | |||
| WMS: 'wms', | |||
| WMTS: 'wmts', | |||
| XYZ: 'xyz', | |||
| } | |||
| export default ImageryType | |||
| @@ -4,19 +4,19 @@ uniform vec4 color; | |||
| uniform vec2 repeat; | |||
| czm_material czm_getMaterial(czm_materialInput materialInput){ | |||
| czm_material material = czm_getDefaultMaterial(materialInput); | |||
| vec2 st = repeat * materialInput.st; | |||
| float time = fract(czm_frameNumber * speed / 1000.0); | |||
| vec4 colorImage = texture(image, vec2(fract(st.s - time), st.t)); | |||
| if(color.a == 0.0){ | |||
| if(colorImage.rgb == vec3(1.0) || colorImage.rgb == vec3(0.0)){ | |||
| discard; | |||
| } | |||
| czm_material material = czm_getDefaultMaterial(materialInput); | |||
| vec2 st = repeat * materialInput.st; | |||
| float time = fract(czm_frameNumber * speed / 1000.0); | |||
| vec4 colorImage = texture(image, vec2(fract(st.s - time), st.t)); | |||
| if (color.a == 0.0){ | |||
| if (colorImage.rgb == vec3(1.0) || colorImage.rgb == vec3(0.0)){ | |||
| discard; | |||
| } | |||
| material.alpha = colorImage.a; | |||
| material.diffuse = colorImage.rgb; | |||
| }else{ | |||
| } else { | |||
| material.alpha = colorImage.a * color.a; | |||
| material.diffuse = max(color.rgb * material.alpha * 3.0, color.rgb); | |||
| } | |||
| return material; | |||
| } | |||
| return material; | |||
| } | |||