<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        mysql對GIS的支持&amp;amp;oracle空間數據庫說明

        來源:懂視網 責編:小采 時間:2020-11-09 15:35:28
        文檔

        mysql對GIS的支持&amp;oracle空間數據庫說明

        mysql對GIS的支持&oracle空間數據庫說明:今天下午閑來無事,無意中翻看了一下mysql的手冊,以前總是很有針對性的查閱手冊的內容,重點都是放在了sql語句的一些基本細節、mysql的性能參數、存儲控制的管理等方面,但是今天無意中發現了一個mysql的重要特點,那就是mysql對gis相關的空間數據也有存儲
        推薦度:
        導讀mysql對GIS的支持&oracle空間數據庫說明:今天下午閑來無事,無意中翻看了一下mysql的手冊,以前總是很有針對性的查閱手冊的內容,重點都是放在了sql語句的一些基本細節、mysql的性能參數、存儲控制的管理等方面,但是今天無意中發現了一個mysql的重要特點,那就是mysql對gis相關的空間數據也有存儲

        今天下午閑來無事,無意中翻看了一下mysql的手冊,以前總是很有針對性的查閱手冊的內容,重點都是放在了sql語句的一些基本細節、mysql的性能參數、存儲控制的管理等方面,但是今天無意中發現了一個mysql的重要特點,那就是mysql對gis相關的空間數據也有存儲

        今天下午閑來無事,無意中翻看了一下mysql的手冊,以前總是很有針對性的查閱手冊的內容,重點都是放在了sql語句的一些基本細節、mysql的性能參數、存儲控制的管理等方面,但是今天無意中發現了一個mysql的重要特點,那就是mysql對gis相關的空間數據也有存儲功能,這一點突然激起了我的興趣,所以也著重的研究了一下手冊的相關內容。從手冊上來看 其實mysql很早就提供了對gis對象的支持,只是我沒有發現而已。

        PostgreSQL由于具備PostGIS擴展而在開源GIS中有廣泛地應用,而作為開源數據庫中的另一個巨頭,mysql也不曾放棄gis這一重要的數據庫應用領域。從MySQL4.1開始,mysql就引入了一系列空間擴展,使其具備了一定的空間處理能力。
        mysql遵守OGC的OpenGIS Geometry Model,支持以下空間數據對象
        Geometry (non-instantiable)

        Point (instantiable)
        Curve (non-instantiable)
        LineString (instantiable)
        Line
        LinearRing
        Surface (non-instantiable)
        Polygon (instantiable)
        GeometryCollection (instantiable)

        MultiPoint (instantiable)
        MultiCurve (non-instantiable)
        MultiLineString (instantiable)
        MultiSurface (non-instantiable)
        MultiPolygon (instantiable)

        WTK是將空間數據導入mysql空間數據表的主要途徑。WTB是WTK的二進制形式,也可以為mysql辨識。

        創建mysql空間數據表
        當前只有MyISAM引擎的數據表支持地理空間數據的存儲,所以在創建數據表的時候必須進行聲明。

        CREATE DATABASE geodatabase;
        USE geodatabase;
        CREATE TABLE test(
        id INT PRIMARY KEY AUTO_INCREMENT,
        name VARCHAR(128) NOT NULL,
        pnt POINT,
        line LINESTRING,
        pgn POLYGON
        )ENGINE=MyISAM;


        用以下SQL插入一條空間數據

        INSERT INTO `test` VALUES(
        null,
        'a test string',
        POINTFROMTEXT('POINT(15 20)'),
        LINESTRINGFROMTEXT('LINESTRING(0 0, 10 10, 20 25, 50 60)'),
        POLYGONFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))')
        );

        這里也可以用通行的GEOMFROMTEXT函數實現WKT到數據庫內部幾何格式的轉換。而GEOMFROMWKB函數用于轉換WKB。

        用以下SQL從數據表中獲得空間數據

        SELECT id,name,ASTEXT(pnt),ASTEXT(line),ASTEXT(pgn) from `test`;

        ASTEXT函數的功能與GEOMFROMTEXT的功能恰好相反,就是將數據從內部格式轉換為WKT;相應的ASBINARY可以轉換為WKB。

        mysql內建的gis函數,這些函數是mysql數據庫本身就具備了比較強大的空間分析能力。mysql作為“最快”的開源數據庫,在gis領域中完全可以有更廣泛的應用。

        我個人認為充分的發掘mysql在gis空間數據存儲上的特點,通過php腳本或者c#程序開發有特色的存儲方式一定是一件非常有意義的事情,有時間的話我回做一些嘗試,有什么進展也會及時的寫在博客上。

        由于最近弄一些空間數據,所以找了些oracle空間數據庫的一些知識.下面是匯總:

        Oracle Spatial由一坨的對象數據類型,類型方法,操作子,函數與過程組合而成。一個地理對象作為一個SDO_GEOMETRY對象保存在表的一個字段里。空間索引則由普通的DDL和DML語句來建立與維護。
        創建表:
        CREATE TABLE cola_markets (
        mkt_id NUMBER PRIMARY KEY,
        name VARCHAR2(32),
        shape SDO_GEOMETRY);

        插入數據:
        INSERT INTO cola_markets VALUES(
        1,
        'cola_a',
        SDO_GEOMETRY(
        2003, -- two-dimensional polygon
        NULL,
        NULL,
        SDO_ELEM_INFO_ARRAY(1,1003,3), -- one rectangle (1003 = exterior)
        SDO_ORDINATE_ARRAY(1,1, 5,7) -- only 2 points needed to
        -- define rectangle (lower left and upper right) with
        -- Cartesian-coordinate data
        )
        );
        INSERT INTO cola_markets VALUES(
        2,
        'cola_b',
        SDO_GEOMETRY(
        2003, -- two-dimensional polygon
        NULL,
        NULL,
        SDO_ELEM_INFO_ARRAY(1,1003,1), -- one polygon (exterior polygon ring)
        SDO_ORDINATE_ARRAY(5,1, 8,1, 8,6, 5,7, 5,1)
        )
        );

        INSERT INTO cola_markets VALUES(
        3,
        'cola_c',
        SDO_GEOMETRY(
        2003, -- two-dimensional polygon
        NULL,
        NULL,
        SDO_ELEM_INFO_ARRAY(1,1003,1), -- one polygon (exterior polygon ring)
        SDO_ORDINATE_ARRAY(3,3, 6,3, 6,5, 4,5, 3,3)
        )
        );

        INSERT INTO cola_markets VALUES(
        4,
        'cola_d',
        SDO_GEOMETRY(
        2003, -- two-dimensional polygon
        NULL,
        NULL,
        SDO_ELEM_INFO_ARRAY(1,1003,4), -- one circle
        SDO_ORDINATE_ARRAY(8,7, 10,9, 8,11)
        )
        );

        更新視圖:USER_SDO_GEOM_METADATA
        INSERT INTO user_sdo_geom_metadata
        (TABLE_NAME,
        COLUMN_NAME,
        DIMINFO,
        SRID)
        VALUES (
        'cola_markets',
        'shape',
        SDO_DIM_ARRAY( -- 20X20 grid
        SDO_DIM_ELEMENT('X', 0, 20, 0.005),
        SDO_DIM_ELEMENT('Y', 0, 20, 0.005)
        ),
        NULL -- SRID
        );

        創建空間索引:
        CREATE INDEX cola_spatial_idx
        ON cola_markets(shape)
        INDEXTYPE IS MDSYS.SPATIAL_INDEX;
        -- Preceding statement created an R-tree index.

        這樣在mapguide下就可以preview空間數據信息.

        下面來說一下其中最關鍵的一些object:

        ( SDO_GEOMETRY對象類型
        在Spatial中,地理對象的描述是放在一個單獨的類型為SDO_GEOMETRY的字段中的。任何有這個字段的表,都至少要定義一個其它主鍵字段。

        Oracle Spatial定義的SDO_GEOMETRY類型為:
        CREATE TYPE sdo_geometry AS OBJECT (
        SDO_GTYPE NUMBER,
        SDO_SRID NUMBER,
        SDO_POINT SDO_POINT_TYPE,
        SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
        SDO_ORDINATES SDO_ORDINATE_ARRAY);

        當然Spatial也定義了SDO_POINT_TYPE, SDO_ELEM_INFO_ARRAY, 和
        SDO_ORDINATE_ARRAY類型:
        CREATE TYPE sdo_point_type AS OBJECT (
        X NUMBER,
        Y NUMBER,
        Z NUMBER);
        CREATE TYPE sdo_elem_info_array AS VARRAY (1048576) of NUMBER;
        CREATE TYPE sdo_ordinate_array AS VARRAY (1048576) of NUMBER;

        因為SDO_ORDINATE_ARRAY最大為1048576,所以SDO_GEOMETRY對象的頂點數量就依賴于它的維度,二維為524288,三維為349525,四維只有262144個頂點了。

        注意:

        對于一個給定的層(同一字段),所有的地理對象必須都是相同的維度,不能將二維與三維的數據放在一個層里。

        如果你使用四位的SDO_ETYPE那么,你也要使用四位的SDO_GTYPE。

        )

        SDO_GEOMETRY Object Type
        2.1 SDO_GTYPE dltt
        d:維數
        l:linear referencing system (LRS)
        tt:Geometry type
        00 UNKNOWN_GEOMETRY
        01 POINT
        02 LINE or CURVE
        03 POLYGON
        04 COLLECTION
        05 MULTIPOINT
        06 MULTILINE or MULTICURVE
        07 MULTIPOLYGON
        2.2 SDO_SRID
        確認coordinate system,此值為SDO_COORD_REF_SYS表中的SRID值。此值也被插入到USER_SDO_GEOM_METADATA視圖中。
        2.3 SDO_POINT
        (1)SDO_ELEM_INFO and SDO_ORDINATES are both null
        (2)SDO_POINT attribute is non-null
        結論:存儲坐標
        2.4 SDO_ELEM_INFO
        用來解釋存儲在SDO_ORDINATES屬性中的坐標信息。
        SDO_STARTING_OFFSET:SDO_ORDINATES中的offset min為1
        SDO_ETYPE: 1, 2, 1003, and 2003 simple elements; 3 polygon ring; 4, 1005, and 2005 compound elements
        SDO_INTERPRETATION
        2.5 SDO_ORDINATES
        長數組,存放空間對象的坐標
        2.6 Usage Considerations
        SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT 用來檢查幾何對象的一致性。

        1.1 SDO_GEOMETRY字段詳解
        Oracle Spatial的空間數據都存儲在空間字段sdo_Geometry中,理解sdo_Geometry是編寫Oracle Spatial程序的關鍵。sdo_Geometry是按照Open GIS規范定義的一個對象,其原始的創建方式如下所示:

        CREATE TYPE sdo_geometry AS OBJECT (
        SDO_GTYPE NUMBER,
        SDO_SRID NUMBER,
        SDO_POINT SDO_POINT_TYPE,
        SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
        SDO_ORDINATES SDO_ORDINATE_ARRAY);
        該對象由五個部分組成,各部分的意義如下表所示:
        字段名
        類型
        描述

        SDO_GTYPE
        NUMBER
        幾何對象的類型

        SDO_SRID
        NUMBER
        幾何對象的坐標系

        SDO_POINT
        SDO_POINT_TYPE
        表示幾何類型為點的幾何對象

        SDO_ELEM_INFO

        SDO_ELEM_INFO_ARRAY
        是一個可變長度的數組,每3個數作為一個元素單位,用于解釋坐標是如何存儲在SDO_ORDINATES中的

        SDO_ORDINATES

        SDO_ORDINATE_ARRAY
        是一個可變長度的數組,用于存儲幾何對象的真實坐標,該數組的類型為NUMBER型


        表1.1.1 sdo_geometry 各組成部分的意義
        ① SDO_GTYPE
        是一個NUMBER型的數值,用來定義存儲幾何對象的類型。SDO_GTYPE是一個4個數字的整數,其格式為dltt,其中d表示幾何對象的維數;l表示三維線性參考系統中的線性參考值,當d為3維或者4維時需要設置該值,一般情況下為空;tt為幾何對象的類型,Oracle Spatial定義了7種類型的幾何類型,目前,tt使用了00到07,其中08到99是Oracle Spatial保留的數字,以備將來幾何對象擴展所用。下表描述了Oracle Spatia1支持的幾何對象類型。
        數值 幾何類型 描述
        DL00 用于存放自定義類型的幾何對象
        DL01 點 幾何對象包含一個點
        DL02 直線或曲線 幾何對象由直線或曲線段組成
        DL03 多邊形 幾何對象包含一個多邊形,該多邊形可以含有洞
        DL04 復合形狀集 點、線、多邊形超集,可包含所有類型
        DL05 復合點 幾何對象由一個點或多個點組成
        DL06 復合線或曲線 幾何對象由一條線或多條線組成
        DL07 復合多邊形 幾何對象可以包含多個外環、多個不相交的多邊形
        DL08 - 99 Oracle Spatial 暫且保留
        表1.1.2 Oracle Spatia1支持的幾何對象類型

        ② SDO_SRID
        SDO_SRID也是一個NUMBER型的數值,它用于標識與幾何對象相關的空間坐標系。如果SDO_SRID為空(null),則表示沒有坐標系與該幾何對象相關;如果該值不為空,則該值必須為MDSYS.CS_SRS表中SRID字段的一個值,在創建含有幾何對象的表時,這個值必須加入到描述空間數據表元數據的USER_SDO_GEOM_METADATA視圖的SRID字段中。對于我們通常使用國際標準的Longitude/Latitude(8307),Oracle Spatial規定,一個幾何字段中的所有幾何對象都必須為相同的SDO_SRID值。

        ③ SDO_POINT
        SDO_POINT是一個包含三維坐標X,Y,Z數值信息的對象,用于表示幾何類型為點的幾何對象。如果SDO_ELEM_INFO和SDO_ORDINATES數組都為空,則SDO_POINT中的X,Y,Z為點對象的坐標值,否則,sdo_Point的值將被忽略(用NULL表示)。Oracle Spatial強烈要求用SDO_POINT存儲空間實體為點類型空間數據,這樣可以極大的優化Oracle Spatial的存儲性能和查詢效率。

        ④ SDO_ELEM_INFO
        SDO_ELEM_INFO是一個可變長度的數組,每3個數作為一個元素單位,用于表示坐標是如何存儲在SDO_ORDINATES數組中的。本文把組成一個元素的3個數稱為3元組。一個3元組包含以下3部分的內容:
        ◇ SDO_STARTING_OFFSET
        SDO_STARTING_OFFSET 表明每個幾何元素的第一個坐標在SDO_ORDINATES數組中的存儲位置。它的值從1開始,逐漸增加。
        ◇ SDO_ETYPE
        SDO_ETYPE 用于表示幾何對象中每個組成元素的幾何類型。當它的值為1, 2, 1003和2003時,表明這個幾何元素為簡單元素。如果SDO_ETYPE為1003,表明該多邊形為外環(第一個數為1表示外環),坐標值以逆時針存儲;如果SDO_ETYPE為2003,表明該多邊形為內環(第一個數為2表示內環),坐標值以順時針存儲。當SDO_ETYPE為4, 1005和2005時,表明這個幾何元素為復雜元素。它至少包含一個3元組用以說明該復雜元素具有多少個幾何簡單元素。同樣,1005表示多邊形為外環,坐標值以逆時針存儲;2005表示多邊形為內環,坐標值以順時針存儲。
        ◇ SDO_INTERPRETATION
        SDO_INTERPRETATION具有兩層含義,具體的作用由SDO_ETYPE是否為復雜元素決定。如果SDO_ETYPE是復雜元素(4, 1005和2005),則SDO_INTERPRETATION表示它后面有幾個子3元組屬于這個復雜元素。如果SDO_ETYPE是簡單元素(1, 2, 1003和2003),則SDO_INTERPRETATION表示該元素的坐標值在SDO_ORDINATES中是如何排列的。
        需要注意的是,對于復雜元素來說,組成它的子元素是連續的,一個子元素的最后一個點是下一個子元素的起點。最后一個子元素的最后一個坐標要么與下一個元素的SDO_STARTING_OFFSET值減1所對應的坐標相同,要么是整個SDO_ORDINATES數組的最后一個坐標。SDO_ETYPE和SDO_INTERPRETATION之間的關系如下表:

        SDO_ETYPE SDO_INTERPRETATION 描述說明
        0 任意值 用于自定義類型,Oracle Spatial不支持

        1 1 點類型

        1 n > 1 具有n個點的點集合

        2 1 由直線段組成的線串

        2 2 由弧線段組成的線串,一個弧線段由起點、弧線上任意一點和終點組成,相鄰兩個弧線段的接點只需要存儲一次

        1003
        2003 1 由直線段組成的多邊形,起點和終點必須相同

        1003
        2003 2 由弧線段組成的多邊形,起點和終點必須相同。一個弧線段由起點、弧線上任意一點和終點組成,相鄰兩個弧線段的接點只需要存儲一次

        1003
        2003 3 矩形:由左下角和右上角兩點確定

        1003
        2003 4 圓:由圓周上的三個點組成

        4 n >1 由直線段和弧線段組成的復合線,n表示復合線的相鄰子元素的個數,子元素的SDO_ETYPE必須為2,一個子元素的最后一點是下一子元素的第一個點,并且該點不能重復

        1005
        2005 n >1 由直線段和弧線段組成的復合多邊形,n表示復合線的相鄰子元素的個數,子元素的SDO_ETYPE必須為2,一個子元素的最后一點是下一子元素的第一個點,并且該點不能重復。多邊形的起點和終點必須相同

        表1.1.3 SDO_ETYPE和SDO_INTERPRETATION 的組合關系

        ⑤ SDO_ORDINATES
        SDO_ORDINATES是一個可變長度的數組,用于存儲幾何對象的實際坐標,是一個最大長度為1048576,類型為Number的數組。
        SDO_ORDINATES必須與sdo_Elem_Info數組配合使用,才具有實際意義。SDO_ORDINATES的坐標存儲方式由幾何對象的維數決定,如果幾何對象為二維,則SDO_ORDINATES的坐標以{ x1, y1, x2, y2, …}順序排列,如果幾何對象為三維,則SDO_ORDINATES的坐標以{x1, y1, z1, x2, y2, z2, …}的順序排列。
        實例說明
        下面用實例來進一步說明SDO_GEOMETRY對象的使用方法。

        ① 一個帶洞的多邊形

        ? SDO_GTYPE = 2003,表示幾何對象是一個二維的多邊形。
        ? SDO_SRID = NULL,在二維情況下不需設置線性參考值。
        ? SDO_POINT = NULL,表示幾何對象不是點類型。
        ? SDO_ELEM_INFO = (1,1003,1, 19,2003,1),有兩個三元組元素(1,1003,1) 和(19,2003,1),按照先后順序,在(1,1003,1)中,“1”表示該子元素的起點為SDO_ORDINATES數組中的第1個值,“1003”表示該元素為多邊形外環,“1”表示該多邊形由直線組成;在(19,2003,1)中,“19”表示該子元素的起點為SDO_ORDINATES數組中的第15個值,“2003”表示該元素為多邊形內環,“1”表示該多邊形由直線組成。
        ? SDO_ORDINATES = (2,4, 4,3, 10,3, 13,5, 13,9, 11,13, 5,13, 2,11, 2,4,
        7,5, 7,10, 10,10, 10,5, 7,5)。外環坐標以逆時針排列,內環坐標以順時針排列。

        ② 一個直線段與弧線段組成的復合線串

        ? SDO_GTYPE = 2002,表示幾何對象是一個二維的線串。
        ? SDO_SRID = NULL,在二維情況下不需設置線性參考值。
        ? SDO_POINT = NULL,表示幾何對象不是點類型。
        ? SDO_ELEM_INFO = (1,4,2, 1,2,1, 3,2,2),有三個三元組元素(1,4,2)(1,2,1) 和(3,2,2),按照先后順序,(1,4,2)表示該線串為復合線串,它由下面兩個三元組描述的子元素組成;在(1,2,1)中,“1”表示該子元素的起點為SDO_ORDINATES數組中的第1個值,“2”表示該元素為線,“1”表示這段線由直線組成;在(3,2,2)中,“3”表示該子元素的起點為SDO_ORDINATES數組中的第3個值,“2”表示該元素為線,“2”表示這段線由弧線段組成。
        ? SDO_ORDINATES = (10,10, 10,14, 6,10, 14,10),坐標(10,14)是直線段和弧線段的連接點,沒有重復存儲。

        ③ 一個直線段與弧線段組成的復合多邊形
        ? SDO_GTYPE = 2003,表示幾何對象是一個二維的多邊形。
        ? SDO_SRID = NULL,在二維情況下不需設置線性參考值。
        ? SDO_POINT = NULL,表示幾何對象不是點類型。
        ? SDO_ELEM_INFO = (1,1005,2, 1,2,1, 5,2,2),有三個三元組元素(1,2005,2)(1,2,1) 和(5,2,2),按照先后順序,(1,2005,2)表示該多邊形為復合多邊形,它由下面兩個三元組描述的子元素組成;在(1,2,1)中,“1”表示該子元素的起點為SDO_ORDINATES數組中的第1個值,“2”表示該元素為線,“1”表示這段線由直線組成;在(5,2,2)中,“5”表示該子元素的起點為SDO_ORDINATES數組中的第5個值,“2”表示該元素為線,“2”表示這段線由弧線段組成。
        ? SDO_ORDINATES = (6,10, 10,1, 14,10, 10,14, 6,10),坐標(14,10)是直線段和弧線段的連接點,沒有重復存儲。
        在Oracle Spatial中,可以運用SQL語句進行幾何數據的各種操作,例如:
        創建一個oralce數據庫名為Data1:
        Create Table Data1( mktID integer,//第幾號目標
        Name char(20), //目標名稱
        Shape SDO_GEOMETRY //目標的空間數據
        );
        把上例中的復合多邊形插入數據庫Data1:
        Insert into Datal values( 1, //編號
        ‘復合多邊形’, //名稱
        MDSYS.SDO_GEOME1RY(2003,NULL,NULL, //空間數據
        MDSYS.SDO_ELEM _INFO_ARRAY( 1, 1005, 2, 1, 2, 1, 5, 2, 2 ),
        MDSYS.SDO_ORDINATES_ARRAY(6,10, 10,1, 14,10, 10,14, 6,10)
        );

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        mysql對GIS的支持&amp;oracle空間數據庫說明

        mysql對GIS的支持&oracle空間數據庫說明:今天下午閑來無事,無意中翻看了一下mysql的手冊,以前總是很有針對性的查閱手冊的內容,重點都是放在了sql語句的一些基本細節、mysql的性能參數、存儲控制的管理等方面,但是今天無意中發現了一個mysql的重要特點,那就是mysql對gis相關的空間數據也有存儲
        推薦度:
        標簽: 空間 數據庫 支持
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人黄18免费视频| 一级女性全黄久久生活片免费| 久久黄色免费网站| 久久精品国产精品亚洲精品| 国产精品小视频免费无限app | 亚洲最大的黄色网| 在线观看成人免费视频不卡| 亚洲色图.com| 成视频年人黄网站免费视频| 国产成人精品日本亚洲网址| 18禁成年无码免费网站无遮挡| 亚洲午夜无码久久| 国产成人青青热久免费精品| 无码一区二区三区亚洲人妻| 亚洲成a人片在线观看国产| 中国黄色免费网站| 亚洲短视频男人的影院| 成年人网站免费视频| 亚洲欧美成人综合久久久| 日本a级片免费看| 一级成人a免费视频| 久久精品国产精品亚洲艾草网 | 久久久www成人免费毛片| 亚洲欧美日韩一区二区三区 | a级成人免费毛片完整版| 亚洲第一永久在线观看| 免费无遮挡无码视频网站| 特级毛片免费播放| 亚洲第一福利视频| 免费观看的av毛片的网站| 国产精品永久免费视频| 久久久亚洲精品国产| 成人免费a级毛片| 一本到卡二卡三卡免费高 | 亚洲一久久久久久久久| www国产亚洲精品久久久日本| 国产成人无码免费视频97| 久久久免费观成人影院| 亚洲卡一卡2卡三卡4麻豆| 亚洲av成人一区二区三区在线观看 | 国产小视频在线免费|