999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

二三維平臺間管線數(shù)據(jù)同步編輯的實現(xiàn)

2015-07-04 11:50:34王光昇付海龍周麗珠天津市測繪院天津300381
城市勘測 2015年5期
關(guān)鍵詞:服務(wù)

王光昇,付海龍,周麗珠(天津市測繪院,天津 300381)

二三維平臺間管線數(shù)據(jù)同步編輯的實現(xiàn)

王光昇?,付海龍,周麗珠
(天津市測繪院,天津 300381)

摘 要:目前,正在開展的全國城市地下管線普查對于管線數(shù)據(jù)質(zhì)量提出了更高要求,一般的管線數(shù)據(jù)檢查都只針對二維數(shù)據(jù)。如果在二維數(shù)據(jù)檢查和編輯的過程中能夠?qū)崟r顯示三維模型,對作業(yè)人員而言,就能夠非常直觀、快速地發(fā)現(xiàn)比較明顯的空間關(guān)系錯誤,對提高管線數(shù)據(jù)質(zhì)量具有重要的意義。本文提出了在二三維平臺間實現(xiàn)管線數(shù)據(jù)同步編輯的方法。

關(guān)鍵詞:地下管線;三維;同步;管線普查

1 引 言

城市地下管線是保障城市運行的重要基礎(chǔ)設(shè)施,是城市的“生命線”。為了對城市地下管線信息進行科學(xué)管理和有效利用,為城市規(guī)劃、建設(shè)和管理提供準(zhǔn)確的管線數(shù)據(jù),全國各省市開展了地下管線普查工作。管線普查所生產(chǎn)的數(shù)據(jù)量非常大,數(shù)據(jù)質(zhì)量的優(yōu)劣直接關(guān)系著地下管線管理的正確性和有效性。一般對于管線數(shù)據(jù)的檢查都只是針對二維數(shù)據(jù)的基本屬性、邏輯關(guān)系等的檢查,而很少考慮三維空間關(guān)系的正確性。

我院對管線數(shù)據(jù)的采集是基于AutoCAD環(huán)境二次開發(fā)的軟件,同時,在GIS市場運營過程中也開發(fā)了基于OSG(Open Scene Graph)的三維管線平臺。但是,數(shù)據(jù)的采集與三維展示二者是分離的,作業(yè)員只處理二維數(shù)據(jù),不考慮三維空間關(guān)系中是否正確,而三維平臺僅僅是作為數(shù)據(jù)展示的工具,并沒有考慮作業(yè)人員的實際應(yīng)用,當(dāng)發(fā)現(xiàn)錯誤的以后,需要將數(shù)據(jù)返回給作業(yè)員去修改,拖長了數(shù)據(jù)生產(chǎn)周期。如果作業(yè)人員在編輯和檢查二維數(shù)據(jù)的同時能夠?qū)崟r地看到三維結(jié)果,那么就可以方便、快速發(fā)現(xiàn)問題,在數(shù)據(jù)的源頭避免出現(xiàn)更多問題,這樣就可以大大縮短數(shù)據(jù)檢查修改的周期。本文采用命名管道、DotSpatial、反應(yīng)器等技術(shù)實現(xiàn)了管線數(shù)據(jù)在二三維平臺間的同步編輯。

國內(nèi)已經(jīng)實現(xiàn)的二三維同步操作的平臺一般都是在基于同一個進程的專用管理平臺,與數(shù)據(jù)生產(chǎn)人員的聯(lián)系不夠緊密。而本文研究的是兩個進程間的同步編輯操作,即AutoCAD軟件與自主研發(fā)三維平臺間的通信,它為管線數(shù)據(jù)生產(chǎn)人員提供了一種實時查看三維模型的技術(shù)手段。

2 關(guān)鍵技術(shù)

2.1命名管道

命名管道(Named Pipes)是一種簡單的進程間通信(IPC)機制,支持可靠的、單向或雙向的數(shù)據(jù)通信。不同于匿名管道,命名管道可以在不相關(guān)的進程和不同計算機之間使用,服務(wù)器建立命名管道時給它指定一個名字,任何進程都可以通過該名字打開管道的另一端,根據(jù)給定的權(quán)限和服務(wù)器進程通信。

在WCF(Windows Communication Foundation)中,使用NetNamedPipeBinding類實現(xiàn)了Windows的命名管道機制。但是限定了在使用命名管道的服務(wù)時只能接收來自同一臺機器的調(diào)用,因此必須指定明確的本機器名或直接寫localhost,并且每臺機器只能打開一個命名管道。

本文中,我們選擇WCF中的命名管道機制實現(xiàn)在同一臺機器上建立三維應(yīng)用程序與AutoCAD平臺之間的通信,使得管線作業(yè)人員在數(shù)據(jù)生產(chǎn)編輯、檢查的同時,能夠?qū)崟r地看到三維效果。

2.2DotSpatial

DotSpatial是一個基于.NET 4.0,使用C#語言開發(fā)的開源地理信息系統(tǒng)類庫,該類庫集成了地圖顯示、編輯、查詢、空間分析等常用的GIS功能,是目前比較成熟的開源GIS類庫。

本文在實現(xiàn)二三維管線數(shù)據(jù)同步編輯的過程中, 以shpefile格式的數(shù)據(jù)作為中間數(shù)據(jù),作業(yè)人員在AutoCAD中編輯二維數(shù)據(jù)時,通過自定義反應(yīng)器處理函數(shù),調(diào)用DotSpatial組件同步修改shapefile數(shù)據(jù),最后將修改的結(jié)果在三維平臺中實時顯示。

2.3反應(yīng)器

反應(yīng)器是AutoCAD中的一種反饋機制,它類似于Windows的消息處理,可以響應(yīng)輸入事件、實體編輯等事件。AutoCAD中的反應(yīng)器主要包括數(shù)據(jù)庫反應(yīng)器、對象反應(yīng)器、編輯器反應(yīng)器等。

3 實現(xiàn)過程

實現(xiàn)管線數(shù)據(jù)從二維到三維同步編輯的基本流程如圖1所示。

圖1 從二維到三維的同步流程

通過WCF的命名管道技術(shù)實現(xiàn)AutoCAD平臺與三維平臺的同步操作,首先要創(chuàng)建服務(wù)器端和客戶端,建立起進程間的通信。考慮到程序功能的獨立性和調(diào)試的方便,我們將服務(wù)器端宿主在一個獨立的.NET應(yīng)用程序中,而將AutoCAD和三維平臺都作為客戶端。客戶端與服務(wù)器之間的通信是雙向的,上述流程僅演示了從AutoCAD客戶端發(fā)消息給服務(wù)器,然后由服務(wù)器處理消息后再提交給三維平臺客戶端的過程。

3.1WCF服務(wù)模型

WCF是面向服務(wù)的應(yīng)用程序框架,與WCF服務(wù)的所有通信都是通過該服務(wù)的終結(jié)點進行的。終結(jié)點包含4個屬性:地址(Address)、綁定(Binding)、契約(Contract)和行為(Behavior)。

地址:包含服務(wù)的位置和傳輸協(xié)議,唯一地標(biāo)識終結(jié)點。

綁定:指定如何與終結(jié)點進行通信,封裝了傳輸協(xié)議、消息編碼、通信模式、可靠性、安全性、事務(wù)傳播以及互操作性等特征。

契約:是WCF的消息標(biāo)準(zhǔn),是服務(wù)的提供者和服務(wù)消費者進行交互的手段,它告訴客戶端如何與服務(wù)器聯(lián)系。

行為:客戶端的行為體現(xiàn)的是WCF如何進行服務(wù)調(diào)用的方式,而服務(wù)端的行為則體現(xiàn)了WCF的請求分發(fā)方式。

3.2服務(wù)器端的實現(xiàn)過程(1)定義和實現(xiàn)服務(wù)契約。定義:

[ServiceContract(SessionMode=SessionMode.Allowed)]

public interface IFromClientToServerMessages

{

[OperationContract(IsOneWay=true)]

void Register(Guid clientID,string clientName);

[OperationContract(IsOneWay=true)]

void DisplayTextOnServerAsFromThisClient(Guid clientID,string text);

}

實現(xiàn):

public void Register(Guid clientID,string clientName) {

if (! _registeredClients.Keys.Contains(clientID)) {

_registeredClients.Add(clientID,clientName);

}

}

public void DisplayTextOnServerAsFromThisClient(Guid clientID,string text) {

/ /處理來自客戶端發(fā)送過來的信息}

(2)在宿主進程中,為服務(wù)構(gòu)建ServiceHost的實例,并暴露終結(jié)點信息。

可以看出,契約接口IFromClientToServerMessages定義的兩個函數(shù)是客戶端向服務(wù)器發(fā)出的請求,需要在服務(wù)器宿主應(yīng)用程序中來處理客戶端的請求,也就是要在服務(wù)器端來實現(xiàn)這兩個函數(shù)。其中,Register函數(shù)是客戶端連接服務(wù)器時發(fā)出的請求注冊,參數(shù)clientName用來區(qū)分客戶端是AutoCAD或三維平臺;函數(shù)Display-TextOnServerAsFromThisClient是客戶端發(fā)送給服務(wù)器的文本信息處理函數(shù)。我們需要在宿主應(yīng)用程序類中繼承IFromClientToServerMessages接口,如下:

public partial class Form1 : Form,IFromClientToServerMessages

{

ServiceHost _serverHost;

Dictionary<Guid,string>_registeredClients=new Dictionary<Guid,string>();

NetNamedPipeBinding _bind=new NetNamedPipeBinding ();public Form1() {

InitializeComponent();

_serverHost=new ServiceHost(this);

_bind.MaxBufferPoolSize=2147483647;

_bind.MaxBufferSize=2147483647;

_bind.MaxReceivedMessageSize=2147483647;

_serverHost.AddServiceEndpoint((typeof(IFrom-ClientToServerMessages)), _ bind," net.pipe:/ / localhost/ Acad-Server");

_serverHost.Open();

} / /...}

ServiceHost對象負(fù)責(zé)管理服務(wù)的生存周期,通過AddServiceEndpoint方法將服務(wù)終結(jié)點添加到承載服務(wù)中,該方法接收的參數(shù)分別是契約(Contract)、綁定(Binding)和地址(Address)。

(3)打開通訊通道提供服務(wù)

客戶端與服務(wù)之間的通信是雙向的,它們通過彼此的地址(Address)標(biāo)識就可以隨時訪問對方。這里需要用到通道工廠(ChannelFactory),它接收服務(wù)協(xié)定接口作為泛型參數(shù),這樣創(chuàng)建出來的實例稱為該協(xié)定的通道工廠。顧名思義,這個工廠專門用于生產(chǎn)通道,這個通道就是架設(shè)在服務(wù)器終結(jié)點和客戶端終結(jié)點之間的通信通道了。由于這個通道是用服務(wù)協(xié)定來創(chuàng)建的,所以就可以在這個通道上調(diào)用這個服務(wù)協(xié)定的操作了。例如,從服務(wù)器向客戶端發(fā)送信息的方法如下:

private void SendText(Guid client,string text) {

using (ChannelFactory<IFromServerToClientMessages>factory = new ChannelFactory<IFromServerToClientMessages>(_bind, new EndpointAddress(" net.pipe:/ / localhost/

AcadClient_" + client.ToString()))) { IFromServerToClientMessages serverToClientChannel =factory.CreateChannel();serverToClientChannel.DisplayTextInClient(text);

} / / using

}

該實現(xiàn)過程可以簡單地描述成:在服務(wù)器端打開客戶端通道,向客戶端發(fā)送消息。

3.3客戶端的實現(xiàn)過程

(1)定義和實現(xiàn)的服務(wù)契約:

[ServiceContract(SessionMode=SessionMode.Allowed)]

public interface IFromServerToClientMessages

{

[OperationContract(IsOneWay=true)]

void DisplayTextInClient(string text);/ /處理來自服務(wù)器端發(fā)送過來的信息

}

(2)其他的實現(xiàn)過程和服務(wù)器端的實現(xiàn)類似,其中,向服務(wù)器發(fā)送信息的實現(xiàn)方法為:

public void SendTextToServer(string text) {

using (ChannelFactory<IFromClientToServerMessages>factory=new

ChannelFactory<IFromClientToServerMessages>(_bind, new

EndpointAddress ( " net.pipe:/ / localhost/ AcadServer")))

{ IFromClientToServerMessages clientToServerChannel =factory.CreateChannel();clientToServerChannel.DisplayTextOnServerAs-FromThisClient(_clientID,text);

}

}

同樣,SendTextToServer函數(shù)可以簡單地描述成:在客戶端打開服務(wù)器端通道,向服務(wù)器端發(fā)送消息。

3.4AutoCAD客戶端的消息監(jiān)控

作業(yè)人員應(yīng)用AutoCAD進行管線數(shù)據(jù)的編輯過程中,產(chǎn)生了數(shù)據(jù)編輯、窗口縮放、鼠標(biāo)移動等事件,這些事件是二三維同步的源頭,我們首先要在AutoCAD中捕獲這些事件。

(1)對象編輯事件

通過對象編輯反應(yīng)器來捕獲數(shù)據(jù)新增、修改信息,將變化后對象的位置和點號等屬性信息發(fā)送給服務(wù)器,然后由服務(wù)器通知DotSpatial去更新相應(yīng)的shp數(shù)據(jù)。反應(yīng)器的添加如下:

Document doc = acApp.DocumentManager.MdiActiveDocument;

doc.Database.ObjectModified += Database_ObjectModified;

(2)視圖變化事件

在AutoCAD中,影響視圖變化的因素主要有兩種:一種是鼠標(biāo)拖動、鼠標(biāo)滾輪等窗口消息。另一種是操作圖形窗口的AutoCAD命令,如ZOOM、PAN、RTZOOM、RTPAN等。AutoCAD中視圖發(fā)生變化后,我們必須及時地將當(dāng)前視圖范圍信息發(fā)送給服務(wù)器,由服務(wù)器通知三維平臺更新視圖范圍,這樣才能產(chǎn)生較好的同步效果。

對于窗口消息,通過PreTranslateMessage消息預(yù)處理響應(yīng)函數(shù)來捕獲,方法為:

public static Delegate pHandler;

pHandler = new PreTranslateMessageEventHandler ( messageEv);

public void messageEv ( object sender, PreTranslateMessag-eEventArgs e) {

Document mdiActiveDocument=acApp.DocumentManager.MdiActiveDocument;

if (mdiActiveDocument = = actdoc) { if (e.Message.message = = 0xc1f0 | | e.Message.message = = 520 | | e.Message.message = = 0x20a | | e.Message.message = = 0x20e) {

Editor editor = acApp.DocumentManager.Mdi-ActiveDocument.Editor;ExecuteInApplicationContextCallback callback =new ExecuteInApplicationContextCallback(_Lambda);acApp.DocumentManager.ExecuteInApplicationContext(callback,null);

}

} / / if

}

對于AutoCAD命令,通過命令反應(yīng)器來捕獲,方法為:

public static Delegate eHandler;

eHandler=new CommandEventHandler(cmdEnded);

public void cmdEnded(object o,CommandEventArgs e) { string globalCommandName=e.GlobalCommandName;string[] cmds = new string[9]{" -PAN"," ZOOM"," PAN","RTZOOM","RTPAN", " VIEW"," REGEN"," REGENALL"," REDRAW"};

if (cmds.Contains(globalCommandName))

{ Editor editor=acApp.DocumentManager.MdiActive-Document.Editor;ExecuteInApplicationContextCallback callback=new ExecuteInApplicationContextCallback(_Lambda);

acApp.DocumentManager.ExecuteInApplication-Context(callback,null);

}

}

其中,_Lambda函數(shù)實現(xiàn)了獲取AutoCAD當(dāng)前視圖的范圍,然后通過命名管道技術(shù)將視圖范圍發(fā)送給服務(wù)器,再由服務(wù)器更新三維平臺的視圖范圍。

[CompilerGenerated,DebuggerStepThrough]

private void _Lambda(object a0)

{

Document doc = acApp.DocumentManager.MdiActive-Document;

Editor ed=doc.Editor;

Matrix3d ucs=ed.CurrentUserCoordinateSystem;

Point3d vc = ((Point3d) acApp.GetSystemVariable( " VIEWCTR")).TransformBy(ucs);

Vector3d vd=new Vector3d(0,0,1);

double vpHeight = ((double) acApp.GetSystemVariable ("VIEWSIZE"));

Point2d screensize=(Point2d)acApp.GetSystemVariable ("Screensize");

double vpWidth=vpHeight?screensize.X / screensize.Y;

Point2d centerPoint=new Point2d(vc.X,vc.Y);Vector3d viewDirection=vd;

double x0=centerPoint.X - vpWidth / 2.0;double y0=centerPoint.Y - vpHeight / 2.0;double x1=centerPoint.X + vpWidth / 2.0;double y1=centerPoint.Y + vpHeight / 2.0;/ /調(diào)用SendTextToServer函數(shù),向服務(wù)器發(fā)送信息}

3.5DotSpatial更新shp數(shù)據(jù)

這里以管線為例說明用DotSpatial更新shp數(shù)據(jù)的步驟:

由AutoCAD的反應(yīng)器傳遞過來的管線編輯信息中,包含了管線的坐標(biāo)以及起始點號、終止點號、管徑等所有屬性信息。

(1)首先根據(jù)管線亞類信息,打開相應(yīng)的管線文件。

IFeatureSet fs=FeatureSet.Open(strVectorFile);

(2)根據(jù)管線的坐標(biāo)范圍選擇管線。

Extent ext=new Extent(minx,miny,maxx,maxy);

List<int>ids=fs.SelectIndices(ext);

(3)遍歷選擇的所有管線,通過比較起始點號、終止點號找到目標(biāo)管線,然后編輯坐標(biāo)、修改屬性。

IFeature feat=fs.GetFeature(id);/ /比較點號

feat.DataRow.BeginEdit();

List<Coordinate>points=new List<Coordinate>();points.Add(new Coordinate(x0,y0));points.Add(new Coordinate(x1,y1));feat.Coordinates=points;feat.DataRow.EndEdit();/ /修改屬性…

(4)保存文件。

fs.SaveAs(strVectorFile,true);

3.6三維渲染

三維平臺采用OSG開發(fā),在本文所述的同步流程中,作為一個客戶端接收來自服務(wù)器的指令。當(dāng)二維數(shù)據(jù)更新之后,shp數(shù)據(jù)也隨之更新了,三維平臺會按照服務(wù)器的指令重新將shp數(shù)據(jù)渲染成三維模型。對于三維平臺的實現(xiàn)方法本文不作具體論述。

3.7成果展示

二三維進程間的同步如圖2所示。

在控制面板中,選擇“啟動服務(wù)”后,就啟動了Au-toCAD和三維應(yīng)用程序間通信的服務(wù)器;選擇“同步”選項后,在AutoCAD窗口中的任何與視圖相關(guān)的操作,如縮放、平移、全屏等,在三維窗口中都會實時改變視圖,與二維窗口保持一致。

對于數(shù)據(jù)檢查的錯誤,我們將二維數(shù)據(jù)的錯誤發(fā)送到AutoCAD的錯誤定位窗口中,對于發(fā)生碰撞的三維空間錯誤發(fā)送到三維窗口中。三維窗口中的紅色箭頭指示了碰撞的位置,如圖2所示。

圖2 二三維同步

4 結(jié) 語

本文論述了如何采用基于WCF的命名管道技術(shù)實現(xiàn)AutoCAD平臺與三維平臺間進程間的通信,在此基礎(chǔ)上,結(jié)合反應(yīng)器、視圖同步、DotSpatial空間處理組件等技術(shù)實現(xiàn)管線數(shù)據(jù)在二三維平臺間的同步編輯。該方法可以幫助作業(yè)人員快速地發(fā)現(xiàn)管線三維空間的問題,提高管線數(shù)據(jù)質(zhì)量。

參考文獻(xiàn)

[1] 蔣金楠.WCF全面解析(上冊)[M].北京:電子工業(yè)出版社,2012:294~343.

[2] 嚴(yán)商.基于WCF的分布式程序的研究與實現(xiàn)[D].武漢理工大學(xué),2008:18~24.

[3] 吳清壽.基于WCF的分布式系統(tǒng)模型研究與實現(xiàn)[J].吉林師范大學(xué)學(xué)報·自然科學(xué)版,2012,8(3):61~64.

[4] 胡玉貴.基于WCF的雙工操作研究[J].現(xiàn)代計算機(專業(yè)版),2008(08):74~76.

[5] Justin Smith.WCF技術(shù)內(nèi)幕[M].武漢:華中科技大學(xué)出版社,2010:181~195.

[6] Autodesk.ObjectARX開發(fā)指南.1999.

[7] 肖鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南[M].北京:清華大學(xué)出版社,2010.

[8] 王銳,錢學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計與實踐[M].北京:清華大學(xué)出版社,2009.

Realization of Synchronous Editing of Pipeline Data Between Two and Three Dimensional Platform

Wang Guangsheng,Fu Hailong,Zhou Lizhu
(Tianjin Institute of Surveying and Mapping,Tianjin 300381,China)

Abstract:At present,the ongoing national urban underground pipeline survey is carried out,and put forward higher requirements for the pipeline data quality,the general pipeline data are only for two-dimensional data.If in the process of 2D data checking and editing,we can display 3D model in real time,to the operator,can very intuitive,quickly found more obvious spatial relationship errors,and to improve the data quality of the pipeline has important significance.In this paper,the method of realizing the synchronous editing of pipeline data between two and three dimensional platforms is presented.

Key words:underground pipeline;3D;synchronization;pipeline survey

文章編號:1672-8262(2015)05-75-05中圖分類號:P208.1

文獻(xiàn)標(biāo)識碼:B

收稿日期:?2015—05—10

作者簡介:王光昇(1979—),男,高級工程師,主要從事基礎(chǔ)地理信息數(shù)據(jù)處理工作。

猜你喜歡
服務(wù)
自助取卡服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
高等教育為誰服務(wù):演變與啟示
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 国产成人综合欧美精品久久| 91精品国产综合久久不国产大片| AV老司机AV天堂| 四虎精品国产永久在线观看| 香蕉精品在线| 国产内射一区亚洲| 亚洲AV电影不卡在线观看| 8090成人午夜精品| 日本午夜影院| 亚洲欧美一区在线| 中文字幕佐山爱一区二区免费| 亚洲网综合| 国产精品美女自慰喷水| 国产福利不卡视频| av在线手机播放| 成人免费视频一区二区三区 | 激情国产精品一区| 日韩av无码DVD| 亚洲一区二区三区国产精品 | 99精品国产电影| 99久久国产精品无码| 久久人体视频| 久久久久九九精品影院| 国产亚洲精品97在线观看| 亚洲伊人久久精品影院| 99在线视频网站| 精品伊人久久久久7777人| 四虎精品国产永久在线观看| 久久精品国产免费观看频道| 亚洲一区二区精品无码久久久| 欧美亚洲一区二区三区在线| 四虎永久免费在线| 亚洲精品欧美日本中文字幕| 在线五月婷婷| 日韩午夜片| 亚洲无码37.| 国产在线自乱拍播放| 五月六月伊人狠狠丁香网| 国产一区二区三区夜色| 亚洲第一中文字幕| 日韩欧美国产中文| 精品国产成人av免费| igao国产精品| 国产黄网站在线观看| 亚洲国产中文在线二区三区免| 婷婷激情亚洲| 国产尤物视频在线| 亚洲欧洲综合| 日本一区中文字幕最新在线| 宅男噜噜噜66国产在线观看| 久久久久久久蜜桃| 国产白浆在线观看| 九九热在线视频| 久久公开视频| 国产无遮挡裸体免费视频| 欧美精品另类| 亚洲精品成人福利在线电影| 92午夜福利影院一区二区三区| 经典三级久久| 午夜a视频| 伊人国产无码高清视频| 韩国v欧美v亚洲v日本v| 狠狠久久综合伊人不卡| 久久综合亚洲鲁鲁九月天| 尤物亚洲最大AV无码网站| 欧美激情第一区| 香蕉精品在线| 亚洲最黄视频| 亚洲国产一区在线观看| 日韩在线永久免费播放| 亚洲天堂日本| 国产成人无码AV在线播放动漫 | 2020精品极品国产色在线观看| 国产精品流白浆在线观看| 亚洲无码37.| 国产三级视频网站| 手机在线免费毛片| 少妇精品在线| 58av国产精品| 国产在线视频福利资源站| 国产高颜值露脸在线观看| 国产视频一区二区在线观看|