亚洲动漫在线观看-亚洲动漫第一页-亚洲丁香婷婷-亚洲丶国产丶欧美一区二区三区-亚洲第一综合网站-亚洲第一永久色

顯示源代碼
可視域 球形
 開發(fā)文檔
            <html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <link  rel='stylesheet'/>
    <script src='http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>
    <title>可視域</title>
</head>
<style type="text/css">
    * {
        padding: 0;
        margin: 0;
    }
    html, body, #map {
        width: 100%;
        height: 100%;
    }
    #start {
        position: absolute;
        left: 50px;
        top: 50px;
        z-index: 9999;
    }
    #step {
        position: absolute;
        left:120px;
        top: 50px;
        z-index: 9999;
    }
    .info{
        position: fixed;
        top:0;
        color: #8a6d3b;
        z-index: 99;
        margin: 0;
        background-color: #fcf8e3;
        border-color: #faebcc;
        left: 0;
        right: 0;
        text-align: center;
    }
</style>
<body>
<div id="map"></div>
<div class="info">
    先點(diǎn)擊開始,然后再次單擊地圖,即可實(shí)現(xiàn)可視域分析功能
</div>
<button id="start">
    開始
</button>
<button id="step">
    進(jìn)度
</button>
</body>
</html>
<script type="text/javascript">
    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
    var viewer = new bmgl.Viewer('map', {
        terrainId: 'bigemap.dc-terrain',
        requestRenderMode:false,
        mapId: 'bigemap.dc-satellite'
    });
    var config = initConfig();
    function initConfig() {
        let base = {
            lng: 86,
            lat: 28,
            sum: 50,
            start: 0,
            done: 0,
            height: 5,
            loaded: 0,
            delta: 100,
            all_seen: 0,
            width: 5000,
            click: 0,
            draw: false,
            calc_width: [],
            edge: [],
            min: [],
            inner: [],
        };
        return base;
        // return JSON.parse(JSON.stringify(base));
    }

    // viewer.entities.add({
    //     position:bmgl.Cartesian3.fromDegrees(config.lng,config.lat),
    //     label:{
    //         text:'C',
    //         heightReference:bmgl.HeightReference.CLAMP_TO_GROUND,
    //     }
    // });
    viewer.scene.globe.depthTestAgainstTerrain = true;
    //獲取最新的位置
    viewer.camera.setView({
        destination: bmgl.Cartesian3.fromDegrees(103.59526245619938,30.9814012061604,3837.4144546),
        orientation: {"heading":6.282150327905171,"roll":6.279635689524259,"pitch":-0.6993902253931052}
    });
    function startDraw() {
        // var pp=bmgl.Transforms.eastNorthUpToFixedFrame(bmgl.Cartesian3.fromDegrees(config.lng,config.lat));
        document.getElementById('step').innerHTML='0/'+config.sum;
        for (let i = 0; i < config.sum; i++) {
            var tmp_edge = [];
            var tmp_inner = [];
            for (let j = 0; j < config.sum; j++) {
                var center = bmgl.Cartesian3.fromDegrees(config.lng, config.lat);
                var heading = bmgl.Math.PI * 2 * j / config.sum;
                var hpr = new bmgl.HeadingPitchRoll(heading, 0.0, 0);
                var transform = bmgl.Transforms.headingPitchRollToFixedFrame(center, hpr);
                var p = bmgl.Matrix4.multiplyByPoint(transform, new bmgl.Cartesian3(config.width * Math.cos(bmgl.Math.toRadians(90 * i / config.sum)), 0, config.width * Math.sin(bmgl.Math.toRadians(90 * i / config.sum))), new bmgl.Cartesian3());
                // var p2=bmgl.Matrix4.multiplyByPoint(transform,new bmgl.Cartesian3(config.width*Math.cos(bmgl.Math.toRadians(90*i/config.sum)),0,0),new bmgl.Cartesian3());
                // viewer.entities.add({
                //     position:p2,
                //     label:{
                //         heightReference:bmgl.HeightReference.CLAMP_TO_GROUND,
                //         text:'b',
                //         font:'14px arial',
                //     }
                // });
                // tmp_inner.push({p:p2});
                tmp_edge.push({p, height: config.width * Math.sin(bmgl.Math.toRadians(90 * i / config.sum))});
            }
            // config.calc_width.push(config.width * Math.cos(bmgl.Math.toRadians(90 * i / config.sum)));
            tmp_edge.push(tmp_edge[0]);
            config.edge.push(tmp_edge);
            // config.inner.push(tmp_inner);
            // viewer.entities.add({
            //     polyline:{
            //         width:new bmgl.ConstantProperty(2),
            //         material:bmgl.Color.BLUE,
            //         // clampToGround:true,
            //         positions:tmp_edge.map(v=>v.p)
            //     }
            // });
        }
        console.log(config);
        calcShow();
    }
    // viewer.flyTo(viewer.entities);
    let handler = new bmgl.ScreenSpaceEventHandler(viewer.canvas);
    handler.setInputAction(function (e) {
        if (!config.draw) return;
        if (config.click === 0) {
            viewer.entities.removeAll();
        }
        let ray = viewer.camera.getPickRay(e.position);
        if (!ray) return;
        let cartesian3 = viewer.scene.globe.pick(ray, viewer.scene);
        config.click++;
        let p = bmgl.Cartographic.fromCartesian(cartesian3);
        switch (config.click) {
            case 1:
                viewer.entities.add({
                    position: cartesian3,
                    label: {
                        text: 'Start',
                        verticalOrigin:bmgl.VerticalOrigin.BOTTOM,
                        heightReference: bmgl.HeightReference.CLAMP_TO_GROUND,
                    }
                });
                config.lng = bmgl.Math.toDegrees(p.longitude);
                config.lat = bmgl.Math.toDegrees(p.latitude);
                config.mouse={lng:config.lng,lat:config.lat};
                config.tmp_label=viewer.entities.add({
                    position:new bmgl.CallbackProperty(function (){
                        return bmgl.Cartesian3.fromDegrees(config.mouse.lng,config.mouse.lat);
                    }),
                    label:{
                        text:'',
                        verticalOrigin:bmgl.VerticalOrigin.BOTTOM,
                        heightReference:bmgl.HeightReference.CLAMP_TO_GROUND,
                        font:'16px arial',
                    }
                });
                config.tmp_line=viewer.entities.add({
                    polyline:{
                        positions:new bmgl.CallbackProperty(function (){
                            return bmgl.Cartesian3.fromDegreesArray([config.lng,config.lat,config.mouse.lng,config.mouse.lat]);
                        }),
                        clampToGround:true,
                        material:bmgl.Color.RED.withAlpha(0.8),
                    }
                });
                config.tmp_line2=viewer.entities.add({
                    polyline:{
                        positions:new bmgl.CallbackProperty(function (){
                            let  p=[];
                            let dd=bmgl.Cartesian3.distance(bmgl.Cartesian3.fromDegrees(config.lng,config.lat),bmgl.Cartesian3.fromDegrees(config.mouse.lng,config.mouse.lat)).toFixed(2);
                            for (let i=0;i<40;i++){
                                var center = bmgl.Cartesian3.fromDegrees(config.lng, config.lat);
                                var heading = bmgl.Math.PI * 2 * i / 40;
                                var hpr = new bmgl.HeadingPitchRoll(heading, 0.0, 0);
                                var transform = bmgl.Transforms.headingPitchRollToFixedFrame(center, hpr);
                                var p1 = bmgl.Matrix4.multiplyByPoint(transform, new bmgl.Cartesian3(dd, 0, 0), new bmgl.Cartesian3());
                                p.push(p1);
                            }
                            p.push(p[0]);
                            return p;
                        }),
                        clampToGround:true,
                        material:bmgl.Color.RED.withAlpha(0.8),
                    }
                });
                break;
            case 2:
                let dd = bmgl.Cartesian3.distance(bmgl.Cartesian3.fromDegrees(config.lng, config.lat), cartesian3);
                // console.log(dd);
                config.width = dd;
                viewer.entities.add({
                    position: cartesian3,
                    label: {
                        text: 'End',
                        verticalOrigin:bmgl.VerticalOrigin.BOTTOM,
                        heightReference: bmgl.HeightReference.CLAMP_TO_GROUND,
                    }
                });
                break;
        }

        if (config.click > 1) {
            //說明已經(jīng)點(diǎn)擊了兩次,繪制完成了
            viewer.entities.remove(config.tmp_label);
            viewer.entities.remove(config.tmp_line);
            viewer.entities.remove(config.tmp_line2);
            startDraw();
            config.draw = false;
            config.click = 0;
        }
    }, bmgl.ScreenSpaceEventType.LEFT_CLICK);

    handler.setInputAction(function (e){
        if (!config.draw) return;
        if (config.click===1){
            let ray=viewer.camera.getPickRay(e.endPosition);
            if (!ray) return;
            let pp=viewer.scene.globe.pick(ray,viewer.scene);
            pp=bmgl.Cartographic.fromCartesian(pp);
            config.mouse={
                lng:bmgl.Math.toDegrees(pp.longitude),
                lat:bmgl.Math.toDegrees(pp.latitude)
            }
            config.tmp_label.label.text=bmgl.Cartesian3.distance(bmgl.Cartesian3.fromDegrees(config.lng,config.lat),bmgl.Cartesian3.fromDegrees(config.mouse.lng,config.mouse.lat)).toFixed(2)+'米';
        }

    },bmgl.ScreenSpaceEventType.MOUSE_MOVE);
    document.getElementById('start').addEventListener('click', function () {
        config = initConfig();
        config.draw = true;
        //config=initConfig();
    });

    function calcShow() {
        if (!config.edge[config.start]) {
            console.log('all over');
            document.getElementById('step').innerHTML=config.sum+'/'+config.sum;
            return;
        }
        config.edge[config.start].map((v, ii) => {
            var end = bmgl.Cartographic.fromCartesian(v.p);
            end.lng = bmgl.Math.toDegrees(end.longitude);
            end.lat = bmgl.Math.toDegrees(end.latitude);
            let p = [];
            for (let j = 0; j < config.delta; j++) {
                let tp = {
                    lng: config.lng + (end.lng - config.lng) * j / config.delta,
                    lat: config.lat + (end.lat - config.lat) * j / config.delta
                };
                // debugger;
                // if (config.start===6){
                //     viewer.entities.add({
                //         position:bmgl.Cartesian3.fromDegrees(tp.lng,tp.lat),
                //         label:{
                //             text:'k'+j,
                //             heightReference:bmgl.HeightReference.CLAMP_TO_GROUND,
                //         }
                //     });
                // }
                p.push(bmgl.Cartographic.fromCartesian(bmgl.Cartesian3.fromDegrees(tp.lng, tp.lat)));
            }
            let hh = v.height;
            getTerrain(p, ii, (ter, iii) => {
                // debugger;
                ter[ter.length - 1]['height'] = hh;
                config.loaded++;
                let result = showVisible(ter);
                config.edge[config.start][iii]['v'] = result[result.length - 1];
                // viewer.entities.add({
                //     position: config.edge[config.start][iii]['p'],
                //     label: {
                //         text: result[result.length - 1] ? '1' : '0',
                //         heightReference: bmgl.HeightReference.CLAMP_TO_GROUND,
                //     }
                // });

                // var a = bmgl.Cartographic.fromCartesian(config.edge[config.start][iii]['p']);
                // viewer.entities.add({
                //     position: bmgl.Cartesian3.fromDegrees(bmgl.Math.toDegrees(a.longitude), bmgl.Math.toDegrees(a.latitude), hh),
                //     label: {
                //         fillColor: config.edge[config.start][iii]['v'] ? bmgl.Color.BLUE : bmgl.Color.RED,
                //         text: 'X',
                //     }
                // });
                if (config.loaded === config.edge[config.start].length) {
                    //本次圓內(nèi)已經(jīng)計(jì)算完了
                    let ttt = [];
                    config.edge[config.start].map(v1 => {
                        ttt.push(v1.v);
                    });
                    console.log('index: ' + config.start);
                    document.getElementById('step').innerHTML=config.start+'/'+config.sum;
                    let all_seen = Array.from(new Set(ttt));
                    if (all_seen[0] && all_seen.length === 1) {
                        config.all_seen = config.start;
                        document.getElementById('step').innerHTML=config.sum+'/'+config.sum;
                        for (let j=config.start;j<config.edge.length;j++){
                            drawLine(config.edge[j].map(v=>{
                                v.v=true;
                                return v;
                            }));
                        }
                        //第二次繪畫
                        for (let i=0;i<config.sum;i++){
                            let tmp=[];
                            for (let j=0;j<config.sum;j++){
                                tmp.push(config.edge[j][i]);
                            }
                            tmp.push({v:true,p:bmgl.Cartesian3.fromDegrees(config.lng,config.lat,config.width)});
                            drawLine(tmp);
                            // console.log(tmp);
                        }
                        return;
                    }
                    drawLine(config.edge[config.start]);
                    config.loaded = 0;
                    config.start++;
                    calcShow();
                }
            });
            // viewer.entities.add({
            //     position:v.p,
            //     label:{
            //         text:'c',
            //         heightReference:bmgl.HeightReference.CLAMP_TO_GROUND,
            //     }
            // })
        });
    }


    function drawLine(data) {
        // console.log(data);
        let path = [];
        let tmp = [data[0]];
        let prev = data[0]['v'];
        for (let j = 1; j < data.length; j++) {
            let v = data[j];
            tmp.push(v);
            if (prev !== v.v) {
                if (tmp.length > 1) {
                    let m;
                    if (prev) {
                        m = bmgl.Color.BLUE;
                    } else {
                        m = bmgl.Color.RED;
                    }
                    console.log('tmp index length : ' + tmp.length);
                    viewer.entities.add({
                        polyline: {
                            material: m,
                            positions: tmp.map(v => v.p),
                        }
                    });
                    // path.push({v:start,path:[...JSON.parse(JSON.stringify(tmp))]});
                    tmp.length = 0;
                    tmp.push(v);
                }
                prev = v.v;
            }
        }

        if (tmp.length > 1) {
            let m;
            if (prev) {
                m = bmgl.Color.BLUE;
            } else {
                m = bmgl.Color.RED;
            }
            console.log('tmp index' + tmp.length);
            viewer.entities.add({
                polyline: {
                    material: m,
                    positions: tmp.map(v => v.p),
                }
            });
        }
        console.log(path);
    }

    function getTerrain(position, i, callback) {
        // bmgl.sampleTerrain(viewer.terrainProvider,8,position).then(data=>{
        //     try {
        //         if (data.length > 0) callback(data, i);
        //     } catch (e) {
        //         console.log(e);
        //     }
        // });
        bmgl.sampleTerrainMostDetailed(viewer.terrainProvider, position).then(data => {
            try {
                if (data.length > 0) callback(data, i);
            } catch (e) {
                console.log(e);
            }
        })
    }

    function showVisible(terrainData) {
        var preVisible = true;
        var cartesiansLine = [];
        var colors = [true];
        for (var j = 1; j < terrainData.length; j++) {
            //逐點(diǎn)計(jì)算可見性
            var visible = true;//該點(diǎn)可見性
            if (j > 1) {
                var cartographicCenterHV = new bmgl.Cartographic(terrainData[0].longitude, terrainData[0].latitude, terrainData[0].height + config.height);
                if (preVisible) {
                    var curPoint = InterpolateIndexLineHeightCartographic(cartographicCenterHV, terrainData[j], j, j - 1);
                    if (curPoint.height >= terrainData[j - 1].height) {
                        preVisible = true;
                        visible = true;
                    } else {
                        preVisible = false;
                        visible = false;
                    }
                } else {
                    //插值到當(dāng)前
                    var curPointArr = Interpolate2IndexLineHeightCartographic(cartographicCenterHV, terrainData[j], j, j - 1);
                    for (var k = 0; k < curPointArr.length; k++) {
                        if (curPointArr[k].height >= terrainData[k].height) {
                            preVisible = true;
                            visible = true;
                        } else {
                            preVisible = false;
                            visible = false;
                            break;
                        }
                    }
                }
            }
            // var cartesianTemp = bmgl.Cartesian3.fromRadians(terrainData[j].longitude, terrainData[j].latitude, terrainData[j].height + 0.10);
            // cartesiansLine.push(cartesianTemp);
            //繪制點(diǎn)
            colors.push(visible);
        }
        return colors;

    }

    function Interpolate2IndexLineHeightCartographic(start, end, num, curIndex) {
        if (start && end) {
        } else {
            return null;
        }
        if (start.longitude && start.latitude && end.longitude && end.latitude) {
        } else {
            return null;
        }
        var result = [];
        result.push(new bmgl.Cartographic(start.longitude, start.latitude, start.height));
        var stepLon = (end.longitude - start.longitude) / num;
        var stepLat = (end.latitude - start.latitude) / num;
        var stepHeight = (end.height - start.height) / num;
        for (var i = 0; i < curIndex; i++) {
            var lon = start.longitude + (i + 1) * stepLon;
            var lat = start.latitude + (i + 1) * stepLat;
            var hieght = start.height + (i + 1) * stepHeight;
            result.push(new bmgl.Cartographic(lon, lat, hieght));
        }
        return result;
    }

    function InterpolateIndexLineHeightCartographic(start, end, num, index) {
        if (start && end) {
        } else {
            return null;
        }
        if (start.longitude && start.latitude && end.longitude && end.latitude) {

        } else {
            return null;
        }
        //var delta = _Delta && (typeof _Delta === 'number') ? _Delta : DeltaRadian;
        var stepLon = (end.longitude - start.longitude) / num;
        var stepLat = (end.latitude - start.latitude) / num;
        var stepHeight = (end.height - start.height) / num;
        var lon = start.longitude + index * stepLon;
        var lat = start.latitude + index * stepLat;
        var hieght = start.height + index * stepHeight;
        var result = new bmgl.Cartographic(lon, lat, hieght);
        return result;
    }
</script>
                                                                                
主站蜘蛛池模板: 偷窥日本少妇撒尿chinese | 亚洲色图清纯唯美 | 国产又粗又黄又爽又硬的免费视频 | 国产精品久久久久久亚瑟影院 | 张津瑜警花国产精品一区 | 马与人黄色毛片一部免费视频 | 日韩美女免费视频 | 国产精品视频一区二区二 | 伊人精品一区二区三区 | 国产无套水多在线观看 | 逼特逼视频在线观看 | 国产精品久久久久久亚洲徐婉婉 | 轻点太深了射的好满视频 | 91精品国产综合久久久蜜臀九色 | 亚洲最大黄网 | 亚洲最新无码中文字幕久久 | 国产黄色一级大片 | 狠狠躁18三区二区一区 | 国产精品视频 | 亚洲黄色天堂 | 99精品乱码国产在线观看 | 国产成人精品亚洲线观看 | 亚洲人体视频 | 国内精品人妻无码久久久影院导航 | 国产色秀视频 | 清纯唯美经典一区二区 | 香蕉网站在线观看 | 超级av在线天堂东京热 | 中文字幕日本精品一区二区三区 | 首尔之春在线 | 国产成人精品aa毛片 | 亚洲欧美综合区丁香五月小说 | 成人性生交大片免费网站 | 免费专区 - 91爱爱 | 亚洲成a | 福利一区二区在线观看 | 男人天堂国产 | 欧美成在线视频 | 国产真人无遮挡作爱免费视频 | 深夜视频在线观看 | 成年女人a毛片免费视频 | 国产成人免费ā片在线观看老同学 | 男人天堂新地址 | 亚洲砖区免费 | 成年人免费在线观看视频网站 | 亚洲乱妇老熟女爽到高潮的片 | 亚洲妇熟xx妇色黄蜜桃 | 爱情岛亚洲论坛入口福利 | 男女爆操视频 | 免费观看av的网站 | 国产精品久久久久久久久潘金莲 | 天天综合亚洲 | 一级黄片一级毛片 | 国产一区二区黑人欧美xxxx | 99热这里只有精品8 99热这里只有精品在线观看 | 天天操天天添 | 懂色av中文字幕 | 国产成人无码性教育视频 | 九九爱精品视频 | 最新成人| 亚洲日韩精品无码专区加勒比 | 男生看的污网站 | 国产极品美女高潮无套小趴菜 | 久久婷婷色 | 天堂а√中文最新版在线 | 内射毛片内射国产夫妻 | 日本一级一片免费视频 | 中文在线观看免费 | 女女同性女同区二区国产 | 日韩av不卡一区 | 亚洲一区二区三区av天堂 | 91少妇精拍在线播放 | 99国产精品欲a | 边添小泬边狠狠躁视频 | 欧美精品色呦呦 | 亚欧在线观看 | 国产精品伦一区二区三级视频永妇 | 99久久夜色精品国产亚洲96 | 人人澡人人妻人人爽人人蜜桃 | 亚洲大逼| 午夜国产在线观看 | 中文字幕在线观看亚洲视频 | 成人国产精品免费视频 | 内射人妻少妇无码一本一道 | 国产精品精华液网站 | 亚洲一区二区三区四 | 国产午夜精品一区二区三区嫩草 | 天美麻花果冻视频大全英文版 | 99久久久久久99国产精品免 | 午夜剧院免费观看 | 亚洲三级影视 | 四川妇女偷人毛片大全 | 免费看国产精品 | 国产激情精品一区二区三区 | 亚洲综合久久网 | 亚洲剧情av | 美女搞黄视频网站 | 亚洲天堂一区二区三区四区 | 亚洲综合国产一区二区三区 | 欧美色吊丝 | 亚洲精品人人 | 亚洲乱码一二三四区 | a亚洲天堂 | 欧美性xxxx在线播放 | 全部av―极品视觉盛宴 | 色五月在线视频 | 日韩欧美亚洲成人 | 天天干天天干天天操 | 欧美精品一区二区三区视频 | 日韩在线 | 中文 | 精品资源成人 | 一级全黄毛片 | 三级无码在钱av无码在钱 | 欧美成人tv | 男人天堂影院 | 国产一级小视频 | 国产精彩视频在线 | 国产精品入口夜色视频大尺度 | 久久久精品国产99久久精品芒果 | 羞羞麻豆国产精品1区2区3区 | 在线播放日韩av | 日本少妇热妇bbbbbb | 欧美成人动态图 | 成人免费午夜视频69影院 | 伊人天堂在线 | 国产日韩免费视频 | 国产制服丝袜一区 | 成人精品在线 | 露脸啪啪清纯大学生美女 | 99久久99久久精品免费看蜜桃 | 欧美孕交视频 | 乱人伦视频在线 | 美女翘臀少妇啪啪呻吟流水 | 亚洲国产精品久久精品 | 99久久无码一区人妻a黑 | 男人和女人高潮免费网站 | 国产成人在线播放视频 | 久久福利免费视频 | 交专区videossex| 中文字幕在线观看线人 | 国产ts人妖一区二区 | 久久手机免费视频 | 天堂在线亚洲 | 中文字幕精品一区二区2021年 | 三区四区乱码不卡 | 黄a在线观看| 免费黄网在线观看 | 久久亚洲免费视频 | 蜜桃视频在线观看免费视频网站www | 美女黄免费 | 丰满白嫩欧洲美女图片 | 粉嫩av蜜桃av蜜臀av | 麻豆网站观看 | 成人动漫视频在线 | 性久久 | 亚洲欧洲色图 | 久久不见久久见免费影院www日本 | 婷婷色九月 | 二个男人躁我疯狂吃奶视频 | 美女裸片 | 爱情岛论坛永久亚洲品质 | 狠狠躁夜夜躁人人爽天天高潮 | 亚洲视频日韩 | 欧美日韩在线精品 | 在线一区二区三区在线一区 | 4567少妇伦理 | 色哟哟视频网站 | 日本三级网站在线观看 | 国产精品永久 | 国产成人精品一区二区三区 | 欧美日韩一区二区三区69堂 | 特级黄色毛片视频 | 天天天天色综合 | 日本啪啪网 | 国产欧美精品一区二区三区四区 | 国产高中女学生第一次 | 337p日本欧洲亚洲大胆色噜噜 | 天干天干天啪啪夜爽爽99 | 熟女人妻在线视频 | 国产精品久久久久久久久免费 | 玖玖爱免费视频 | 欧美国产日产一区二区 | 无遮挡啪啪摇乳动态图 | 色哟哟免费视频 | 亚洲 小说 欧美 激情 另类 | 国产性猛交xxxⅹ交酡全过程 | 欧美大白屁股 | 美女丝袜av | 国产毛片精品国产一区二区三区 | 国产av无码国产av毛片 | 免费人成自慰网站 | 波多野结衣在线观看一区二区 | 欧洲精品在线播放 | 国产午夜精品av一区二区 | 大尺度做爰啪啪高潮床戏 | 性生活在线视频 | 伊人久久大香网 | 天天躁天天狠天天透 | 姑娘第5集在线观看免费好剧 | 一级美女大片 | 黄色视屏网站 | 希岛爱理和黑人中文字幕系列 | 涩涩屋导航福利av导航 | 韩国精品久久久 | 亚洲精品乱码久久久久久按摩观 | 亚洲欧美又粗又长久久久 | 亚洲日韩在线中文字幕综合 | 暖暖日本在线观看免费 | 国产91精品一区二区麻豆亚洲 | 麻豆国产97在线 | 欧美 | 人妻互换 综合 | 亚洲 精品 主播 自拍 | 欧美精品v | 特级黄色毛片视频 | 日日碰狠狠躁久久躁综合小说 | 久久精品国产99国产精品 | 9i看片成人免费高清 | 在线一区二区三区在线一区 | 97精品一区二区视频在线观看 | 国产亚洲欧美在线 | 亚洲成人第一页 | 一区二区三区国产在线 | 椎名空在线观看 | 精品国产一区二区三区四区精华 | 欧美激情xxx | 国产一精品一av一免费爽爽 | 精品一区二区三区在线视频 | 99国产午夜精品一区二区天美 | 色噜噜狠狠一区二区三区狼国成人 | 特级西西444www大精品视频 | 女仆高潮hd理论片 | 国产激情一区二区三区四区 | 999在线视频 | 97综合| 极品国产白皙 | 日本在线不卡一区二区三区 | 玖玖热麻豆国产精品图片 | 一级欧美一级日韩片 | 一区二区乱子伦在线播放 | 亚洲精品人| 成人免费观看cn | 日韩视频精品 | 日本免费在线观看视频 | 色偷偷导航| 色狠久久av北条麻妃081 | 久久综合热 | 无码人妻精品一区二区三区久久久 | 水中色av综合 | 日韩特级片| 久久偷看各类wc女厕嘘嘘 | 日日噜噜夜夜狠狠久久蜜桃 | 亚洲欧美日韩国产成人精品影院 | 天堂√在线中文官网在线 | 午夜福利理论片高清在线观看 | 成人在线视频中文字幕 | 国产精品久久久久桃色tv | 女人内谢aaaa免费视频 | 红色假期黑色婚礼2 | 天天爽天天爽天天爽 | 最新精品国产 | 少妇真人直播免费视频 | 亚洲精品国产一区二区 | 亚洲午夜伦理 | 人人超碰人摸人爱 | 奇米综合 | 精品成人免费一区二区在线播放 | 国产精品第52页 | 国产原创精品 | 久草视频免费播放 | 国产精品国产三级国产专业不 | 少妇精品久久久久久久久久 | 免费极品av一视觉盛宴 | 成人动漫在线观看 | 黄色三级视屏 | 一级片在线观看免费 | 人妻少妇精品无码专区app | 日本高清免费在线 | 黄色一级带 | 成 人 免费 黄 色 | 亚洲精品字幕在线观看 | 国产午夜精品久久精品电影 | 国产亚洲精品精华液 | 久久久精品小视频 | 久久久久久久久毛片精品 | 日本久久www成人免 日本久久不卡 | 无码人妻精品一区二区三区夜夜嗨 | 秋霞午夜av | 国产一级片 | 狠狠做深爱婷婷综合一区 | 五月天激情视频 | 人人妻人人澡人人爽久久av | 亚洲a∨国产av综合av下载 | 国产小视频免费 | 色婷婷视频在线 | 都市激情亚洲综合 | 亚洲国产精品写真 | 91精品啪在线观看国产线免费 | 波多野结衣 久久 | 亚洲国产精品激情综合图片 | 国产精品国产三级国产aⅴ入口 | 日韩精品区一区二区三vr | 国产成年免费视频 | 免费毛片基地 | 91伊人久久 | 国产www在线观看 | 国产亚洲精品久久久久久久久久久久 | 国产精品一区二区三区在线播放 | 亚洲视频123 | 欧美自拍色图 | 性一爱一性一乱 | 亚洲拍拍视频 | 国产精品久久一区二区三区 | 亚洲欧美日韩一区二区三区四区 | 99热视屏 | 美女天天干| 最新国产小视频 | 国产太嫩了在线观看 | 夜先锋av资源网站 | 98婷婷狠狠成人免费视频 | 国产成人天天5g影院在线观看 | 亚洲国产精品婷婷 | 一本一道久久久a久久久精品蜜臀 | 久久视频免费 | 亚洲精品久久久久 | 国产精品爽爽久久久久久蜜臀 | 少妇的肉体aa片免费 | 宅男的天堂 | 欧美jizzhd精品欧美巨大 | 高h1v| av大片免费在线观看 | 蜜臀av无码一区二区三区 | 久草在线免费福利 | 精品一区二区在线观看视频 | 日韩综合区 | 国产91中文字幕 | 大江大河第三部50集在线观看旭豪 | 天堂免费在线视频 | 色狠狠一区二区三区香蕉 | 亚洲国产精品久久久久秋霞影院 | 99香蕉国产精品偷在线观看 | 国产寡妇一级农村野外战 | 优月まりな乳狂在线观看 | 亚洲精品永久在线观看 | 91精品久久久久久久久不口人 | 久久国产精品嫩草影院的使用方法 | 国产伦精品一区二区三区在线 | 91性高潮久久久久久久 | a级黄色片免费看 | 日韩第二页| 黑人巨大精品欧美一区二区免费 | 日本免费一区二区三区视频 | 天天操天天碰 | 国产成人无码专区 | 三a大片 | 日韩avwww| 日韩高清影视在线观看 | 97久久超碰| 亚洲精品无码人妻无码 | 色噜噜国产精品视频一区二区 | 69中国xxxxxxxxx69 69中国xxxxxxxxx96 | 色综合视频二区偷拍在线 | 88av网站 | 欧美精品一级在线观看 | 国产精品无需播放器在线观看 | 亚洲专区在线播放 | 91久久久久久亚洲精品禁果 | 少妇色诱麻豆色哟哟 | 日本免费人成视频在线观看 | www国产com| 性欧美巨大乳 | 国产午夜av| ts 人妖 另类 在线 | 国产二区视频在线观看 | 日本特黄特色大片免费视频老年人 | 亚洲综合日韩精品欧美综合区 | 国产精品高潮呻吟av久久4虎 | 欧美视频精品 | 欧美激情va永久在线播放 | 国产素人在线 | 中文字幕日韩三级 | 国产精品精华液网站 | 欧美一级性视频 | а天堂中文在线官网在线 | 欧美性受xxxx黒人xyx性爽 | 92看片淫黄大片欧美看国产片 | 不卡av在线免费观看 | 中文字幕精品无码一区二区三区 | 日日摸夜夜添夜夜添欧美毛片小说 | av一本久道久久波多野结衣 | 久久久久久黄 | 中文人妻无码一区二区三区在线 | 国产精品毛片无遮挡 | 黑人蹂躏少妇在线播放 | 天天干在线观看 | 超级碰碰97 | 日韩av影片| 日韩精品在线免费视频 | 免费无遮挡在线观看视频网站 | 免费的毛片 | 欧美一级专区 | x88av在线 | 亚洲日韩国产二区无码 | 超碰老司机 | 大动漫美女禁视频 | 欧美成人国产va精品日本一级 | 我和房东少妇激情 | 91精品婷婷国产综合久久蝌蚪 | 国产精品久久久久久av | 国产视频aaa | 欧美人与动性xxxxx杂性 | 精品黄网站 | 亚洲欧美一区二区三区在线 | 中文字幕视频在线 | 一级片大片 | 国产青草视频在线观看 | 亚洲国产精品成人综合色在线婷婷 | 四虎永久在线精品免费观看网站 | 国产a18片免费观看 国产aⅴxxx片 | 少妇又色又紧又大爽又刺激 | 欧美 日韩 精品 | 网色网站 | 青青在线视频观看 | 欧美日韩福利 | 琪琪电影午夜理论片八戒八戒 | 亚洲不卡免费视频 | 成人免费高清在线播放 | 九九热com| 国产精品久久久久久久久妇女 | 色婷婷av久久久久久久 | 国产三级aaa| 公的~yin之手筱田优中文字幕 | 国产美女91| 国产香蕉97碰碰久久人人 | 日韩天堂av | 亚洲欧美日韩在线不卡 | 国产无人区码熟妇毛片多 | 亚洲熟女乱色综合一区 | 免费毛片a | 日韩成av人片在线观看 | 日本韩国欧美一区 | 欧美另类极品videosbest使用方法 | 范冰冰一级做a爰片久久毛片 | 免费看黄在线网站 | 手机看片福利永久 | 日本aa大片| 男男啪啪激烈高潮cc漫画免费 | 双性人hdsexvideos | 天天射天天日本一道 | 日韩欧美一区二区三区视频 | 久久天天东北熟女毛茸茸 | 水蜜桃一二三区 | 伊人成年网 | 中文字幕在线播放视频 | 国产一级美女 | 福利资源导航 | 射一射 | 精品伊人 | 在线观看亚洲专区 | 在线观看av的网址 | 亚洲日韩精品a∨片无码加勒比 | 日韩性欧美 | 久久无码专区国产精品s | 人妻内射一区二区在线视频 | 18videosex性vr日| 日韩一区二区三区在线播放 | 欧美成人精品激情在线视频 | 亚洲欧美日韩国产成人精品 | 在线观看视频一区二区 | 91精品国产色综合久久不卡98 | 国产又爽又黄又湿免费99 | 国产毛片毛片毛片毛片毛片毛片 | 狠狠色婷婷久久综合频道毛片 | 综合自拍亚洲综合图区高清 | 国产精品69久久久久水密桃 | 97久久国产亚洲精品超碰热 | 99久久精品费精品国产 | 久久久久久久久久福利 | 精品一区二区三区在线视频 | 精品国偷自产在线 | 亚洲成人自拍 | 国产特级毛片aaaaaa高清 | 天天草天天干 | 少妇做爰免费视频网站色黄 | 中文字幕av在线播放 | 亚洲精品久久久久中文字幕m男 | 亚洲妇女无套内射精 | 欧美激情黑白配 | 亚洲色图3p | 久草大 | 久久久国产高清 | 久久久久在线视频 | 国产精品999视频 | 一区二区三区www | 亚洲深夜福利视频 | 色综合另类小说图片区 | 无码人妻丰满熟妇区毛片 | 日本老太婆做爰视频 | 无码av大香线蕉 | 中文字幕1| 欧美最猛黑人xxxx黑人猛交98 | 亚洲天码中字一区 | 国产精品18久久久久白浆软件 | 久久精品一区二 | 日韩在线观看免费 | 波多野结衣在线免费视频 | 最新成人| 精品一区二区三区免费毛片爱 | 国产日韩精品视频一区二区三区 | 久久成人麻豆午夜电影 | 欧美视频一区二区三区四区在线观看 | 粉嫩粉嫩一区性色av片 | 成人精品视频在线 | 国产av国片精品 | 波多野结衣一区二区三区av免费 | 日日夜夜精品免费 | 国产精品人人做人人爽 | 亚洲欧美激情图片 | 免费看的黄色录像 | 人妻精品国产一区二区 | 欧美一级在线观看 | 日本免费在线视频 | 亚洲精品一区二区三区香蕉 | 欧美一级网站 | 日本视频在线免费 | 青青视频免费在线观看 | 欧美gv在线观看 | 少妇裸体做爰免费视频网站 | 手机看片一区二区 | 四虎永久免费 | a级毛片网 | 蜜桃精品噜噜噜成人av | 久久大尺度 | 春意影院福利社 | 亚洲日韩成人av无码网站 | 美女黄色一级视频 | 韩国精品一区二区 | 性少妇mdms丰满hdfilm | 亚洲色图欧美 | 色精品视频 | 国内自拍视频一区二区三区 | 影音先锋日韩精品 | 一级高清毛片 | 91精品国产一区二区三区动漫 | 伊人蕉影院久亚洲高清 | 国产清纯白嫩美女正无套播放 | 色婷婷视频在线观看 | 狠狠色噜噜狠狠狠狠av不卡 | 久久精国 | 国产成人精品网站 | 久操青青| 人妻中文无码久热丝袜 | 国产成年人网站 | 外国特级免费片 | 欧美乱码精品 | 亚洲第九十七页 | 午夜视频大全 | 无码乱人伦一区二区亚洲一 | 在线欧美中文字幕农村电影 | 2019精品手机国产品在线 | 国产激情网站 | 精品中文字幕在线观看 | 欧美三级a做爰在线观看 | 欧美激情首页 | 特大巨黑吊av在线播放 | 石原莉奈av调教中文字幕 | 亚洲乱码国产乱码精品精软件 | 色狠久久av北条麻妃081 | 91麻豆精品国产自产在线观看一区 | 护士脱了内裤让我爽了一夜视频 | 97视频人人免费看 | 精品国产31久久久久久 | 亚洲免费在线视频 | 欧美午夜一区 | 91精品福利少妇午夜100集 | 亚洲中文字幕无码中字 | 久久精品人妻一区二区三区 | 四色av网站入口 | 美女啪网站 | 精品国产91亚洲一区二区三区www | 国产乱码一区二区三区 | 精品国产乱码久久久久久免费 | 久久久噜噜噜久久中文字幕色伊伊 | 久久综合狠狠综合五十路 | 亚洲 小说 欧美 激情 另类 | 日本黄色美女网站 | 久久99日韩国产精品久久99 | 91在线最新 | 国产一级片网站 | 粗喘呻吟撞击猛烈疯狂 | 国产片黄色| 久久99精品国产麻豆蜜芽 | 免费一区二区在线观看 | 天堂最新资源在线 | 2021最新国产精品网站 | 拍拍拍产国影院在线观看 | 久久视频这里有久久精品视频11 | 日韩欧美一区二区三区免费观看 | 高潮又爽又无遮挡又免费 | 一本大道久久a久久精二百 一本大道久久a久久精品综合1 | 亚洲国产伊人 | 公妇乱淫1~6集全观看不了啦 | 免费特级黄毛片 | а√天堂8资源在线官网 | 亚洲国产视频一区 | 手机在线成人av | 天天精品免费视频 | 亚洲男人天堂视频 | 亚洲精品一区二区三区婷婷月 | 久久国产网站 | 欧美狠狠干 | 色牛影院 | 青青免费视频在线观看 | 日本少妇全身按摩做爰5 | 国产精品久久久久久久久人妻 | 激情综合色综合啪啪五月丁香 |