顯示源代碼
                高程-等高線
                 開發文檔
                            <!DOCTYPE html>
                
                <html>
                <head>
                    <meta charset='UTF-8'/>
                    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no'/>
                    <link  rel='stylesheet'/>
                    <script src='http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>
                    
                    <script type="text/javascript" src="http://www.xawiki.com/Public/common/js/jquery.min.js"></script>
                    <style>
                        body {
                            margin: 0;
                            padding: 0;
                        }
                        #container {
                            position: absolute;
                            top: 0;
                            bottom: 0;
                            width: 100%;
                        }
                        .toolbar{
                            position: absolute;
                            left:20px;
                            top:15px;
                            z-index: 99;
                            color: #222;
                            background-color: rgba(220,220,220,0.8);
                            padding: 0 10px;
                        }
                        .bmgl-widget-credits{display:none}
                    </style>
                    <title>part_test</title>
                </head>
                <body>
                <div id='container'></div>
                <div class="toolbar">
                    <p>
                        <label>
                            <input type="radio"  name="type" value="">影像
                        </label>
                        <label>
                            <input type="radio" checked name="type" value="elevation">高程
                        </label>
                        <label>
                            <input type="radio" name="type" value="aspect">方位
                        </label>
                    </p>
                    <p>
                        <label><input type="checkbox" value="line" checked name="line">等高線</label>
                    </p>
                </div>
                <script>
                    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                    var viewer = new bmgl.Viewer('container', {
                        terrainId: 'bigemap.dc-terrain',
                        mapId: 'bigemap.dc-satellite'
                    });
                    $('input').on('click',function () {
                        var v=$(this).val();
                        if (v==='line'){
                            viewModel.enableContour=$(this).prop('checked');
                        }else{
                            viewModel.selectedShading=v;
                        }
                        updateMaterial();
                    });
                    viewer.camera.setView({
                        destination:new bmgl.Cartesian3(-1233524.2528105492,5342784.449529671,3266300.735257586),
                        orientation:{
                            heading:5.737109377827798,
                            roll:6.281571490802099,
                            pitch:-0.3089655832119651,
                        }
                    })
                    viewer.scene.globe.enableLighting = true;
                
                    function getElevationContourMaterial() {
                        return new bmgl.Material({
                            fabric: {
                                type: 'ElevationColorContour',
                                materials: {
                                    contourMaterial: {
                                        type: 'ElevationContour'
                                    },
                                    elevationRampMaterial: {
                                        type: 'ElevationRamp'
                                    }
                                },
                                components: {
                                    diffuse: 'contourMaterial.alpha == 0.0 ? elevationRampMaterial.diffuse : contourMaterial.diffuse',
                                    alpha: 'max(contourMaterial.alpha, elevationRampMaterial.alpha)'
                                }
                            },
                            translucent: false
                        });
                    }
                
                    function getSlopeContourMaterial() {
                        return new bmgl.Material({
                            fabric: {
                                type: 'SlopeColorContour',
                                materials: {
                                    contourMaterial: {
                                        type: 'ElevationContour'
                                    },
                                    slopeRampMaterial: {
                                        type: 'SlopeRamp'
                                    }
                                },
                                components: {
                                    diffuse: 'contourMaterial.alpha == 0.0 ? slopeRampMaterial.diffuse : contourMaterial.diffuse',
                                    alpha: 'max(contourMaterial.alpha, slopeRampMaterial.alpha)'
                                }
                            },
                            translucent: false
                        });
                    }
                
                    function getAspectContourMaterial() {
                        return new bmgl.Material({
                            fabric: {
                                type: 'AspectColorContour',
                                materials: {
                                    contourMaterial: {
                                        type: 'ElevationContour'
                                    },
                                    aspectRampMaterial: {
                                        type: 'AspectRamp'
                                    }
                                },
                                components: {
                                    diffuse: 'contourMaterial.alpha == 0.0 ? aspectRampMaterial.diffuse : contourMaterial.diffuse',
                                    alpha: 'max(contourMaterial.alpha, aspectRampMaterial.alpha)'
                                }
                            },
                            translucent: false
                        });
                    }
                
                    var elevationRamp = [0.0, 0.045, 0.1, 0.15, 0.37, 0.54, 1.0];
                    var slopeRamp = [0.0, 0.29, 0.5, Math.sqrt(2)/2, 0.87, 0.91, 1.0];
                    var aspectRamp = [0.0, 0.2, 0.4, 0.6, 0.8, 0.9, 1.0];
                    function getColorRamp(selectedShading) {
                        var ramp = document.createElement('canvas');
                        ramp.width = 100;
                        ramp.height = 1;
                        var ctx = ramp.getContext('2d');
                        var values;
                        if (selectedShading === 'elevation') {
                            values = elevationRamp;
                        } else if (selectedShading === 'slope') {
                            values = slopeRamp;
                        } else if (selectedShading === 'aspect') {
                            values = aspectRamp;
                        }
                
                        var grd = ctx.createLinearGradient(0, 0, 100, 0);
                        if (values){
                            grd.addColorStop(values[0], '#000000'); //black
                            grd.addColorStop(values[1], '#2747E0'); //blue
                            grd.addColorStop(values[2], '#D33B7D'); //pink
                            grd.addColorStop(values[3], '#D33038'); //red
                            grd.addColorStop(values[4], '#FF9742'); //orange
                            grd.addColorStop(values[5], '#ffd700'); //yellow
                            grd.addColorStop(values[6], '#ffffff'); //white
                        }
                        ctx.fillStyle = grd;
                        ctx.fillRect(0, 0, 100, 1);
                
                        return ramp;
                    }
                
                    var minHeight = -414.0;
                    var maxHeight = 8777.0;
                    var contourColor = bmgl.Color.RED.clone();
                    var contourUniforms = {};
                    var shadingUniforms = {};
                    var viewModel = {
                        enableContour: true,
                        contourSpacing: 150.0,
                        contourWidth: 2.0,
                        selectedShading: 'elevation',
                        changeColor: function() {
                            contourUniforms.color = bmgl.Color.fromRandom({alpha: 1.0}, contourColor);
                        }
                    };
                    function updateMaterial() {
                        var hasContour = viewModel.enableContour;
                        var selectedShading = viewModel.selectedShading;
                        var globe = viewer.scene.globe;
                        var material;
                        if (hasContour) {
                            if (selectedShading === 'elevation') {
                                material = getElevationContourMaterial();
                                shadingUniforms = material.materials.elevationRampMaterial.uniforms;
                                shadingUniforms.minimumHeight = minHeight;
                                shadingUniforms.maximumHeight = maxHeight;
                                contourUniforms = material.materials.contourMaterial.uniforms;
                            } else if (selectedShading === 'slope') {
                                material = getSlopeContourMaterial();
                                shadingUniforms = material.materials.slopeRampMaterial.uniforms;
                                contourUniforms = material.materials.contourMaterial.uniforms;
                            } else if (selectedShading === 'aspect') {
                                material = getAspectContourMaterial();
                                shadingUniforms = material.materials.aspectRampMaterial.uniforms;
                                contourUniforms = material.materials.contourMaterial.uniforms;
                            } else {
                                material = bmgl.Material.fromType('ElevationContour');
                                contourUniforms = material.uniforms;
                            }
                            contourUniforms.width = viewModel.contourWidth;
                            contourUniforms.spacing = viewModel.contourSpacing;
                            contourUniforms.color = contourColor;
                        } else if (selectedShading === 'elevation') {
                            material = bmgl.Material.fromType('ElevationRamp');
                            shadingUniforms = material.uniforms;
                            shadingUniforms.minimumHeight = minHeight;
                            shadingUniforms.maximumHeight = maxHeight;
                        } else if (selectedShading === 'slope') {
                            material = bmgl.Material.fromType('SlopeRamp');
                            shadingUniforms = material.uniforms;
                        } else if (selectedShading === 'aspect') {
                            material = bmgl.Material.fromType('AspectRamp');
                            shadingUniforms = material.uniforms;
                        }
                        if (selectedShading !== 'none') {
                            shadingUniforms.image = getColorRamp(selectedShading);
                        }
                        globe.material = material;
                    }
                    updateMaterial();
                </script>
                </body>
                </html>
                                                                                                                                                                                                            
                主站蜘蛛池模板: 99在线精品免费视频| 亚洲一级生活片| 久久亚洲伊人中字综合精品| 男人和女人做免费做爽爽视频| 国产麻豆精品入口在线观看| 亚洲人成人77777网站| 青青草a国产免费观看| 国自产精品手机在线观看视频 | 麻豆国产尤物av尤物在线观看| 在线综合亚洲欧美自拍| 中文字幕无码日韩欧毛| 最近最新视频中文字幕4| 亚洲蜜芽在线精品一区| 四虎国产精品永久在线播放| 日本a级片免费看| 免费黄色软件下载| 香蕉污视频在线观看| 少妇性饥渴无码A区免费| 久久精品视频6| 欧美老妇bbbwwbbww| 午夜免费福利在线| 韩国成人毛片aaa黄| 女人是男人的未来1分29| 久久亚洲国产精品| 欧美一级欧美三级在线观看| 人妻少妇乱子伦精品| 脱裙打光屁股打红动态图| 国产日产精品系列推荐| 95老司机免费福利| 婷婷色香五月综合激激情| 久久久久夜夜夜精品国产| 樱花www视频| 又大又紧又硬又湿a视频| 黄页网站在线视频免费| 好紧好爽欲yy18p| 亚洲乱码一区二区三区在线观看| 琪琪色原网站在线观看| 四虎永久在线观看免费网站网址| 黄瓜视频官网下载免费版| 国产精品婷婷久青青原| 99久久人妻精品免费一区|