精品一区在线播放-天天色图片-久草视频污-日本中文字幕一区二区-在线成人免费-丰满少妇乱子伦精品看片

顯示源代碼
可視域分析
 開發文檔
            <!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>
    <style>
        body {
            margin: 0;
            padding: 0;
        }
        #container {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 100%;
        }
        .info{
            position: absolute;
            top:0;
            left: 0;
            right: 0;
            z-index: 9;
            text-align: center;
            height: 30px;
            line-height: 30px;
            color: #909399;
            background: #f4f4f5;
        }
    </style>
    <title>part_test</title>
</head>
<body>
    <div class="info">
    點擊地圖可以獲取當前位置的可視域分析(藍色表示可見,紅色不為可見)
</div>
<div id='container'></div>
<script>
    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
    var viewer = new bmgl.Viewer('container', {mapId: 'bigemap.dc-satellite',requestRenderMode:false,terrainId: 'bigemap.dc-terrain'});
    //設置初始位置
    viewer.camera.setView({
        destination: bmgl.Cartesian3.fromDegrees(103.59526245619938,30.9814012061604,3837.4144546),
        orientation: {"heading":6.282150327905171,"roll":6.279635689524259,"pitch":-0.6993902253931052}
    });
    //當前的視點坐標
    var startPoint={
        lng:103.5898409037154,
        lat:31.012823472619534
    };
    var clickAble=true;
    viewer.screenSpaceEventHandler.setInputAction(function (e) {
        var ray=viewer.camera.getPickRay(e.position);
        var c=viewer.scene.globe.pick(ray,viewer.scene);
        if (!clickAble||!bmgl.defined(c))return;
        clickAble=false;
        setTimeout(()=>{
            clickAble=true;
        },1000);
        c=bmgl.Cartographic.fromCartesian(c);
        startPoint.lng=bmgl.Math.toDegrees(c.longitude)
        startPoint.lat=bmgl.Math.toDegrees(c.latitude);
        drawLine();
    },bmgl.ScreenSpaceEventType.LEFT_CLICK);
    var pointArr=[];
    viewer.scene.globe.depthTestAgainstTerrain=true;
    setTimeout(function () {
        //1秒后開始畫視角
        drawLine();
    },1000);
    function drawLine() {
        pointArr.map(v=>v.remove());
        pointArr.length=0;
        var viewHeight = 1.5;//視角高度
        var cartographicCenter = bmgl.Cartographic.fromDegrees(startPoint.lng, startPoint.lat);
        var cartesianCenterH0 = bmgl.Cartesian3.fromRadians(cartographicCenter.longitude, cartographicCenter.latitude);
        var cartesianPointH0 = bmgl.Cartesian3.fromDegrees(startPoint.lng+0.02, startPoint.lat+0.01);
        var ab = bmgl.Cartesian3.distance(cartesianCenterH0, cartesianPointH0);
        var eopt = {};
        eopt.semiMinorAxis = ab;
        eopt.semiMajorAxis = ab;
        eopt.rotation = 0;
        eopt.center = cartesianCenterH0;
        eopt.granularity = Math.PI / 20;//間隔
        var ellipse = computeEllipseEdgePositions(eopt);
        for (var i = 0; i < ellipse.outerPositions.length; i += 3) {
            //逐條計算可視域
            var cartesian = new bmgl.Cartesian3(ellipse.outerPositions[i], ellipse.outerPositions[i + 1], ellipse.outerPositions[i + 2]);
            var cartographic = bmgl.Cartographic.fromCartesian(cartesian);
            var deltaRadian = 0.00005 * Math.PI / 180.0;
            var cartographicArr = InterpolateLineCartographic(cartographicCenter, cartographic, deltaRadian);
            getTerrain(cartographicArr,terrainData=>{
                try {
                    if (terrainData.length > 0) {
                        var preVisible = true;
                        var cartesiansLine = [];
                        var colors = [];
                        for (var j = 1; j < terrainData.length; j++) {
                            //逐點計算可見性
                            var visible = true;//該點可見性
                            if (j > 1) {
                                var cartographicCenterHV = new bmgl.Cartographic(terrainData[0].longitude, terrainData[0].latitude, terrainData[0].height + viewHeight);
                                //
                                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 {
                                    //插值到當前
                                    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);
                            //繪制點
                            if (visible) {
                                colors.push(0);
                                colors.push(0);
                                colors.push(1);
                                colors.push(1);
                            } else {
                                colors.push(1);
                                colors.push(0);
                                colors.push(0);
                                colors.push(1);
                            }
                        }
                        //繪制結果
                        var pointsKSY = new PrimitivePoints({ 'viewer': viewer, 'Cartesians': cartesiansLine, 'Colors': colors });
                        pointArr.push(pointsKSY);
                    } else {
                        console.log("高程異常!");
                    }
                }catch (e) {
                    console.log(e);
                }
            })
        }
    }


    function getTerrain(arr,callback) {
        bmgl.sampleTerrainMostDetailed(viewer.terrainProvider,arr).then(data=>{
            callback(data);
        })
    }

    /**
     * options.semiMinorAxis:短半軸
     * options.semiMajorAxis:長半軸
     * options.rotation:旋轉角度 弧度
     * options.center:中心點 笛卡爾坐標
     * options.granularity:粒度 弧度
     * Returns an array of positions that make up the ellipse.
     * @private
     */
    function  computeEllipseEdgePositions(options) {
        var unitPosScratch = new bmgl.Cartesian3();
        var eastVecScratch = new bmgl.Cartesian3();
        var northVecScratch = new bmgl.Cartesian3();
        var scratchCartesian1 = new bmgl.Cartesian3();
        var semiMinorAxis = options.semiMinorAxis;
        var semiMajorAxis = options.semiMajorAxis;
        var rotation = options.rotation;//法線
        var center = options.center;
        var granularity = options.granularity && (typeof options.granularity === "number") ? options.granularity : (Math.PI / 180.0);// 角度間隔
        if (granularity > Math.PI / 12.0) { granularity = Math.PI / 12.0; }//最小分24
        if (granularity < Math.PI / 180.0) { granularity = Math.PI / 180.0; }//最大分360
        var aSqr = semiMinorAxis * semiMinorAxis;
        var bSqr = semiMajorAxis * semiMajorAxis;
        var ab = semiMajorAxis * semiMinorAxis;
        var mag = bmgl.Cartesian3.magnitude(center);//
        var unitPos = bmgl.Cartesian3.normalize(center, unitPosScratch);
        var eastVec = bmgl.Cartesian3.cross(bmgl.Cartesian3.UNIT_Z, center, eastVecScratch);
        eastVec = bmgl.Cartesian3.normalize(eastVec, eastVec);
        var northVec = bmgl.Cartesian3.cross(unitPos, eastVec, northVecScratch);
        var numPts = Math.ceil(bmgl.Math.PI*2 / granularity);
        var deltaTheta = granularity;
        var theta = 0;

        var position = scratchCartesian1;
        var i;
        var outerIndex = 0;
        var outerPositions = [];
        for (i = 0; i < numPts; i++) {
            theta = i * deltaTheta;
            position = pointOnEllipsoid(theta, rotation, northVec, eastVec, aSqr, ab, bSqr, mag, unitPos, position);

            outerPositions[outerIndex++] = position.x;
            outerPositions[outerIndex++] = position.y;
            outerPositions[outerIndex++] = position.z;
        }

        var r = {};
        r.numPts = numPts;
        r.outerPositions = outerPositions;
        return r;
    };
    /*
        線段插值
        經緯度坐標插值
        Cartographic start.longitude start.latitude 單位:弧度
        return [Cartographic,...]
        */
     function InterpolateLineCartographic(start, end, _Delta) {
        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));
        var interval = Math.sqrt(Math.pow((end.longitude - start.longitude), 2) + Math.pow((end.latitude - start.latitude), 2));
        var delta = _Delta && (typeof _Delta === 'number') ? _Delta : DeltaRadian;
        if (interval <= delta) {
            //小于最小間隔
            result.push(new bmgl.Cartographic(end.longitude, end.latitude));
            return result;
        } else {
            var num = interval / delta;
            var stepLon = (end.longitude - start.longitude) / num;
            var stepLat = (end.latitude - start.latitude) / num;
            for (var i = 0; i < num; i++) {
                var lon = start.longitude + (i + 1) * stepLon;
                var lat = start.latitude + (i + 1) * stepLat;
                result.push(new bmgl.Cartographic(lon, lat));//與最后一個點有偏差
            }
            result.push(new bmgl.Cartographic(end.longitude, end.latitude, end.height));
        }
        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;
    }
    
    /*
       線段插值
       經緯度高程插值
       Cartographic start.longitude start.latitude 單位:弧度 start.height 高程單位m
       num:分總段數  傳入數組長度-1
       index:獲取到第index點的所有插值 0點是開始點
       return [Cartographic,...]
       */
    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));
        }
        //result.push(new bmgl.Cartographic(end.longitude, end.latitude, end.height));
        return result;
    }
    function pointOnEllipsoid(theta, rotation, northVec, eastVec, aSqr, ab, bSqr, mag, unitPos, result) {
        var rotAxis = new bmgl.Cartesian3();
        var tempVec = new bmgl.Cartesian3();
        var unitQuat = new bmgl.Quaternion();
        var rotMtx = new bmgl.Matrix3();

        var azimuth = theta + rotation;

        bmgl.Cartesian3.multiplyByScalar(eastVec, Math.cos(azimuth), rotAxis);
        bmgl.Cartesian3.multiplyByScalar(northVec, Math.sin(azimuth), tempVec);
        bmgl.Cartesian3.add(rotAxis, tempVec, rotAxis);

        var cosThetaSquared = Math.cos(theta);
        cosThetaSquared = cosThetaSquared * cosThetaSquared;

        var sinThetaSquared = Math.sin(theta);
        sinThetaSquared = sinThetaSquared * sinThetaSquared;

        var radius = ab / Math.sqrt(bSqr * cosThetaSquared + aSqr * sinThetaSquared);
        var angle = radius / mag;

        // Create the quaternion to rotate the position vector to the boundary of the ellipse.
        bmgl.Quaternion.fromAxisAngle(rotAxis, angle, unitQuat);
        bmgl.Matrix3.fromQuaternion(unitQuat, rotMtx);

        bmgl.Matrix3.multiplyByVector(rotMtx, unitPos, result);
        bmgl.Cartesian3.normalize(result, result);
        bmgl.Cartesian3.multiplyByScalar(result, mag, result);
        return result;
    }

    var PrimitivePoints = (
        function () {
            var vertexShader;
            var fragmentShader;
            var geometry;
            var appearance;
            var viewer;
            function _(options) {
                viewer = options.viewer;
                vertexShader = VSPolylie();
                fragmentShader = FSPolyline();
                if (options.Cartesians && options.Cartesians.length >= 2) {
                    var postionsTemp = [];
                    var colorsTemp = [];
                    var indicesTesm = [];
                    if (options.Colors && options.Colors.length === options.Cartesians.length * 4) {
                        for (var i = 0; i < options.Cartesians.length; i++) {
                            postionsTemp.push(options.Cartesians[i].x);
                            postionsTemp.push(options.Cartesians[i].y);
                            postionsTemp.push(options.Cartesians[i].z);
                        }
                        colorsTemp = options.Colors;
                    } else {
                        for (var i = 0; i < options.Cartesians.length; i++) {
                            postionsTemp.push(options.Cartesians[i].x);
                            postionsTemp.push(options.Cartesians[i].y);
                            postionsTemp.push(options.Cartesians[i].z);
                            //
                            colorsTemp.push(0.0);
                            colorsTemp.push(0.0);
                            colorsTemp.push(1.0);
                            colorsTemp.push(1.0);
                        }
                    }
                    for (var i = 0; i < options.Cartesians.length; i++) {
                        indicesTesm.push(i);
                    }
                    this.positionArr = new Float64Array(postionsTemp);
                    this.colorArr = new Float32Array(colorsTemp);
                    this.indiceArr = new Uint16Array(indicesTesm);

                } else { // if (options.Cartesians && options.Cartesians.length >= 2) {
                    var p1 = bmgl.Cartesian3.fromDegrees(0, 0, -10);
                    var p2 = bmgl.Cartesian3.fromDegrees(0, 0.001, -10);
                    this.positionArr = new Float64Array([
                        p1.x, p1.y, p1.z,
                        p2.x, p2.y, p2.z
                    ]);
                    //默認藍色
                    this.colorArr = new Float32Array([
                        0.0, 0.0, 1.0, 1.0,
                        0.0, 0.0, 1.0, 1.0
                    ]);
                    this.indiceArr = new Uint16Array([0, 1]);
                }

                geometry = CreateGeometry(this.positionArr, this.colorArr, this.indiceArr);
                appearance = CreateAppearence(fragmentShader, vertexShader);

                this.primitive = viewer.scene.primitives.add(new bmgl.Primitive({
                    geometryInstances: new bmgl.GeometryInstance({
                        geometry: geometry
                    }),
                    appearance: appearance,
                    asynchronous: false
                }));
            }

            function CreateGeometry(positions, colors, indices) {
                return new bmgl.Geometry({
                    attributes: {
                        position: new bmgl.GeometryAttribute({
                            componentDatatype: bmgl.ComponentDatatype.DOUBLE,
                            componentsPerAttribute: 3,
                            values: positions
                        }),
                        color: new bmgl.GeometryAttribute({
                            componentDatatype: bmgl.ComponentDatatype.FLOAT,
                            componentsPerAttribute: 4,
                            values: colors
                        })
                    },
                    indices: indices,
                    primitiveType: bmgl.PrimitiveType.POINTS,
                    boundingSphere: bmgl.BoundingSphere.fromVertices(positions)
                });
            }

            function CreateAppearence(fs, vs) {
                return new bmgl.Appearance({
                    renderState: {
                        blending: bmgl.BlendingState.PRE_MULTIPLIED_ALPHA_BLEND,
                        depthTest: { enabled: true },
                        depthMask: true
                    },
                    fragmentShaderSource: fs,
                    vertexShaderSource: vs
                });
            }

            function VSPolylie() {
                return "attribute vec3 position3DHigh;\
                        attribute vec3 position3DLow;\
                        attribute vec4 color;\
                        varying vec4 v_color;\
                        attribute float batchId;\
                        void main()\
                        {\
                            vec4 p = czm_computePosition();\
                            v_color =color;\
                            p = czm_modelViewProjectionRelativeToEye * p;\
                            gl_Position = p;\
                            gl_PointSize=4.0;\
                        }\
                        ";
            }

            function FSPolyline() {
                return "varying vec4 v_color;\
            void main()\
            {\
                 float d = distance(gl_PointCoord, vec2(0.5,0.5));\
                 if(d < 0.5){\
                    gl_FragColor = v_color;\
                 }else{\
                    discard;\
                 }\
            }\
            ";
            }

            _.prototype.remove = function () {
                if (this.primitive != null) {
                    viewer.scene.primitives.remove(this.primitive);
                    this.primitive = null;
                }
            }
            _.prototype.updateCartesianPosition = function (cartesians) {
                if (this.primitive != null) {
                    viewer.scene.primitives.remove(this.primitive);
                    if (cartesians && cartesians.length < 2) { return; }
                    if (cartesians.length === this.positionArr.length / 3) {
                        var p1 = cartesians[0];
                        var p2 = cartesians[1];
                        this.positionArr = new Float64Array([
                            p1.x, p1.y, p1.z,
                            p2.x, p2.y, p2.z
                        ]);
                        geometry = CreateGeometry(this.positionArr, this.colorArr, this.indiceArr);
                    } else {
                        //默認藍色
                        var postionsTemp = [];
                        var colorsTemp = [];
                        var indicesTesm = [];
                        for (var i = 0; i < cartesians.length; i++) {
                            postionsTemp.push(cartesians[i].x);
                            postionsTemp.push(cartesians[i].y);
                            postionsTemp.push(cartesians[i].z);

                            colorsTemp.push(0.0);
                            colorsTemp.push(0.0);
                            colorsTemp.push(1.0);
                            colorsTemp.push(1.0);
                        }
                        for (var i = 0; i < cartesians.length; i++) {
                            indicesTesm.push(i);
                        }
                        this.positionArr = new Float64Array(postionsTemp);
                        this.colorArr = new Float32Array(colorsTemp);
                        this.indiceArr = new Uint16Array(indicesTesm);

                        geometry = CreateGeometry(this.positionArr, this.colorArr, this.indiceArr);
                        appearance = CreateAppearence(fragmentShader, vertexShader);
                    }

                    this.primitive = viewer.scene.primitives.add(new bmgl.Primitive({
                        geometryInstances: new bmgl.GeometryInstance({
                            geometry: geometry
                        }),
                        appearance: appearance,
                        asynchronous: false
                    }));
                } else { return; }
            }
            _.prototype.updateCartesianPositionColor = function (cartesians, colors) {
                if (colors.length === cartesians.length * 4) { } else { return; }
                if (this.primitive != null) {
                    viewer.scene.primitives.remove(this.primitive);
                    if (cartesians && cartesians.length < 2) { return; }
                    if (cartesians.length === this.positionArr.length / 3) {
                        var p1 = cartesians[0];
                        var p2 = cartesians[1];
                        this.positionArr = new Float64Array([
                            p1.x, p1.y, p1.z,
                            p2.x, p2.y, p2.z
                        ]);

                        this.colorArr = new Float32Array(colors);

                        geometry = CreateGeometry(this.positionArr, this.colorArr, this.indiceArr);
                    } else {
                        var postionsTemp = [];
                        var indicesTesm = [];

                        for (var i = 0; i < cartesians.length; i++) {
                            postionsTemp.push(cartesians[i].x);
                            postionsTemp.push(cartesians[i].y);
                            postionsTemp.push(cartesians[i].z);
                        }
                        for (var i = 0; i < cartesians.length; i++) {
                            indicesTesm.push(i);
                        }
                        this.positionArr = new Float64Array(postionsTemp);
                        this.colorArr = new Float32Array(colors);
                        this.indiceArr = new Uint16Array(indicesTesm);

                        geometry = CreateGeometry(this.positionArr, this.colorArr, this.indiceArr);
                        appearance = CreateAppearence(fragmentShader, vertexShader);
                    }

                    this.primitive = viewer.scene.primitives.add(new bmgl.Primitive({
                        geometryInstances: new bmgl.GeometryInstance({
                            geometry: geometry
                        }),
                        appearance: appearance,
                        asynchronous: false
                    }));
                } else { return; }
            }
            return _;
        })();
</script>
</body>
</html>
                                                                                                                                                                                            
主站蜘蛛池模板: 成人看片17ccom | 88av网站| 国产激情一区二区三区四区 | 亚洲一卡二卡在线观看 | 国产一伦一伦一伦 | 99riav3国产精品视频 | 欧美日韩视频在线 | 欧美激情欲高潮视频在线观看 | 精品国产黑色丝袜高跟鞋 | 男人久久天堂 | 日韩在线激情视频 | 琪琪电影午夜理论片八戒八戒 | 欧美视频在线观看一区二区 | 欧美mv日韩mv国产 | 国产a∨精品一区二区三区不卡 | 少妇激情一区二区三区视频 | 国产伦精品一区二区三区照片 | a级成色和s级成色视频 | 在线免费观看av网站 | 色av色| 欧美人与禽2o2o性论交 | 粉嫩小箩莉奶水四溅在线观看 | 激情自拍偷拍 | 欧美最猛黑人xxxx黑人猛交98 | 66av99精品福利视频在线 | 91亚洲精品一区二区乱码 | 色欲国产麻豆一精品一av一免费 | 精品无码久久久久久久动漫 | 五月天黄色av | 亚洲综合国产一区二区三区 | 久草视频福利 | 色欲aⅴ亚洲情无码av蜜桃 | 国产在线一区二区 | a级黄色片免费 | 国产超碰人人做人人爱ⅴa 日韩人妻无码精品久久久不卡 | 成人颜色网站 | 国产精品性视频一区二区 | 亚洲国产天堂一区二区三区 | 国产主播一区二区 | 99久久国产露脸精品吞精 | 老妇女性较大毛片 | 色射色| 国产精品久久久一区二区三区 | 成人午夜视频免费 | 蜜臀国产在线视频 | 极品白嫩丰满少妇无套 | 亚洲日本一区二区三区在线 | 天天想夜夜操 | 足疗店女技师按摩毛片 | 亚洲日韩乱码一区二区三区四区 | 欧美另类在线观看 | 国产精品高潮呻吟av久久动漫 | 国产毛片乡下农村妇女bd | 自拍视频一区二区三区 | 激情五月综合色婷婷一区二区 | 无遮挡粉嫩小泬久久久久久久 | 亚洲天堂av一区二区 | 99免费视频| 一级全黄裸体免费观看视频 | 欧美精品第二页 | 天堂躁躁人人躁婷婷视频ⅴ | 国产区女主播在线观看 | 国产吃瓜在线 | 霍思燕三级 | 成人精品视频99在线观看免费 | 欧美国产黄色 | 欧美大喷水吹潮合集在线观看 | 唐人社导航福利精品 | 极品丰满少妇 | 亚洲国产日韩欧美 | 成人免费黄色小视频 | 欧美日韩黄色网 | 99精品欧美一区二区三区小说 | 精品乱码久久久久久中文字幕 | 衣服被扒开强摸双乳18禁网站 | 日本xxxxx片免费观看19 | youjizzcom自拍 | 国产免费一区二区三区免费视频 | 中文字幕日韩在线观看 | 国内色视频 | 91性视频| 国产h视频在线观看 | 国产欧美日韩综合 | 奶涨边摸边做爰爽别停快点视频 | 欧美日韩在线一区 | 国产三级做爰在线播放 | 国产全肉乱妇杂乱视频1 | 粉嫩av国产一区二区三区 | 天天爽夜夜爽夜夜爽精品视频 | 久久久久高潮毛片免费全部播放 | 黄色aaa| 尹人综合 | 欧美一区二区日韩国产 | 你懂的91| 美女啪啪网址 | 妺妺窝人体色www在线下载 | 国产又粗又硬又大爽黄老大爷视 | 国产精品沙发午睡系列990531 | 精品欧洲av无码一区二区 | 天天玩天天干 | 亚洲熟妇久久国内精品 | 国产精品99久久久久久宅男 | 大黑人交xxxx18视频 | 国产精品免费久久久久影院仙踪林 | 久久精品人人做人人爽 | 亚洲地区天堂网 | 澳门一级黄色片 | 不卡福利视频 | 欧美自拍视频在线 | 成人免费视频观看视频 | 黄频网站在线观看 | 一本au道大尺码高清专区 | 37pao强力打造高清视频 | 张柏芝hd一区二区 | a级黄色毛片三个搞一 | 免费看的av网站 | 精品视频无码一区二区三区 | 色一情一乱一伦一区二区三区 | 丰满熟妇乱又伦在线无码视频 | 在线va无码中文字幕 | 亚洲成熟少妇视频在线观看 | 美女无遮挡免费网站 | 久久久久免费精品国产小说色大师 | 欧美深度肠交惨叫 | 无限看片在线版免费视频大全 | 少妇特黄a一区二区三区 | 日日躁夜夜摸月月添添添的视频 | 国内精品久久久久久久 | 在线观看国产精品视频 | 国产精品无码一区二区在线观一 | 波多野结衣国产 | 国产农村妇女毛片精品 | 成人免费观看男女羞羞视频 | 日本黄色网络 | 免费看成人aa片无码视频吃奶 | h视频网站在线观看 | 亚洲精品aaa| www中文字幕综合码 ww成人 | 日本大尺度做爰呻吟 | 黄色毛片av | 爱爱视频免费网址 | 亚洲精品久久久久久蜜桃 | 欧美乱插 | 亚洲三级图片 | 看片网址国产福利av中文字幕 | 国产不卡视频一区二区三区 | a毛片在线观看 | 亚洲一本在线观看 | 欧洲性开放大片 | 午夜精品一区二区三区免费视频 | 日产精品久久久久久久性色 | 九九九九九伊人 | 国产66av| 美女黄视频大全 | 亚洲国产成人丁香五月激情 | jzz在线观看 | 在线免费观看日韩av | 黄色片网站在线观看 | 午夜嫩草嘿嘿福利777777 | 亚洲午夜精品在线观看 | 日本一级爽快片野花 | 欧美日本韩国一区二区三区 | 永久免费看毛片 | 翘臀后进少妇大白嫩屁股 | 四虎在线免费观看 | 牛牛a级毛片在线播放 | 亚洲h片| 4hu44四虎www在线影院麻豆 | 91丝袜国产在线播放 | 一级片网址 | 午夜精品久久久 | 国内精品久久久久久久97牛牛 | 一级一级特黄女人精品毛片 | 亚洲va久久久噜噜噜久久男同 | 色热热| 国产精品福利网站 | 成人高潮片免费软件69视频 | 97精品人人a片免费看 | 亚洲自偷自偷在线成人网站传媒 | aaa日本高清在线播放免费观看 | 亚洲精品美女视频 | 免费看欧美片 | 国产99久久久国产精品下药 | 成人一区二区三区在线 | 国产精品av在线 | 成人性色生活片免费看l | 国产性生活毛片 | 98视频在线| 秋霞午夜一区二区三区视频 | 国产免费一区二区三区香蕉精 | 亚洲欧美在线免费观看 | 中文文字幕文字幕肉岳 | av天堂久久天堂色综合 | 秋霞综合网| 小草久久久久久久久爱六 | 91亚洲国产成人精品一区二三 | 日本精品久久久久中文字幕 | 日韩一区二区欧美 | 国产精品极品白嫩在线 | 欧美一级黄色毛片 | 黑人性生活视频 | 亚洲成人在线观看视频 | 国产一区二区在线播放视频 | 欧美人与性囗牲恔配 | 国产伦精品一区二区三区无广告 | 国产日韩激情 | 国语对白一区二区 | 国产老太交性20 | 99久久99久久免费精品蜜桃 | 91蜜桃婷婷狠狠久久综合9色 | 久久91精品国产91久久小草 | 国产亚洲第一伦理片在线c 国产亚洲精品久久久久动 国产亚洲精品久久久久久大师 | 性一交一乱一色一视频 | 日本a√在线观看 | 国产精品无码久久久久成人影院 | 亚洲美女在线观看 | 精品毛片一区二区三区 | 情侣作爱视频网站 | 久久精品国产清自在天天线 | 久久这里精品国产99丫e6 | 免费看涩涩视频软件 | 国产69精品久久99卡顿的解决方法 | 精品久久久久久亚洲综合网 | √新版天堂资源在线资源 | 国产黄色影视 | 日日碰狠狠躁久久躁婷婷 | 老女人乱淫 | 色偷偷av一区二区三区 | 久久露脸视频 | 哺乳援交吃奶在线播放 | 在线观看毛片视频 | 精品国精品国产自在久不卡 | 欧美日韩午夜爽爽 | 久久国产精品成人影院 | 色翁荡息又大又硬又粗视频 | 少妇三级全黄 | 欧美视频网站 | 今夜无人入睡在线观看 | 国产免费永久精品无码 | 精品人妻无码专区在线无广告视频 | 国内精品久久久久影视老司机 | 18女下面流水不遮图 | 九七视频在线 | 69sex久久精品国产麻豆 | 巨胸爆乳美女露双奶头挤奶 | 三上悠亚久久精品 | 精品久久a | 狠狠躁夜夜躁人人爽天天天天97 | 国产无遮挡又黄又爽免费网站 | 337p粉嫩大胆噜噜噜噜69影视 | 国产性猛交xxxⅹ交酡全过程 | 国产日韩欧美 | 国产成人综合在线观看 | 污网站免费看 | 人妻无码第一区二区三区 | 我要看一级黄色 | 欧美成人精品第一区二区三区 | 动漫美女靠逼 | 日韩欧美在线综合网 | 91涩漫直接入口 | 第一福利在线观看 | 欧美另类tv | 亚洲一区二区在线观看视频 | av合集| 在线看片不卡 | 亚洲va欧美va人人爽春色影视 | 日韩午夜一区 | 无码国产乱人伦偷精品视频 | 亚洲欧洲一二三区 | 少妇毛片| 久久亚洲一区二区三区四区五区 | 欧美乱码精品一区 | 日韩伦理一区二区三区 | av软件在线观看 | 天天天天天天操 | 欧美区视频 | 女人张开腿让男人桶个爽 | 亚洲欧美综合另类自拍 | 国产精品久久久久77777按摩 | 中文字幕亚洲综合久久菠萝蜜 | 亚洲国产中文字幕在线 | 成年人色网站 | 久久香蕉国产线熟妇人妻 | 欧美猛交ⅹxxx乱大交视频 | 国产丰满大乳奶水在线视频 | 日韩五月天 | 久久亚洲精品无码aⅴ大香 人人妻人人玩人人澡人人爽 | 毛片基地在线观看 | 免费无遮挡无码永久在线观看视频 | 欧洲熟妇精品视频 | 久久四色| 国产又粗又硬又大爽黄老大爷视 | 国产探花在线观看 | 日韩欧美视频一区二区三区 | 亚洲一区二区三区国产精华液 | 黄视频在线播放 | 亚洲视频456 | 日韩在线一二 | 抽插丰满内射高潮视频 | 天堂无码人妻精品av一区 | 看免费真人视频网站 | 亚洲国产精品一区二区久久hs | 欧美性色黄大片人与善 | 天天干天天日 | 国产三级精品三级在线观看 | 香蕉传媒 | 国模和精品嫩模私拍视频 | 激情内射人妻1区2区3区 | 李丽珍aa一级a毛片 李丽珍a级裸体啪啪 | 台湾全黄色裸体视频播放 | 欧美极品一区二区三区 | 欧美中文字幕无线码视频 | 日本少妇做爰全过程毛片 | 羞羞啪啪调教play男男黄 | 91亚洲欧美 | av一级网站| 狼人大香伊蕉国产www亚洲 | 中文字幕网伦射乱中文 | 2020最新国产自产精品 | 欧美老熟妇乱子伦视频 | 欧美激情自拍偷拍 | 青青伊人国产 | 欧美三级一区二区三区 | 成人影视免费 | 久久国产精品精品国产色婷婷 | av片免费在线 | 国产韩国精品一区二区三区久久 | 国产黄网永久免费视频大全 | 女人十八特级淫片清 | 免费毛片看片 | 在线视频一二区 | 天堂视频网站 | 少妇在军营h文高辣 | 特黄特色大片免费观看播放器 | 国产激情久久久 | 亚洲黄色在线免费观看 | 久久经典视频 | 婷婷成人亚洲综合国产xv88 | 一级免费av | 精品免费二区三区三区高中清不卡 | 日韩精品免费在线 | 伊人色综合久久天天小片 | 欧美精品偷自拍另类在线观看 | 成年人毛片视频 | 丰满双乳峰白嫩少妇视频 | 黄色三及| 亚洲高清视频网站 | 中文字幕无码第1页 | 国产又色又爽又黄刺激视频 | 日韩一级色片 | 黄网址在线观看 | 自拍偷拍999| 亚洲欧美成人中文日韩电影网站 | 久久精品人人做人人综合 | 亚洲精品一区二区三区影院忠贞 | 国产做受高潮 | av一区免费 | 国产亚洲精品久久久久久移动网络 | 羞羞视频日本 | 99精品国产兔费观看久久99 | 久久成人综合 | 99视频在线精品免费观看2 | 国产精品99久久久久久董美香 | 少妇裸体啪啪激情高潮 | 亚洲天堂网在线视频 | 欧美性受xxxx狂喷水 | 天天曰天天 | 国产伦精品一区二区三区免费迷 | 五月天av影院 | 久久男人av久久久久久男 | 五月婷婷网 | 国产成人综合在线女婷五月99播放 | 中文字幕免费在线视频 | 性欧美videos另类艳妇3d | 国产国产精品人在线观看 | 日韩精品不卡 | 欧美日韩精品一区二区三区不卡 | 国产在线一区二区三区四区五区 | 欧美日韩中文国产 | 四虎影库永久地址 | 人成免费a级毛片 | 久久精品久久久精品美女 | 99热在线播放 | 国产在线综合视频 | 草视频在线 | 免费观看国产黄色片 | 国产极品美女到高潮 | 无码日本精品xxxxxxxxx | 小明www永久免费播放平台 | 麻豆网址 | 麻豆天天躁天天揉揉av | 一本大道久久a久久精二百 一本大道久久a久久精品综合1 | 青青导航 | mm131美女大尺度私密照尤果 | 久在线精品视频线观看 | caoporn国产精品免费公开 | 亚洲啪av永久无码精品放毛片 | 日韩在线免费观看视频 | 久久99精品久久久久久秒播九色 | 俺去俺来也www色官网cms | 亚洲欧美第一 | 激情五月色综合国产精品 | 黄色大片中文字幕 | 亚洲特级片| 亚洲中文字幕无码天然素人在线 | www91成人| 成人一区视频 | 久久久久成人片免费观看蜜芽 | 狠狠色综合网站久久久久久久高清 | 9l视频自拍蝌蚪9l视频成人 | 久久国产综合 | 午夜免费福利在线观看 | 黄色毛片三级 | 色屁屁在线 | 色爽视频 | 久久www免费人成看片美女图 | 成人免费毛片明星色大师 | 亚洲视频精品在线观看 | 国产又粗又长又硬免费视频 | 日韩1区3区4区第一页 | 精品国产综合区久久久久久 | 日韩一区二区视频在线 | 日韩av一 | 亚洲中文字幕在线无码一区二区 | 激情综合亚洲色婷婷五月app | 亚洲性精品 | 日韩视频a | 红桃视频一区二区三区免费 | 99精品一级欧美片免费播放 | 国产精品久久久久久无毒偷食禁果 | 日日摸夜夜添夜夜躁好吊 | 国产精品久久久久9999吃药 | 国产欧美一区二区在线观看 | 久久99精品久久只有精品 | 日本道中文字幕 | 国产精品视屏 | 两性色午夜视频免费播放 | 日本公妇乱淫xxxⅹ 日本公妇乱淫免费 | 五月天综合激情网 | 张柏芝亚洲一区二区三区 | 激情五月深爱五月 | 中国浓毛少妇毛茸茸 | 久久人人爽人人片 | 激情五月婷婷久久 | 91一起草 | 国产激情偷乱视频一区二区三区 | 国产精品美女久久久 | 97人妻天天摸天天爽天天 | 手机免费av| 久久偷看各类wc女厕嘘嘘 | 山林妇女勾搭老头av | 天天躁日日躁狠狠躁av | 精品欧美日韩 | 亚州av久久精品美女模特图片 | 伊人视屏 | 韩国极品少妇xxxxⅹ视频 | 日韩一区二区免费在线观看 | 欧美精品久 | 日韩欧美在线播放 | 在线视频日韩 | 亚洲欧美日韩在线一区 | 精品国产一区二区三区在线 | 国产精品伦一区二区在线 | 色月阁| 69堂视频| 久久久亚洲裙底偷窥综合 | 欧美日韩在线不卡 | 国产刺激出水片 | 成人羞羞国产免费图片 | 国产3p又大又爽又粗又硬免费 | 成人免费视频一区二区三区 | 国产成人精品123区免费视频 | 午夜精品久久久久久中宇牛牛影视 | 日韩精品久久久久久久的张开腿让 | 香蕉国产片一级一级一级一级 | 国产一区二区三区中文字幕 | 少妇高潮喷潮久久久影院 | 夜夜摸日日躁欧美视频 | 99色99| 91激情影院| 在线黄色免费 | 91网站免费视频 | 视频一区二区三区在线 | 欧美城天堂网 | 亚洲理论在线观看 | 少妇与大狼拘作爱性a | 亚洲鲁鲁 | 777欧美 | 国产一级揄自揄精品视频 | 欧洲人妻丰满av无码久久不卡 | 中文字幕一区二区三区精彩视频 | 人妻久久久一区二区三区 | 国产成人精品午夜视频免费 | 久久国产精品无码网站 | 爱搞逼综合| 精品久久久噜噜噜久久久 | 国产午夜一区二区三区 | 最新无码a∨在线观看 | 99精品国产在热久久 | 日本亚洲黄色 | 久久精品国产亚洲77777 | 国产成人午夜片在线观看高清观看 | 少妇高潮一区二区三区99 | 四川农村妇女野外毛片bd | 亚洲一区二区不卡在线观看 | 日本一区二区三区高清在线观看 | 久久久综合香蕉尹人综合网 | 少妇精品偷拍高潮少妇 | 久久精国产| 99re6在线视频精品免费 | 精品人伦一区二区三电影 | 在线草| 成人三级k8经典网 | 无码一区二区三区视频 | 亚洲乱码日产精品bd在线 | 国产福利小视频在线 | 日韩欧美在线观看 | 四虎国产精品成人免费影视 | 99国产热| 亚洲久久久久久 | 99久久精品国产一区二区三区 | 人人妻人人澡人人爽欧美一区双 | 中文字幕综合网 | 女女互磨互喷水高潮les呻吟 | 成人欧美一区二区三区在线 | 理论片一区 | 国产成人av大片大片在线播放 | 国产夜夜操 | av最新地址 | 五月天色婷婷丁香 | jvid福利写真一区二区三区 | 日本三级在线视频 | 潮喷大喷水系列无码久久精品 | 我们2018在线观看免费版高清 | 好吊一区二区三区 | 日本无遮羞调教屁股视频网站 | 男人的天堂国产 | 久久免费视频观看 | 女人洗澡一级特黄毛片 | 97在线免费 | 日韩丰满少妇无码内射 | 中文字幕aⅴ人妻一区二区 性色av免费网站 | 懂色一区二区三区久久久 | 天天做天天爱夜夜爽毛片毛片 | 欧美激情18p | 狠狠色图| 亚洲永久av | 五月丁香综合缴情六月小说 | 男女aa视频 | 国产av国片精品jk制服丝袜 | 免费国产羞羞网站视频 | 免费黄色看片 | 国产ts变态重口人妖hd | 天天草综合 | 桃色网址 | 免费看黄色三级 | 蜜桃视频无码区在线观看 | 97人人模人人爽人人少妇 | 性啪啪chinese东北女人 | av天堂久久天堂色综合 | 制服诱惑一区二区 | 亚洲精品久久久久av无码 | 亚洲一级特黄 | 国产无遮挡又黄又爽在线视频 | 国产免费视频 | 免费一级男女裸片 | 91午夜在线 | 色噜噜亚洲精品中文字幕 | 灌满闺乖女h高h调教尿h | 国产刺激出水片 | 亚洲日韩小电影在线观看 | 精品三级视频 | 农村女人乱淫免费视频麻豆 | 中日韩在线观看 | 动漫羞羞 | 一区二区小说 | 久久综合网欧美色妞网 | 日韩无套| 天天操夜夜添 | 国产后入清纯学生妹 | 国产精品天美传媒入口 | 色香欲天天影视综合网 | 久久无码人妻精品一区二区三区 | 成人啪啪18免费网站看 | 人人妻久久人人澡人人爽人人精品 | 国产一久久 | 999久久久久久久久6666 | 狠狠色狠狠色综合久久第一次 | 欧美精品乱码久久久久久按摩 | 国产黄色成人 | 美国三级毛片 | 欧美成人片在线 | 特黄特色大片免费观看播放器 | 成人av在线网 | 久久免费看毛片 | 亡は夫の上司中文字幕 | 色综合视频在线 | 欧美福利一区二区 | 国产精品7| 男人的天堂av女优 | 97福利在线| 正在播放木下凛凛xv99 | 天天色棕合合合合合合合 | 色偷偷亚洲男人的天堂 | 黄色的网站免费看 | 国产日产欧产精品精品app | 日韩精品99久久久久中文字幕 | 久久久999久久久 | 欧美日韩一卡二卡三卡 | 精品厕所偷拍各类美女tp嘘嘘 | 99国产精品久久久 | 成熟女人毛片www免费版在线 | 白人と日本人の交わりビデオ | 亚洲精品一区二区三区婷婷月 | 亚洲欧美日韩一区二区 |