日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OSGEARTH三维地形开源项目

發布時間:2023/12/9 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OSGEARTH三维地形开源项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

第一章?? OSGEarth介紹

第二章?? OSGEarth編譯環境配置

OSGEarth的編譯環境配置隨著版本的不同、運行平臺的不同,也有很大的差異。本章主要以Windows XP SP3(x86)為平臺,Visual Studio 2010 為編譯環境來介紹OSGEarth2.0的變異環境配置。

第一節? OSGEarth V2.0相關資源

OSGEarth的相關資源可以通過其官方網站(http://www.osgearth.org/wiki/Downloads)獲取(所有資源文件均在關盤的source文件夾中)主要資源說明和網址如下表:

資源名稱

版本要求

推薦下載

OpenSceneGraph

V2.8.0以上

http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip

GDAL

V1.6以上

http://download.osgeo.org/gdal/gdal181.zip

http://download.osgeo.org/gdal/gdal-1.8.1.tar.gz

CURL

V7.21以上

http://curl.haxx.se/download/curl-7.22.0.zip

GEOS

V3.2以上

http://download.osgeo.org/geos/geos-3.3.1.tar.bz2

SQLite

V3.2以上

源文件:http://www.sqlite.org/sqlite-amalgamation-3070900.zip

Dll:http://www.sqlite.org/sqlite-dll-win32-x86-3070900.zip

MiniZip

V1.0以上

頭文件:http://www.winimage.com/zLibDll/unzip101h.zip

源代碼:http://www.winimage.com/zLibDll/zlib125.zip

Dll文件:http://www.winimage.com/zLibDll/zlib125dll.zip

Expat

V2.0.1以上

code:http://sourceforge.net/projects/expat/

exe:http://files.cnblogs.com/eaglezhao/expat-win32bin-2.0.1.rar

OSGEarth

V2.0

git://github.com/gwaldron/osgearth.git

OSGEarth源代碼使用tortoisegit軟件存放,因此需要下載并安裝:1.安裝?Git-1.7.0.2-preview20100309.exe

(http://msysgit.googlecode.com/files/Git-1.7.0.2-preview20100309.exe)

?2.安裝ortoiseGit-1.7.4.0-32bit.msi

(http://tortoisegit.googlecode.com/files/TortoiseGit-1.7.4.0-32bit.msi)

安裝過程中可能還需要其他的資源或者程序支持,具體在安裝過程進行說明。

第二節 ?Open Scene Graph安裝與配置

為了提高OSGEarth在編譯過程中執行速度,降低計算機硬件要求,因此選用windows XP SP3作為測試系統平臺,vs2010作為windows平臺下最新的編譯軟件,具有windows平臺的兼容性考慮,編譯出來的EXE文件可以順利的部署在vista,win7上。

2.1? CMake介紹與安裝

CMake 是個跨平臺的自動化建構系統,它用組態檔控制建構過程(build process)的方式和 Unix 的 Make 相似,只是 CMake 的組態檔取名為 CmakeLists.txt。Cmake 并不直接建構出最終的軟件,而是產生標準的建構檔(如 Unix 的 Makefile 或 Windows Visual C++ 的projects/workspaces),然后再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟件,這種可以使用各平臺的原生建構系統的能力是 CMake 和 SCons 等其他類似系統的區別之處。CMake 可以編譯源代碼、制作程式庫、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake 支援 in-place 建構(二進檔和源代碼在同一個目錄樹中)和 out-of-place 建構(二進檔在別的目錄里),因此可以很容易從同一個源代碼目錄樹中建構出多個二進檔。CMake 也支援靜態與動態程式庫的建構。

支持VS2010的CMake版本為v2.8以上,本書選擇V2.8.4。下載地址:

http://ishare.iask.sina.com.cn/f/14399926.html或者http://www.cmake.org/

關于的cmake的具體用法請參看

http://techbase.kde.org/Development/Tutorials/CMake_(zh_CN)

或者

http://www.cmake.org/Wiki/CMake。

下載完成后安裝,在安裝選項的位置選擇:

?

其他可選擇默認安裝。

2.2 ?Open Scene Graph介紹

Open Scene Graph(簡稱OSG)使用OpenGL技術開發,是一套基于C++平臺的應用程序接口(API),它讓程序員能夠更加快速、便捷地創建高性能、跨平臺的交互式圖形程序。它作為中間件(middleware)為應用軟件提供了各種高級渲染特性,IO,以及空間結構組織函數;而更低層次的OpenGL硬件抽象層(HAL)實現了底層硬件顯示的驅動。

2.2.1優勢

OpenGL技術為圖形元素(多邊形、線、點……)和狀態(光照、材質、陰影……)的編程提供了標準化的接口。而OSG開發的主要意義在于,將3D場景定義為空間中一系列連續的對象,以進行三維世界的管理。正是由于場景及其參數定義的特點,通過狀態轉化、繪圖管道和自定制等操作,OSG還可以用于優化渲染性能。

從系統開發人員的角度看,相比工業標準OpenGL 或其它的圖形庫,OSG的優點顯而易見。除了開源和平臺無關性以外,它封裝并提供了數量眾多的提升程序運行時性能的算法、針對包括分頁數據庫在內的幾乎所有主流數據格式的直接數據接口、以及對腳本語言系統Python?和Tcl 的支持,特別的,支持腳本語言系統的意義不僅限于用戶可以使用除C++語言以外的工具進行圖形系統的開發,事實上,對弱類型計算機語言的支持將突破現有交互式圖形系統在人-機交互性能方面的最終限制。 OSG采用以下思想和工具進行構建:

1.??????ANSI標準C++;

2.??????C++標準模板庫(STL);

3.??????設計模式(Designpatterns)。 

這些工具使得OSG的開發者可以在自己喜好的平臺上進行開發,并且依據用戶所要求的平臺進行配置。

2.2.2硬件需求

如今的OSG 已經可以在多種硬件平臺和操作系統上運行,并且能夠在大部分計算機系統上正常使用。   處理器:OSG 可以在大部分的CPU 上編譯通過。OSG 具備線程安全性,并且可以有效利用多處理器和雙核結構的特性。OSG 可以在32 位或者64 位處理器上運行通過。 

圖形:你的計算機系統需要配置一塊AGP 或者PCI 總線的圖形顯示卡。OSG可以在大部分用于建模,仿真和游戲的專業級或大眾級圖形設備上運行。可以運行OSG 的圖形設備必須高效地支持OpenGL,因此你應當從設備商處獲得最新的OpenGL 設備驅動程序。OSG 對顯卡RAM 的需求因用戶的使用而異,但是256MB 應當足夠了。OSG 可以在多管(multi-pipe)顯示系統上運行,并且可以利用多顯卡來提升渲染速度。 

RAM:最小的系統RAM 內存需求是由顯示數據的數量和類型決定的。推薦配置為1GB,大型數據集的開發可能需要更多的內存支持。 

磁盤:和RAM 一樣,磁盤空間的需求大小由數據量決定。對于任何程序來說,更高速和更大容量的磁盤無疑可以減少數據讀取的時間。

2.2.3軟件需求

可以運行OSG的平臺需要具備OpenGL的支持能力,以及C++的編譯環境,支持OSG的系統包括Solaris,IRIX,Windows,Mac OSX,HP-UX,Sony Platystation等等,不過XBox除外。 和OpenGL類似,OSG的核心并沒有提供窗口系統的功能。因此用戶可以自由選擇所需的圖形開發接口,如GLUT,X11/Motif,Win32,MacOS X,Qt,wxWindows,Fox等。

2.3 ?Open Scene Graph?安裝

Open Scene Graph安裝與編譯還需要下載兩個資源:

1.??????Osg第三方庫(3rdParty_VC10_x86_x64.zip),網址:

http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip

2.??????數據包(OpenSceneGraph-Data-3.0.0.zip),網址:

http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip

?

2.3.1建立文件地址與資源解壓

第一步:選擇一個磁盤(X),保證磁盤具有30G左右的可用空間,并創建文件夾,X:/OSG/;(作者使用了E盤,后續如果出現E盤表示選擇磁盤)。

第二步:將OpenSceneGraph-3.0.0.zip到X:/OSG/OpenSceneGraph文件夾中;3rdParty_VC10_x86_x64.zip解壓到X:/OSG/3rdParty文件夾中;OpenSceneGraph-Data-3.0.0.zip解壓到X:/OSG/OpenSceneGraph-Data文件夾中。

X:/OSG/OpenSceneGraph文件夾截圖:

?

X:/OSG/3rdParty文件夾截圖:

?

?

X:/OSG/OpenSceneGraph-Data文件夾截圖:

?

2.3.2 安裝源代碼

第一步:啟動CMake -gui.exe并設置文件地址,將編譯地址設置為E:/osg/OpenSceneGraph/vs2010。

第二步:點擊“configure”:

?

以此出現以下過程:

?

點擊“YES”:

?

選擇“visual studio 2010”,點擊“Finish”:

?

2.3.3???配置CMAKE相關設置

第一步:配置環境變量

第一步:設置基本參數

ACTUAL_3RDPARTY_DIR值:E:/OSG/3rdParty;

BUILD_OSG_EXAMPLES值:ON

CMAKE_INSTALL_PREFIX值:E:/osg/OpenSceneGraph/vs2010

?

?

?

第二部:點擊Configure;

(紅色標記為需要修改或設置不清楚的地方)。

第三步:將Advanced打勾,將BUILD_MFC_ EXAMPLE設置為on,然后進行最后一次的Configure配置。

?

第四步:點擊Generate,自此建構完成。

?

(只有出現了“Generating done”才表示生成完成,否則需要根據提示修改CMAKE的相關設置)

打開文件夾E:\osg\OpenSceneGraph\vs2010,可以看見:

2.3.4???編譯Open Scene Graph

第一步:用VS2010打開OpenSceneGraph.sln(此文件在E:\OSG\OpenSceneGraph\VS2010下),過程可能需要較長時間,請耐心等待。

第二步:配置VS2010的相關設置。

點擊“生成”,估計需要3-6個小時。

第三步:驗證生成的文件

在E盤新建E:\osgearth\OpenSceneGraph文件夾。(說明:E:\osgearth文件夾是用來編譯osgearth的文件夾)將E:\osg\OpenSceneGraph\vs2010下的bin,include,lib文件夾拷貝到E:\osgearth\OpenSceneGraph下(可以刪除vs2010生成的臨時文件,即bin中保留dll和exe文件,include不用處理,lib中保留lib文件),將E:\osg\OpenSceneGraph-Data下的數據拷貝到E:\ osgearth\OpenSceneGraph\data下;這幾個文件是OSG需要的。

???????? 測試文件:

1.??????打開E:\ osgearth\OpenSceneGraph\bin\osgviewerMFC.exe

?

2.??????打開E:\ osgearth\OpenSceneGraph\data文件中的.osg或者.osgt文件,使用鼠標拖動觀察程序運行情況。

?

?

?

?

如果運行正常,表明編譯已經成功,否則需要查看編譯過程中是否錯誤。在退出程序是出現下面對話框是正常現象。

?

?

?

第三節? CURL安裝與配置

3.1 ?CURL介紹

curl是利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理服務器, cookies, 用戶名/密碼認證, 下載文件斷點續傳, 上載文件斷點續傳, http代理服務器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務器, 通過http代理服務器上傳文件到FTP服務器等等,功能十分強大。Windows操作系統下的網絡螞蟻,網際快車(FlashGet)的功能它都可以做到。準確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統,用戶習慣稱curl為下載工具。

curl是瑞典curl組織開發的,您可以訪問?http://curl.haxx.se/獲取它的源代碼和相關說明。curl的最新版本是7.22.0。在http://curl.haxx.se/docs/您可以下載到UNIX格式的man幫助,里面有詳細的curl工具的使用說明。

3.2 ?CURL編譯

首先解壓curl-7.22.0.zip到當前文件夾。

?

第二步:使用vs2010打開vc6curl.dsw,出現的提示全部選擇“是”。

?

第三步:設置生成

?

?

編譯完成的界面顯示:

?

第四步:文件轉移。在E盤新建E:\osgearth\curl文件夾。(本書編譯文件夾:D:\數字地球\curl-7.22.0)將D:\數字地球\curl-7.22.0\include\curl文件夾中.h文件復制到E:\osgearth\curl\include和E:\osgearth\3rdparty\include\curl文件夾中;將D:\數字地球\curl-7.22.0\lib文件夾中(包含子文件夾)的dll和lib文件復制到E:\osgearth\curl\lib和E:\osgearth\3rdparty\lib文件夾中。

第四節? GDAL安裝與配置

4.1 ?GDAL介紹

GDAL(GeospatialData Abstraction Library)是一個在X/MIT許可協議下的開源柵格空間數據轉換庫。它利用抽象數據模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數據轉換和處理。    OGR是GDAL項目的一個分支,功能與GDAL類似,只不過它提供對矢量數據的支持。有很多著名的GIS類產品都使用了GDAL/OGR庫,包括ESRI的ArgGIS 9.2,Google Earth和跨平臺的GRASS GIS系統。利用GDAL/OGR庫,可以使基于Linux的地理空間數據管理系統提供對矢量和柵格文件數據的支持。

4.1.1 GDAL

GDAL提供對多種柵格數據的支持,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas ImagineImages(img),ASCII DEM(dem) 等格式。?

1)? GDAL抽象數據模型   

GDAL使用抽象數據模型(abstract datamodel)來解析它所支持的數據格式,抽象數據模型包括數據集(dataset),坐標系統,仿射地理坐標轉換(AffineGeoTransform), 大地控制點(GCPs),元數據(Metadata),柵格波段(Raster Band),顏色表(ColorTable),子數據集域(Subdatasets Domain),圖像結構域(Image_StructureDomain),XML域(XML:Domains)。

2)? GDAL基礎類   

GDALMajorObject類:帶有元數據的對象。GDALDdataset類:通常是從一個柵格文件中提取的相關聯的柵格波段集合和這些波段的元數據;GDALDdataset也負責所有柵格波段的地理坐標轉換(georeferencingtransform)和坐標系定義。   

GDALDriver類:文件格式驅動類,GDAL會為每一個所支持的文件格式創建一個該類的實體,來管理該文件格式。GDALDriverManager類:文件格式驅動管理類,用來管理GDALDriver類。  

4.1.2 OGR   

OGR提供對矢量數據格式的讀寫支持,它所支持的文件格式包括:ESRI Shapefiles, S-57, SDTS, PostGIS,Oracle Spatial, Mapinfomid/mif , Mapinfo TAB。OGR包括如下幾部分:

Geometry:類Geometry(包括OGRGeometry等類)封裝了OpenGIS的矢量數據模型,并提供了一些幾何操作,WKB(Well KnowsBinary)和WKT(Well KnownText)格式之間的相互轉換,以及空間參考系統(投影)。

SpatialReference:類OGRSpatialReference封裝了投影和基準面的定義。

Feature:類OGRFeature封裝了一個完整feature的定義,一個完整的feature包括一個geometry和geometry的一系列屬性。   

FeatureDefinition:類OGRFeatureDefn里面封裝了feature的屬性,類型、名稱及其默認的空間參考系統等。一個OGRFeatureDefn對象通常與一個層(layer)對應。  

Layer:類OGRLayer是一個抽象基類,表示數據源類OGRDataSource里面的一層要素(feature)。   

Data Source:類OGRDataSource是一個抽象基類,表示含有OGRLayer對象的一個文件或一個數據庫。

Drivers:類OGRSFDriver對應于每一個所支持的矢量文件格式。類OGRSFDriver由類OGRSFDriverRegistrar來注冊和管理。

4.2? GDAL編譯

第一步:將文件解壓并打開makegdal10.sln。(本書解壓文件夾為D:\數字地球\gdal-1.8.1\gdal-1.8.1)

?

第二步:文件轉移。

GDAL編譯完成后的文件存放于C:\warmerda\bld,包含文件bin,data,html三個子文件夾。

?

新建文件夾:E:\osgearth\gdal;將C:\warmerda\bld\bin和C:\warmerda\bld\data拷貝到E:\osgearth\gdal文件夾下;將D:\數字地球\gdal-1.8.1\gdal-1.8.1下得子文件夾alg,gcore,ogr和port中所有的.h文件拷貝到E:\osgearth\gdal\include下; 將D:\數字地球\gdal-1.8.1\gdal-1.8.1中所有的lib和dll文件復制到E:\osgearth\gdal\lib文件夾下。

第五節? GEOS安裝與配置

5.1 ?GEOS介紹

GEOS(幾何引擎——開源)是一個Java拓撲套件(JTS)的C++移植。因此,它的目的是在C++中包含完整的JTS移植。這包括了所有的OpenGIS“簡單SQL特征”:空間預測函數和空間操作員,以及具體的JTS拓撲功能

5.2? GEOS編譯

第一步:將文件解壓到D:\geos-3.3.1文件夾;

?

第二步:啟動CMake -gui.exe并設置文件地址,將編譯地址設置為D:/geos-3.3.1/vs2010。

?

第三步:點擊“configure”:

?

第三步:修改參數。Cmake_install_PREFIX值為D:/geos-3.3.1/vs2010.并在此點擊“configure”。

?

第四步:點擊“Generate”

?

D:/geos-3.3.1/vs2010文件夾截圖:

?

第五步:打開D:/geos-3.3.1/vs2010/geos.sln

?

?

設置相關參數(主要為了debug和release生成的文件名不一致)

工程名稱

Debug目標文件名

Release目標文件名

Geos

Geosd

Geos

geos-static

libgeosd

libgeos

geos_c

geosd_c

geos_c

?

?

點擊“生成”->“批生成”

?

開始編譯,編譯結果截圖:

?

第六步:文件轉移。

在D:/geos-3.3.1/vs2010文件夾中搜索lib和dll文件,并將搜索到的文件復制到E:\osgearth\geos\lib文件夾中;

?

將D:\geos-3.3.1\include中文件復制到E:\osgearth\geos\include文件夾中。

?

第六節? Expat安裝與配置

6.1? Expat介紹

Expat 是一個用C語言開發的、用來解析XML文檔的開發庫,它最初是開源的、Mozilla 項目下的一個XML解析器。Expat是一個面向流的解析器。您注冊的解析器回調(或handler)功能,然后開始搜索它的文檔。當解析器識別該文件的指定的位置,它會調用該部分相應的處理程序(如果您已經注冊的一個)。該文件被輸送到解析器,會被分割成多個片斷,并分段裝到內存中。因此expat可以解析那些巨大的文件。

6.2? Expat配置

第一步:直接下載expat-win32bin-2.0.1.rar文件,解壓后安裝。

?

第二步:文件轉移

將C:\Program Files\Expat2.0.1\Source\lib文件夾中的h文件復制到E:\osgearth\expat\INCLUDE文件夾中;

將C:\Program Files\Expat2.0.1\Bin文件復制到E:\osgearth\expat\lib文件夾中。

第七節? SQLite安裝與配置

7.1? SQLite介紹

SQLite,是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起MySQL、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月. 至今已經有10個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。

7.2? SQLite編譯與配置

第一步:解壓文件。

1.將sqlite-amalgamation-3070900.zip文件中的文件復制到E:\osgearth\sqlite\include中;

2.將sqlite-dll-win32-x86-3070900.zip中文件復制到E:\osgearth\sqlite\lib中;

3.從VS2010的安裝文件夾中的Visual Studio10/VC/bin中找到LIB.exe和Link.exe復制到E:\osgearth\sqlite\lib;

4.將 C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\mspdb100.dll復制到E:\osgearth\sqlite\lib;

?

第二步:編譯lib文件。

1.??????打開cmd窗口,進入E:\osgearth\sqlite\lib;

2.??????輸入命令:LIB/DEF:sqlite3.def。生成lib文件

?

編譯后E:\osgearth\sqlite\lib文件夾截圖:

?

第八節? Minizip安裝與配置

8.1? MiniZip介紹

ZIP,是一個計算機文件的壓縮的算法,原名Deflate(真空),發明者為菲爾·卡茨(PhilKatz)),他于1989年1月公布了該格式的資料。ZIP通常使用后綴名“.zip”,它的MIME格式為 application/zip 。目前,ZIP格式屬于幾種主流的壓縮格式之一,其競爭者包括RAR格式以及開放源碼的7-Zip格式。從性能上比較,RAR格式較ZIP格式壓縮率較高,而7-Zip由于提供了免費的壓縮工具而逐漸在更多的領域得到應用。 WinMount可以把ZIP掛載到虛擬盤,無需解壓,隨機讀取,這又是另一大創新。

ZIP是一種相當簡單的分別壓縮每個文件的存檔格式。分別壓縮文件允許不必讀取另外的數據而檢索獨立的文件;理論上,這種格式允許對不同的文件使用不同的算法。不管用何種方法,對這種格式的一個告誡是對于包含很多小文件的時候,存檔會明顯的比壓縮成一個獨立的文件(在類Unix系統中一個經典的例子是普通的tar.gz存檔是由一個使用gzip壓縮的TAR存檔組成)要大。 ZIP的規約指出文件可以不經壓縮或者使用不同的壓縮算法來存儲。然而,在實際上,ZIP幾乎差不多總是在使用卡茨(Katz)的DEFLATE算法。   

ZIP支持基于對稱加密系統的一個簡單的密碼,現在已知有嚴重的缺陷,已知明文攻擊,字典攻擊和暴力攻擊。ZIP也支持分卷壓縮。在近來一段時間,ZIP加入了包括新的壓縮和加密方法的新特征,不過這些新特征并沒有被許多工具所支持并且沒有得到廣泛應用。

8.2 ?MiniZip的編譯與配置

將unzip101h.zip中的文件復制到E:\osgearth\minizip\include;將zlib125dll.zip中文件夾dll32和static32中的lib文件和dll文件復制到E:\osgearth\minizip\lib中。Osgearth編譯需要的minizip文件已經處理完成

如果想對源代碼進行編譯的話,可以按照以下步驟進行:

第一步:啟動CMake -gui.exe并設置文件地址,將編譯地址設置為D:\zlib125\zlib-1.2.5\vs2010,然后“configure”

?

第二步:刪除文件D:\zlib125\zlib-1.2.5\zcongf.h;

設置Cmake_install_PREFIX值為D:\zlib125\zlib-1.2.5\vs2010;然后再次“configure”

?

“Generate”

?

D:\zlib125\zlib-1.2.5\vs2010截圖

?

第三步:打開并編譯zlib.Sln。

第九節Virtual Planet Builder安裝與配置

9.1 Virtual Planet Builder介紹

VirtualPlanetBuilder是一種地形數據庫創作工具,是能夠閱讀各種地理圖象和高程數據并建立小面積地形數據庫,乃至大規模如整個地球的龐大數據庫。這些數據庫可以上傳到互聯網,并能夠提供象在線googleearth一樣的風格漫游整個地球的數據庫,或保持對本地磁盤高速接入等所需的專業飛行模擬器。前面所講的VirtualPlanetBuilder建立的數據庫,如果要運行該數據庫產生一個可視化的場景,那么你將需要一個基于openscenegraph的應用程序。其實,VirtualPlanetBuilder本身是一個基于openscenegraph實時圖形工具箱,它可以創建基于openscenegraph的二進制的最高效率的數據庫。如果你的應用程序不是基于openscenegraph,而你要使用OSG中的數據庫的話,那么你需要寫一個后處理的工具來把該數據庫從openscenegraph的格式轉換為你自己的格式。VirtualPlanetBuilder已經從原來的傳最初的數據葉生成工具逐漸的完善了,現在它只是其中的一個部分而已!現在官方計劃進一步的對它進行擴展和完善,以便有可能創建幾十千兆的數據頁,并通過網上電腦間的傳輸來創建他們,讓每臺參與的工作的電腦一起來創造完整的數據庫。我們也將提供對數據庫的支持,以便優化低帶寬限制,實現基于web數據庫的三維可視化。對未來的發展詳情請看:

?

http://www.openscenegraph.org/projects/VirtualPlanetBuilder/wiki/DevelopmentPlans

相關信息配置:

http://www.openscenegraph.org/projects/osg/wiki/Support/UserGuides/osgdem

?

9.2 Virtual Planet Builder編譯

第一步:需要編譯完成OSG和GDAL,見osg和gdal編譯安裝部分。

第二步:下載相關的地圖文件

http://www.cc.gatech.edu/projects/large_models/ps.html

第三步:Vpb安裝需要插件下載

http://www.openscenegraph.org/projects/VirtualPlanetBuilder/wiki/Dependencies

squish-1.11.zip,80k

第四步:設置環境變量

第一步:下載并檢查相關的版本

1.使用SVN下載VirtualPlanetBuilder

http://www.openscenegraph.org/svn/VirtualPlanetBuilder/trunk

?

?

?

下載(或者更新)完成后,打開文件夾中的news.Txt:

?

這里的就是版本號,文件夾的標注可能有誤。

2.下載VirtualPlanetBuilder對應osg的版本。

?

下載相關的版本:http://www.openscenegraph.org/projects/osg/wiki/Downloads/PreviousReleases

這里需要注意,osg的相關版本可能是臨時版本,需要使用release版本。如果是使用http://www.openscenegraph.org/svn/VirtualPlanetBuilder/trunk進行下載的,可以使用最新的版本。

下載已經編譯好了的osg生成文件,注意編譯器版本和操作系統

http://openscenegraph.alphapixel.com/osg/downloads/free-openscenegraph-binary-downloads

下載debug和release兩個版本。

OpenSceneGraph-3.0.1-VS10.0.30319-x86-release-12741.7z

OpenSceneGraph-3.0.1-VS10.0.30319-x86-debug-12741.7z

重命名debug\bin文件夾中gdalxx.dll為gdalxxd.dll,libexpat.dll為libexpatd.dll。將release和debug中的bin,lib,include,share,data文件夾合并,如果出現重名,將debug中的文件名在擴展名之前加d,(123.dll=123d.dll)

查看gdal的版本,查看OpenSceneGraph-3.0.1\bin\gdalxx.dll,XX就是gdal的版本。

?

?

3.下載VirtualPlanetBuilder對應的gdal

下載編譯好的文件:

http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries

下載源文件:

http://trac.osgeo.org/gdal/wiki/DownloadSource

處理的方法參看gdal編譯。

4.設置相關的環境變量

OSG_DIR值:E:\osg\OpenSceneGraph-x.x.x;(E:\osg\OpenSceneGraph\vs2010,在2010編輯中獲取)

GDAL_DIR值:E:\osg\gdal-1.x.x;

PATH值中添加:%GDAL_DIR%\LIB;%GDAL_DIR%\BIN;%OSG_DIR%\INCLUDE;

%OSG_DIR%\LIB;%OSG_DIR%\BIN; %OSG_DIR%\include;%OSG_DIR%\share;%OSG_DIR%\data;

注意:有些編譯環境可能需要:squish-1.11.zip,下載地址如下:

http://www.openscenegraph.org/projects/VirtualPlanetBuilder/wiki/Dependencies

5.編譯處理,CMAKE

?

編輯configure和generate,生成文件*.sln

?

打開:VIRTUALPLANETBUILDER.sln,修改下面文件:vpb項目下SpatialProperties.cpp文件

?

使用release編譯,debug模式編譯有錯誤。

?

Release編譯結果:

?

將VirtualPlanetBuilder-0.9.12\vs2010\lib\Relase中的vpb.dll,vpb.lib

復制到VirtualPlanetBuilder-0.9.12\vs2010\bin\Relase中。

測試編譯結果:

Cmd;

Cd x:\osg\VirtualPlanetBuilder-0.9.12\vs2010\bin\Release

Osgdem –help

出現下面的界面表明編譯成功

?

6. 測試地形數據

下載相關的地圖文件:

http://www.cc.gatech.edu/projects/large_models/ps.html

?

ps_height_16k.png,ps_texture_16k.png

使用的命令行是:

?

gdal_translate ps_height_16k.pngps_height_16k.tif

gdaladdo -r average ps_height_16k.tif 2 4 816 32

gdal_translate ps_texture_16k.pngps_texture_16k.tif

gdaladdo -r average ps_texture_16k.tif 2 48 16 32

osgdem --xx 10 --yy 10 -tps_texture_16k.tif --xx 10 --yy 10 -d ps_height_16k.tif -l 6 -v 0.1 -o test.ive-a test.osga

osgviewer test.ive

?

?

最后??其他資源的配置

X.1? Open Scene Graph?第三方支持庫

從http://openscenegraph.alphapixel.com/osg/downloads/openscenegraph-third-party-library-downloads

下載windows-VS10.0.30319-x86-release.7z和windows-VS10.0.30319-x86-debug.7z兩個針對VS2010的壓縮包。將兩個壓縮包的內容復制到E:\osgearth\3rdparty。

也可以下載http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip,將x86文件中的文件復制到E:\osgearth\3rdparty。(這個壓縮包的資源相對較全)

X.2? libzip庫

Libzip 的功能與minizip相同,但由于使用的位置不同,為了后續配置osgearth,在此進行說明:

從http://files.cnblogs.com/eaglezhao/libzip(vs10).rar下載libzip(vs10).rar,將libzip(vs10).rar中的文件復制到E:\osgearth\libzip文件夾。

X.3? Osgearth資源下載

第一步:安裝Git-1.7.6-preview20110708.exe,默認安裝。

第二步:安裝TortoiseGit-1.7.4.0-32bit.msi,默認安裝。

第三步:創建一個文件夾E:\osgearth\data。

第四步:下載資源

?

在url中輸入:git://github.com/gwaldron/osgearth.git

?

點擊“ok”,下載過程可能需要較長時間。

?

下載完成后,將D:\osgearth文件中所有文件復制到E:\osgearth\osgearth文件夾中。同時將D:\osgearth進行壓縮備份。D:\osgearth文件將可以接收osgearth文件的更新。

?

從此為止,我們的osgearth環境就算搭建完成。

?


?

第三章?? ?OSGEarth編譯

上一章我們做的所有工作都是為了配置OSGEarth,

第一節? sln生成

VS2010的sln文件生成是OSGEarth的關鍵。作者在配置出現很多錯誤,從而導致了使用VS2010編譯出現很多問題。

1.1? CMAKE配置

第一步:啟動CMake -gui.exe并設置文件地址,將編譯地址設置為E:\OSGEARTH\OSGEARTH\vs2010,然后“configure”

?

第二步:添加參數

參數名稱

類型

DYNAMIC_OSGEARTH

Bool

On

OSG_DIR

Path

E:/OSGearth/OpenSceneGraph

添加方法:點擊“Add Entry”,彈出 Add CacheEntry對話框(如下圖所示)

?

完成后cmake參數列表頂端出現添加的兩個參數:

?

第二步:設置相關參數

主要針對“*-NOTFOUND”參數值的參數。

參數名稱

CMAKE_INSTALL_PREFIX

E:/osgearth/osgearth/vs2010

CMAKE_LINKER

(清空)

CURL_INCLUDE_DIR

E:/osgearth/3rdparty/include

CURL_LIBRARY

E:/osgearth/3rdparty/lib/libcurl.lib

CURL_LIBRARY_DEBUG

E:/osgearth/3rdparty/lib/libcurld.lib

GDAL_INCLUDE_DIR

E:/osgearth/gdal/include

GDAL _LIBRARY

E:/osgearth/gdal/lib/gdal_i.lib

GEOS_INCLUDE_DIR

E:/osgearth/geos/include

GEOS _LIBRARY

E:/osgearth/geos/lib/geos.lib

GEOS _LIBRARY_DEBUG

E:/osgearth/geos/lib/geosd.lib

LIBZIP_INCLUDE_DIR

E:/osgearth/libzip/include

LIBZIP _LIBRARY

E:/osgearth/libzip/lib/zip.lib

OPENTHREADS_LIBRARY

E:/osgearth/OpenSceneGraph/lib/OpenThreads.lib

OPENTHREADS _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/OpenThreadsD.lib

OSGDB_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgDB.lib

OSGDB_LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgDBD.lib

OSGFX_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgFX.lib

OSGFX _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgFXD.lib

OSGGA_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgGA.lib

OSGGA _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgGAD.lib

OSGMANIPULATOR_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgManipulator.lib

OSGMANIPULATOR _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgManipulatorD.lib

OSGSHADOW_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgShadow.lib

OSGSHADOW _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgShadowD.lib

OSGSIM_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgSim.lib

OSGSIM _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgSimD.lib

OSGTERRAIN_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgTerrain.lib

OSGTERRAIN _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgTerrainD.lib

OSGTEXT_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgText.lib

OSGTEXT _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgTextD.lib

OSGUTIL_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgUtil.lib

OSGUTIL _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgUtilD.lib

OSGVIEWER_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgViewer.lib

OSGVIEWER _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgViewerD.lib

OSGWIDGET_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osgWidget.lib

OSGWIDGET _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgWidgetD.lib

OSG_GEN_INCLUDE_DIR

E:/osgearth/OpenSceneGraph/include

OSG_INCLUDE_DIR

E:/osgearth/OpenSceneGraph/include

OSG_LIBRARY

E:/osgearth/OpenSceneGraph/lib/osg.lib

OSG _LIBRARY_DEBUG

E:/osgearth/OpenSceneGraph/lib/osgd.lib

OSG_VERSION_EXE

(清空)

SQLITE3_INCLUDE_DIR

E:/osgearth/sqlite/include

SQLITE3_LIBRARY

E:/osgearth/sqlite/lib/sqlite3.lib

ZLIB_INCLUDE_DIR

E:/osgearth/minizip/include

ZLIB_LIBRARY

E:/osgearth/minizip/LIB/zlibstat.lib

MINIZIP_INCLUDE_DIR

E:/osgearth/minizip/include

MINIZIP _LIBRARY

E:/osgearth/minizip/LIB/zlibstat.lib

如下圖:

?

?

?

設置完成后再次“configure”

?

第三步:生成vs2010文件。

點擊“Generate”,結果如下:

?

E:\osgearth\osgearth\vs2010文件夾截圖:

?

1.2? VS2010配置

第一步:使用vs2010打開E:\osgearth\osgearth\vs2010\OSGEARTH.sln文件。

?

第二步:打開all_build工程屬性,設置庫目錄和包含目錄。

?

包含目錄:

?

庫目錄:

?

保存所有文件,這樣SLN文件就可以使用了。

第二節? OSGEarth編譯與測試

2.1 ?OSGEarth編譯

第一步:配置系統環境變量。

新設置OSG_FILE_PATH變量,值為E:\OSGearth\OSGEARTH\data;E:\OSGearth\GDAL\data;

向PATH添加值:

E:\OSGearth\3rdParty\bin;

E:\OSGearth\OSGEARTH\bin\Debug;

E:\OSGearth\OSGEARTH\bin\Release;

第二步:使用“生成”->“批生產”,選擇all_build(debug|win32和release|win32)進行生成。

?

在生成的過程中會提示出現以下錯誤:

錯誤提示

處理方法

無法打開包括文件:“geos/platform.h”

將D:\geos-3.3.1\vs2010\include\geos文件夾中的文件復制到E:\osgearth\geos\include\geos中

無法打開包括文件:“zlib.h”

將D:\zlib125\zlib-1.2.5\中zlib.H文件復制到E:\osgearth\libzip\include文件夾中

在編譯過程中存在4個文件無法編譯成功,但是不影響正常的測試。

?

第三步:修改這些錯誤。

上述錯誤的問題主要出現在E:\osgearth\osgearth\src\applications\osgearth_imageoverlay\osgearth_imageoverlay.cpp文件的36-39行。

?

原因是OSG_MIN_VERSION_REQUIRED(2,9,6)限制了osg的版本。本文使用了v3.0.1版,因此需要添加需要添加ImageOverlayEditor文件。

(目前還沒有解決)

?

?

2.2? OSGEarth測試

測試release版本:

1.打開cmd窗口,進入E:\osgearth\osgearth\vs2010\bin\Release;

2.輸入命令: osgearth_viewer.exe E:\osgearth\osgearth\tests\gdal_tiff.earth;會出現一個提示

?

3.復制所需的dll到E:\osgearth\osgearth\vs2010\bin\Release文件夾中。可能需要重復好多次。

4.測試成功會出現下面界面:

?


?

第四章?? OSGEarth學習

?

這是個人在學習osgEarth時根據體會或從別的地方看到的做的一個簡單整理,有些東東就是官方文檔翻譯過來的,都是根據自己的需要感覺需要記錄下來什么東西就隨便記錄下來了,也沒有個條理,都是用到哪記到哪,別見怪。對個人在初期使用osgEarth時有很多幫助,所以特發上來,希望對大家也有幫助

osgEarth學習筆記

1.??????? 通過earth文件創建圖層時,可以指定多個影像數據源和多個高程數據源,數據源的順序決定渲染順序,在earth文件中處于最前的在渲染時處于最底層渲染;所以如果有高低精度不同的影響數據或者高程數據,在創建earth文件時要將粗精度的數據放在上方xml節點,高精度的放在其下面的節點;

2.??????? osgEarth自帶多種驅動器,不同的驅動器驅動不同的數據源,自己也可以擴展驅動器讀取相應的數據;

3.??????? 可以通過profile屬性指定數據的投影方式或者數據分頁方式以及地理空間延展;osgEarth通過profile創建數據四叉樹,每個四叉樹節點數據瓦片通過TileKey類來標示;一個地形數據能否正常工作要看創建它的驅動器是否能夠創建和對應profile兼容的數據瓦片;比如,如果要生成地球數據,就需要指定global-geodetic 或者global-mercatorprofile,相應的數據源要能夠在這種profile下生成相應的地形數據;

4.??????? 通過earth文件,最基本的也是最主要的功能是我們可以指定生成地形的坐標屬性(地理坐標或投影坐標)影像數據、高程數據、矢量數據、模型數據、以及緩沖位置,通過這些基本要素就可以輕易生成我們想要的地形;

5.??????? osgEarth只能使用16或32位的高程數據源;

6.??????? 如果直接使用原始的影像、高程以及矢量數據,可以用GDAL驅動器,在這種情況下需要注意幾個性能的問題。第一,將數據源預先進行坐標變換,變換為目標地形坐標,否則osgEarth會對源數據進行坐標投影變換,這將降低數據的加載及處理速度。如果預先已經將數據源進行正確的坐標變換,osgEarth就可以省略這個步驟,從而提高其實時處理速度;第二,預先對影像數據進行瓦片處理,比如tiff格式的影像數據,它是逐行掃描存儲的,而osgEarth是每次讀取一個瓦片數據,如果預先對影像數據進行瓦片處理,在動態過程中osgEarth就不需要每次讀取整個大塊影像數據然后提取其需要的瓦片數據,而可以直接讀取相應的瓦片數據即可,這樣就大大提高了瓦片數據的讀取速度。可以通過gdal_translate工具對影像數據進行瓦片處理;第三,創建金字塔數據集可以使osgEarth讀取數據更加高效,可以用gdaladdo工具創建金字塔數據集;總之,要想提高osgEarth的處理效率,就要預先創建高效的數據瓦片結構,除了用gdal、vpb等工具外,也可以通過osgEarth的數據緩沖機制創建預處理的瓦片數據集。比如我們可以創建一個如下的earth文件將數據緩沖到指定的目錄:

<mapname="bluemarble" type="geocentric"version="2">

?

??? <!--Add a reference to the image -->

?? <image name="bluemarble"driver="gdal">

???????<url>c:/data/bluemarble.tif</url>

??? </image>

?

??? <options>

?????? <!--Tell osgEarth to cache the tilesin a TMS format-->

???? <cache type="tms">

??????????<path>c:/osgearth_cache</path>

????? ??????<!--Tell osgEarth to cache the tilesto JPG to save disk space-->

????????? <format>jpg</format>

?????? </cache>

? </options>

</map>

這種緩沖方式只能緩沖在執行該文件時瀏覽過的地形數據,而不能自動緩沖所有的數據,要想自動緩沖所有的數據,就需要用到osgEarth自帶的一個工具,osgearth_seed,通過osgearth_seed --max-level 7 bluemarble.earth將數據全部緩沖到指定位置,通過這種方式緩沖后,我們就擁有了一個完整的TMS數據源,我們可以直接通過文件目錄的方式訪問該數據源,也可以將該數據源拷貝到我們自己的本地web服務目錄下。詳情見http://osgearth.org/wiki/DataPreparation。除此之外還可以用MapTiler以及TileCache工具創建瓦片數據源,用它創建的瓦片數據源也可以直接在osgEarth下使用;

7.??????? 可以通過兩種方式將osgEarth集成到我們自己的osg應用程序中,第一種就是直接通過earth文件的方式,直接將earth文件讀入作為一個osg節點加入場景即可,另外一種方式就是通過osgEarth的API。通過API的方式大體需要以下幾個步驟:創建map對象——創建影像數據層——創建高程數據層——將影像數據層以及高程數據層加入到map對象——根據前面創建的map對象創建mapNode節點——將mapNode節點加入到場景;示例見http://osgearth.org/wiki/DevelopersGuide。無論是通過earth文件創建的地形還是通過API創建的地形,我們都可以在運行時對其進行修改,如果是用earth文件創建的地形,需要先找到該earth文件對應的mapNode,通過以上兩種方式創建的mapNode,我們可以對地形進行修改操作,如添加新的影像、高程數據,移除特定的影像、高程數據,重新制定影像、高程數據的順序等;

8.??????? 如果我們的地形用的是地心坐標系,可以會碰到當相機距離地面非常近的時候地形被裁減掉的問題,要解決這個問題我們可以通過設置相機的遠近裁剪比率或者創建AutoClipPlaneHandler來解決。AutoClipPlaneHandler可以動態監視相機,當相機距離地面很近時動態調整相機的近裁減面;

9.??????? 在地形上放置模型對象時可以使用ObjectPlacer類,通過該類可以直接通過經緯度坐標進行模型的放置操作;

10.??????? osgEarth的目標是能夠在osg中開發基于地理信息的應用,能夠方便地瀏覽地理模型數據,能夠與開放標準的地理數據兼容;osgEarth渲染地形的模式分為兩種:實時在線模式(直接使用原始數據渲染生成)以及離線模式(數據預處理成瓦片數據或地形數據庫);

11.??????? osgEarth使用于以下幾種情況的應用:快速方便地運行地形地圖數據;使用開放標準的地形地圖數據,如WMS、TMS、WCS等;通過Web服務的方式集成本地存儲的地形地圖數據;系統要求以瘦客戶端的方式運行;經常處理隨著時間改變的數據;集成商業數據;

12.??????? 在使用osgEarth自帶的漫游器EarthManipulator時,如果給漫游器設置一個矩陣或者給漫游器設置一個TetherNode然后再解除,然后再移動相機位置,這時計算出的Center會有一個跳躍,然后才正常,造成這個問題的原因是給漫游器設置了參考節點(通過SetNode函數)造成的,設置了參考節點后漫游器要根據參考節點重新計算Center和相機姿態等參數,在以上兩種情況發生時,在重新計算Center時出現了偏差,要想避免以上兩種情況下造成的移動異常,可以不讓相機結合參考節點重新計算Center,即將Pan函數中的recalculateCenter注釋掉即可;

13.??????? Map的類型分為geocentric和projected兩種類型,即地心方式和投影方式,要建立圓形地球就用geocentric類型,用這種類型如果要制定profile,只有geodetic(WGS84投影)和mercator(墨卡托投影)兩種模式;

14.??????? Earth文件詳解:

<!—type 屬性可以是geocentric和projected兩種模式,分別對應地心坐標系和平面投影坐標系,默認是地心坐標模式。Version是osgEarth的主版本號,必須有版本號-->

<map? name=”myMap”?type=”geocentric”/”projected”?version=”2”>

?

<!—定義地圖各圖層的運行時顯示屬性-->

<options>

?

<!—定義數據緩沖機制,緩沖類型有三種,tms、sqlite3以及tile cache,默認是tms,如果將cache_only設為true,osgEarth將只加載緩沖的數據,不加載任何非緩沖的數據,默認是false-->

<cachetype=”tms”/”sqlite3”/”tilecache” cache_only=”false”>

?

<!—緩沖數據存放目標目錄,適用于tms以及tilecache 兩種類型,直接指定緩沖目錄-->

<path>C:/myCache</path>

?

<!—緩沖數據存放目標文件,適用于sqlite3,指定數據庫文件名-->

<path>C:/myCache.db</path>

?

<!—緩沖目標文件類型,適用于tms以及tilecache兩種類型,如果沒有指定類型,將默認用影像數據或高程數據的類型-->

<format>jpg</format>

?

<!—tms類型,僅適用于tms類型,注意如果該類型是google,索引就是反的-->

<tms_type>google</tms_type>

?

<!—緩沖文件最大值,單位是MB,不知道該屬性是否只是適用于sqlite3,有待確定-->

<max_size>300</max_size>

</cache>

?

<!—坐標投影屬性,該屬性相當于渲染數據的地理空間上下文,它決定了系統以哪種方式將世界坐標數據投影到屏幕像素。為了正確渲染影像數據以及高程數據,osgEarth需要知道數據源的profile以及渲染時的profile以進行必要的轉換。-->

<profilename=”myProfile”>

?

<!—空間參考系統初始化字符串,該字符串的值可以參考PROJ4或WKT,下面是用PROJ4定義的WGS84投影 profile,srs以及作用范圍的定義同樣適用于平面投影模式-->

<srs>prog=latlong+ellps=WGS84 +datum=WGS84</srs>

?

<!—如果只想讓該profile作用在某個區域,可以給其指定范圍-->

<xmin>-10.2</xmin>

<xmax>-10</xmax>

<ymin>20</ymin>

<ymax>30</ymax>

?

<!—由于WGS84比較著名,所以可以用下面的簡化方式代替上面的定義-->

<profile>global-geodetic</profile>

?

<!—另外一個著名的球體投影就是墨卡托投影(yahoo、google、微軟、openstreetmap都是用的這種投影方式),這種投影方式的優點是可以在任何緯度或者預留區域正確地顯示文本信息,可以用下面的簡化方式定義-->

<profile>global-mercator</profile>

?

<!—也可以不用簡化方式,簡化方式使用默認的橢球體,也可以通過定義srs自己定義橢球體-->

<srs>+proj=latlong+a=6800000 +b=6800000</srs>

?

<!—定義垂直空間參考系統,相當于垂直高程大地基準-->

<vsrs>egm96-meters</vsrs>

</profile>

?

<!—定義地形引擎如何渲染影像數據和高程數據-->

<terrain>

?

<!—定義如何從上層高程數據采集當前層需要的高程數據,比如如果影像數據可以分割到17層,而高程數據到7層,那么8-17層的高程數據就需要從第7層去采集,下面的屬性就指定了以何種方式去采集相應的高程值,一共有四種采集方式,分別是nearest(采集最近相鄰點)、bilinear(雙線插值)、average(平均值插值)、triangulate(根據相鄰的四個點插值)-->

<elevation_interpolation>nearest/bilinear/average/triangulate</elevation_interpolation>

?

<!—定義是否開啟地形表面的光照,默認是開啟-->

<lighting>true</lighting>

?

<!—定義如何加載地形數據(數據加載策略),可以定義加載模式mode,分為standard(標準加載模式)、sequential(順序加載模式)以及preemptive(優先級加載模式),默認是標準加載模式,preemptive加載模式不同于順序加載模式,當需要加載最高級瓦片時需要從最低級開始逐層加載,而preemptive模式可以直接跳過中間級直接加載最高級,同時還可以設定不同數據的加載優先級,比如可以設定優先加載影像數據而后加載高程數據等,這樣可以在視覺上得到優化處理。此外還可以指定加載數據時每個CPU創建的線程數量(loading_threads_per_core)或者加載數據使用的總的線程數量(loading_threads),以及編譯地形數據即構建地形瓦片所使用的線程數量(compile_threads),注意,加載數據時每個CPU創建的線程數量和加載數據使用的總的線程數量不能同時指定,只能指定其中一種-->

<loading_policymode=”preemptive” loading_threads_per_core=”3” compile_threads=”2”></loading_policy>

?

<!—定義多個影像數據疊加時如何集成最終的影像數據,一共有四種方式,分別是auto(自動)、multitexture(多重紋理)、texture_array(紋理數組)、multipass(多通道),默認是auto方式,這種方式是系統自動選擇一種紋理組合方法,它首先檢測硬件所支持的各種方法然后選擇第一種。Multitexture方式會為每個影像層指定它自己的影響紋理單元然后通過GPU進行組合,允許的最大紋理層的數量要受GPU的限制,texture_array是使用一個二維紋理數組通過GPU進行組合,multipass方式是通過創建多個渲染通道進行紋理的組合,這種方式沒有紋理層數量的限制,但會影像系統的性能,因為它要給每個紋理層創建一個渲染通道-->

<compositor>auto/multitexture/texture_array/multipass</compositor>

?

<!—定義地形瓦片分割的最大層數-->

<max_lod>10</max_lod>

?

<!—定義瓦片范圍系數,也就是瓦片Lod范圍的最大值系數,系統默認是根據瓦片的寬度與該系數相乘作為范圍最大值,該值默認是4,通過該系數可以對不同的地形圖層的lod可見范圍進行控制以提高效率,特別是對于帶有文本的圖層或者測繪標記圖層,可以將該系數設小以大大提高系統的渲染性能-->

<min_tile_range_factor>4.5</min_tile_range_factor>

?

<!—定義瓦片數據的采樣率,通過設定不同的采樣率以得到不同精細程度的地形瓦片,默認是1.0,詳情可參考osgTerrain-->

<sample_ratio>1.2</sample_ratio>

?

<!—定義地形瓦片邊緣率,osgTerrain會在不同的瓦片之間繪制邊緣以防止不同的瓦片之間出現縫隙,該值默認是0.02,如果該值太小,在不同瓦片之間就可能會出現縫隙,如果太大,可能會造成不必要的渲染而影響系統的渲染性能,對于高度變化比較大的地形或者是做了高程夸張的地形可以盡量將該值設的大一些,以免出現縫隙-->

<skirt_ratio>0.05</skirt_ratio>

?

<!—定義高程夸張系數,默認是1.0,也就是正常渲染高程的真實高度-->

<vertical_scale>2.0</vertical_scale>

?

<!—定義邊緣緩沖率,就是地形瓦片的延展率,比如將地形做鑲嵌或者重投影時為了能夠準確覆蓋到所有的瓦片數據需要將瓦片范圍進行適當的放寬,如果設定0.2,放寬的倍數就是1.02-->

<edge_buffer_ratio>0.02</edge_buffer_ratio>

</terrain>

?

<!—指定是否對整個map啟用光照-->

<lighting>true</lighting>

</options>

?

<!—指定影像數據,在同一個map中image的name必需是唯一的;在image下的子要素,有些是公共的,有些是針對特定的driver的。我們可以給影像數據指定driver(驅動器),不同的驅動器用于驅動不同的影像數據源;可以指定cacheid(影像數據緩沖標識),一個影像緩沖標示對應特定的緩沖目錄或緩沖數據庫文件,如果不指定,系統會根據驅動器創建默認的緩沖標識;可以指定影像數據細分的最小層數min_level以及最大層數max_level;可以指定可見范圍min_range以及max_range,該值是影像數據塊距離相機的距離(單位是米),當影像圖層數據塊不在該范圍內時圖層將不顯示,等同于lod節點的可見范圍;可以指定該影像數據的加載權重loading_weight,詳情可見loading_policy,權重越大,加載的優先級越高;可以指定影像瓦片數據黑名單文件名blacklist_filename,當系統請求影像數據瓦片時,如果包含該瓦片的影響文件不存在,系統就會把該請求的數據瓦片放入到一個黑名單中,這樣可以避免再次請求該無效數據,從而提高數據請求的效率。如果黑名單中沒有任何記錄,該黑名單就處于被禁用狀態,也不會影像系統性能。-->

<imagename=”myImage”>

?

<!—指定該影像數據使用的profile,給該數據源指定profile后將覆蓋map的全局profile,默認情況下,影像驅動器會自動判斷數據源應該使用的profile,如果我們覺得驅動器無法自動判斷得到數據源的profile時就要手動指定profile;-->

<profile>global_geodetic</profile>

?

<!—指定無數據頁nodata_image,某些影像數據服務器,如果客戶端請求的某些層上沒有請求的相應影像數據,就會顯示無數據提示,通過設定該屬性可以讓系統也顯示無數據的狀態提示圖片信息-->

<nodata_image>someURL</nodata_image>

?

<!—指定無數據信息圖片的透明背景色-->

<transparent_color>00 255 200</transparent_color>

?

<!—指定該圖層是否啟用數據緩沖,默認是啟用的-->

<cache_enabled>true</cache_enabled>

?

<!—指定緩沖數據文件格式,為該數據源指定緩沖格式后將覆蓋該map的全局緩沖格式,如果不指定,系統將默認使用源數據的文件格式-->

<cache_format>png</cache_format>

?

<!—指定影像數據的不透明度,默認是1.0,完全不透明,值越小越透明-->

<opacity>0.5</opacity>

?

<!—指定是否啟用該圖層,默認是啟用-->

<enabled>true</enabled>

?

<!—指定該影像數據被分割時單個瓦片的大小(像素的寬、高)-->

<tile_size>40</tile_size>

?

<!—指定最大瓦片緩沖個數,指定該值是為了提高瓦片拼接的效率,默認值是16-->

<l2_cache_size>20</l2_cache_size>

</image>

?

//特定驅動器屬性設置,驅動器分為影像/高程驅動器、模型驅動器、特征驅動器、緩沖驅動器以及地形引擎驅動器5大類;

//影像/高程驅動器

<!—agglite驅動器,該驅動器將矢量數據柵格化為位圖然后然后將其轉換為地形瓦片紋理層-->

<imagename=”myAggliteImage” driver=”agglite”>

?

<!—定義矢量特征(features)數據,矢量數據的屬性定義都要通過特征節點features來定義,矢量特征數據也要指定自己的驅動器,它不直接創建矢量數據幾何體,只是用來讀取矢量數據,目前矢量數據驅動器主要是ogr及GDAL,支持的矢量數據文件格式就是驅動器支持的所有文件格式 -->

<featuresname=”myWorld” driver=”ogr”>

?

<!—指定矢量數據源的位置-->

<url>../data/world.shp</url>

?

<!—指定讀取數據源的某一層,只有數據源包含多個層時才可用-->

<layer></layer>

?

<!—指定預處理幾何體緩沖,所有的矢量幾何體都將作為面對象進行緩沖,相當于后臺緩沖,通過預先在后臺多處理一部分矢量數據,從而在顯示區域發生變化時載入數據比較快,從而降低給視覺造成的數據顯示延遲-->

<bufferdistance=”0.02”/>

?

<!—指定驅動器要驅動的文件類型-->

<ogr_driver>ESRIShapefile</ogr_driver>

?

</features>

?

<!—指定數據繪制的風格,如顏色、透明度、紋理貼圖等等,這種風格的設置一般是用于矢量數據的繪制,osgEarth可以通過兩種方式定義風格,一種是CSS(重疊樣式表),一種是SLD(通過xml指定樣式,還在開發中),當給數據指定風格時,可以各整個數據層指定通過的風格,也可以將數據分解成多個類class,然后給每個類指定不同的風格(數據源需要能夠分解成不同的類)-->

<!—指定線的風格,顏色、寬度、透明度-->

<styletype="text/css">

??????? element {

??????????? stroke: #FF0000;

??????????? stroke-width: 2.0;

??????????? stroke-opacity: 0.5;

??????? }

??? </style>

<!—指定面的風格-->

<styletype="text/css">

??????? element {

??????????? fill: #FF0000;

??????????? fill-opacity: 0.5;

??????? }

??? </style><!—分解成不同的類分別設置不同的風格,下面是根據frence變量進行類的劃分并設置不同的風格-->

<featuresname="world" driver="ogr">

??????????<url>data/world.shp</url>

?????????? <ogr_driver>ESRIShapefile</ogr_driver>

?????? </features>

?

?????? <class name="french-speaking">

?????????? <query>

?????????????? <expr>french="true" </expr>

?????????? </query>

?????????? <styletype="text/css">

?????????????? world {

?????????????????? fill: #FFFF00;

?????????????????? fill-opacity: 0.5;

?????????????? }

?????????? </style>

??????</class>

?

?????? <classname="non-french-speaking">

?????????? <query>

?????????????? <expr>french="false" </expr>

?????????? </query>

?????????? <styletype="text/css">

?????????????? world {

?????????????????? fill: #FF0000;

?????????????????? fill-opacity: 0.5;

?????????????? }

?????????? </style>

?????? </class>

<!—指定繪制的幾何體類型,點、線、面-->

<geometry_type>line</geometry_type>

?

//ArcGIS驅動器,是從ESRI的服務器讀取影像數據

?

//復合驅動器,可以將多個影像數據源(可以使用各自不同的驅動器)復合成一個邏輯圖層,其實是一個偽裝的驅動器,不是真實的驅動器

<imagename="grouped layer" driver="composite">

?

??? <image name="component 1"driver="tms">

??????? ...

??? </image>

?

??? <image name="component 2"driver="wms">

??????? ...

??? </image>

?

??? ...

?

</image>

//GDAL驅動器,使用該驅動器,指定源數據url時可以指定文件也可以指定某個目錄(不必將所有的文件都打包成一個文件),如果指定了目錄,還可以指定要加載該目錄下某些類型的文件(通過指定擴展名),此外,如果指定的是目錄,系統遞歸遍歷該目錄下的所有文件將要加載的文件生成一個邏輯圖層,需要注意的是,該目錄下所有的數據必須是統一的坐標系統以及同樣的波段和波段插值;基于性能的考慮,最好對源數據預先進行分塊分級處理以及坐標重投影預處理,這樣可以大大提高系統在運行時的性能。如果系統讀取到的源數據與運行時要求的投影方式不匹配,系統就會在運行時對數據進行重投影,這樣就會降低系統性能,如果想在這種情況下提高系統性能,可以讓系統緩存重投影后的數據:

<cachereproject_before_caching="true">

???????<path>/files/my_cache_folder</path>

??? </cache>

?

<imagename="boston_inset" driver="gdal">

???????<url>../data/boston-inset.tif</url>

??????? <tile_size>256</tile_size>

??? </image>

?

//通過指定目錄的方式加載高程數據示例:

<heightfieldname="terrain" driver = "gdal">

?

????? <!--To load the files in a directory,just point the URL to a directory instead of a file-->

????? <url>..\data\terrain</url>

????

????? <!--Tell the GDAL driver to just lookfor tifs.? Other files types will beignored.-->

? ????<extensions>tif</extensions>?

?

????? <!—對于高程數據,最好將tile_size設置為32或者64,默認情況下tile_size的值是256-->

????? <tile_size>32</tile_size>

?

??? </heightfield>

?

<!—指定數據分層的最大層數,如果不指定,系統將自動計算最大層數,這種方式特別適用于緩存自動計算的瓦片數據時-->

<max_data_level>10</max_data_level>

?

//osg驅動器,直接通過osg的文件讀寫插件讀取相應類型的影響數據或高程數據

?

//tilecache驅動器,讀取tilecache磁盤緩存數據,通過tilecache工具可以從WMS服務器創建或緩存地圖數據到磁盤,然后通過該驅動器進行離線讀取。

<imagename="world" driver="tilecache">

???<url>F:/data/tilecache/mapdata</url>

??? <layer>world</layer>

??? <format>jpeg</format>

? </image>

?

//tileservice驅動器,從NASA服務器讀取數據

?

//tms驅動器,通過tms服務的方式讀取數據

?

//wms驅動器,通過wms服務的方式讀取數據

?

//VPB驅動器,從vpb生成的地形數據庫讀取相應的影像和高程數據,注意,osgEarth只能讀取適用VPB使用—terrain選項創建的地形數據庫。這樣一來我們就可以同時使用vpb的地形數據庫以及原始的影像、高程數據,可以在不改變現有vpb地形數據的基礎上在已有的vpb地形上疊加另外的影像數據。

<!—指定在用vpb生成地形數據庫時(--splits選項)使用的主分割層-->

<primary_split_level>5</primary_split_level>

?

<!—指定在用vpb生成地形數據庫時使用的次分割層-->

<secondary_split_level>11</secondary_split_level>

?

<!—指定vpb地形數據使用的profile-->

<profile>global-geodetic</profile>

?

<!—指定vpb地形數據庫使用的目錄結構,分為nested,task, 以及 flat三種類型. 默認是 flat類型 -->

?

<!—指定使用vpb中影像數據層layer,默認是第0層-->

<layer>0</layer>

?

//模型驅動器

//feature_geom驅動器,該驅動器就是將矢量數據創建成幾何對象進行渲染

<!—定義特征數據-->

<features></features>

<!—定義風格-->

<style></style>

<!—定義分類(為不同分類指定不同的風格)-->

<class></class>

?

<!—定義高度偏移,生成幾何體前將數據相對海平面偏移特定高度主要是為了解決z-fighting的問題-->

<height_offset>10000</height_offset>

?

<!—指定生成的最大三角形的大小(三角形邊的最大長度,單位是度,僅用于地心坐標地形上),通過控制三角形大小能夠很好的將非凸多邊形構成的三角形映射成橢球體,默認值是5.0-->

?

//feature_overlay驅動器,該驅動器采用osgSim::OverlayNode將矢量數據作為投影紋理覆蓋到地形上。這種覆蓋節點的方式對于平面投影坐標模式是很適合的,但對于球體地心坐標來說有一定限制,通過覆蓋節點的方式將矢量數據投影成紋理只能覆蓋不到一半地球大小,而且在背面會顯示穿透效果。

<features></features>

<!—定義風格-->

<style></style>

<!—定義分類(為不同分類指定不同的風格)-->

<class></class>

?

<!—指定紋理單元,默認是auto-->

<texture_unit>1</texture_unit>

?

<!—指定覆蓋紋理的大小,默認是1024-->

<texture_size>2048</texture_size>

?

<!—指定覆蓋節點的基準高度,默認是0-->

<base_height>100</base_height>

?

//feature_stencil驅動器,該驅動器采用模板緩沖技術將矢量數據覆蓋到地形上

<features></features>

<!—定義風格-->

<style></style>

<!—定義分類(為不同分類指定不同的風格)-->

<class></class>

?

<!—指定擠壓距離,即在模板體的各個方向對其進行擠壓,這是為了防止對于那些覆蓋范圍比較大的幾何體容易造成z-fighting問題而做的處理,如果存在單個特征數據幾何體覆蓋的區域范圍特別大,就要增加該值,默認值是300000-->

<extrusion_distance>400000</extrusion_distance>

?

<!—定義高程數據,高程數據的定義屬性以及子要素基本與影像數據相同,特別需要注意的是,在定義瓦片大小時,默認值是256,這個值對于影像數據是合適的,但對于高程數據來說太大,應該將其設為比較小的值,比如32,否則會降低系統性能-->

<elevationname="srtm" driver="wms">

?? <url>http://localhost/cgi-bin/mapserv.exe?map=srtm30_plus.map</url>

<layers>srtm30plus</layers>

<format>tiff</format>

<tile_size>32</tile_size>

</elevation>

?

<!—定義模型數據,屬性包括名稱、驅動器driver、最小可視范圍值min_range(層次節點LOD范圍)、最大可視范圍值max_range、是否以覆蓋方式覆蓋到地形上overlay,對于指定的可視范圍值,如果指定了gridding,該范圍將作用于被分割的一個個的網格而不是模型幾何體本身-->

<modelname="roads" driver="feature_stencil">

<featuresname="roads" driver="ogr">

<url>../data/roads-utm.shp</url>

</features>

?

<!—指定網格劃分,模型數據源允許我們將非地形數據圖層添加到地形地形圖上,某些驅動器可以將矢量數據或者特征數據轉換為幾何體或者覆蓋層,對于海量特征數據或者覆蓋區域范圍特別大的數據如果不對其進行優化處理,將嚴重影響系統性能,其中方式之一就是對其進行網格劃分,對于不同的驅動器,網格劃分實現的方式也不一樣,自帶的模型特征數據驅動器,比如feature_stencil和feature_geom驅動器就可以將幾何體數據劃分為一個個的小網格-->

<!—指定一個單元格的最大值cell_size,包括寬和高;指定裁切技術,即如何決定某些數據屬于哪個單元格,共有兩種方式:crop切割方式以及centroid形心方式,crop切割方式是將幾何體根據格網進行切割,不同的部分分別屬于不同的網格即可,centroid形心方式是判斷幾何體的形心,形心落在哪個網格,就認為該幾何體屬于哪個網格-->

<griddingcell_size="1000" culling_technique="crop"/>

<styletype="text/css">

roads {

??????? stroke: #ffff00;

??????? stroke-width: 10;

???? }

</style>

?

<!—指定幾何體類型-->

<geometry_type>line</geometry_type>

</model>

?

<!—指定overlay覆蓋數據層,該層就是model的一個別名,等同于將model的overlay屬性設為true-->

?

?

<!—指定地形數據的邊緣標準化,指定該屬性是為了讓不同高程的瓦片數據之間的高程能夠準確的融合,默認是啟用的-->

<normalize_edges>true</normalize_edges>

?

<!—指定代理服務器地址和端口,如果想讓osgEarth通過代理服務器訪問某數據服務器,可以設定相應的代理服務器地址以及端口-->

<proxy_host>80.80.12.123</proxy_host>

<proxy_port>80</proxy_port>

?

</map>

?

Earth文件的完整示例見earthFile-template.earth文件

15.??????? 注意,earth文件名不能有”-”橫線

?

?

?

?

OSGearth,貼近球面時鼠標無法準確的控制視點位置 (2010-11-09 21:58:15)轉載 分類: OSG?

http://bbs.osgchina.org/viewthread.php?tid=2793&highlight=�?�+��

?

osg::ArgumentParserarguments(&argc,argv);

osgViewer::Viewerviewer(arguments);

viewer.setUpViewOnSingleScreen(0);?????

viewer.setCameraManipulator(newosgGA::TrackballManipulator());

std::stringmodelPath =

? "F:\\google.earth";

?

{

? osg::ref_ptr<osg::Node> node =osgDB::readNodeFile(modelPath);

? viewer.setSceneData(node.get());

}

?

//render a frame

viewer.realize();

while(!viewer.done())

{

? viewer.frame();

}

?

使用的googleearth的圖層信息,拉近了發現鼠標操作的高度似乎要低于實際圖層所高度,低視角轉動地球時無法準確控制找到自己所需的位置。

哪位大俠幫忙告訴一下,在哪里設置鼠標控制點跟球面視角高度保持一致啊?

?

?

?

Trackball不太適合用來瀏覽地球,可以考慮用TerrainManipulator或者osgEarth自帶的EarthManipulator

?

?

?

用EarthManipulator解決了鼠標和滾輪的問題!

是這樣解決的:

??????? std::string modelPath =

???????? "F:\\word_wind.earth";

??????? {

???????? // create an osgEarth node. Add it tothe scene graph and let the ref pointer go out of scope.

???????? osg::ref_ptr<osg::Node> node =osgDB::readNodeFile(modelPath);

???????? viewer.setSceneData(node.get());

??????? }

?

???manip->getSettings()->bindMouseDoubleClick(

??????? osgEarthUtil::EarthManipulator::ACTION_GOTO,

??????? osgGA::GUIEventAdapter:EFT_MOUSE_BUTTON);

?

??? // add our fly-to handler

??? viewer.addEventHandler(newFlyToViewpointHandler( manip ));

?

??? // add some stock OSG handlers:

??? viewer.addEventHandler(newosgViewer::StatsHandler());

??? viewer.addEventHandler(newosgViewer::WindowSizeHandler());

??? viewer.addEventHandler(newosgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()));

?

原文鏈接:OSGEARTH三維地形開源項目

一休大師的CSDN博客:OSGEARTH三維地形開源項目

總結

以上是生活随笔為你收集整理的OSGEARTH三维地形开源项目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91看片黄色| 91九色在线观看视频 | 亚洲精品91天天久久人人 | 国产高清在线不卡 | 欧洲精品码一区二区三区免费看 | 国产无遮挡猛进猛出免费软件 | www.69xx| 午夜在线看 | 欧美激情片在线观看 | a成人v在线| 99久精品视频 | 国产中文字幕av | 国产又黄又爽无遮挡 | 国产va在线观看免费 | 亚洲成人蜜桃 | 欧美在线一二 | 在线观看国产福利片 | 91日韩在线视频 | 国产高清中文字幕 | 日本一区二区三区免费观看 | 成人欧美日韩国产 | av在线小说 | 亚洲成aⅴ人在线观看 | 国精产品永久999 | 久久免费看a级毛毛片 | 色偷偷网站视频 | 国产综合精品久久 | 99久高清在线观看视频99精品热在线观看视频 | 成人黄色影片在线 | 亚洲人片在线观看 | 中文字幕免费高清 | 亚洲欧洲中文日韩久久av乱码 | 97精品超碰一区二区三区 | 国产专区视频在线观看 | 91亚洲网站| 国产成人亚洲精品自产在线 | 亚洲激情在线视频 | 视频国产一区二区三区 | 91亚色视频在线观看 | 亚洲免费永久精品国产 | 国产精品福利久久久 | 在线观看成人毛片 | av品善网 | 在线 影视 一区 | 国产一区二区播放 | 天天操天天是 | 久久免费成人 | 日韩特级片 | 激情网色 | 欧美婷婷综合 | 人人草人 | 欧美精彩视频在线观看 | 超碰午夜 | 久久精品国产免费 | 91成人区 | 欧美精品久久久久 | 91在线免费视频观看 | 91精品久| .精品久久久麻豆国产精品 亚洲va欧美 | 久久免费视频5 | 视频一区二区视频 | 成人免费在线观看电影 | 在线色亚洲 | 最新极品jizzhd欧美 | 美女网站视频免费都是黄 | 黄色成人av网址 | 国产一级片免费播放 | 国产美女精彩久久 | 天天操人人干 | 九草视频在线观看 | 西西4444www大胆视频 | 五月婷婷六月丁香 | 久草视频在线观 | 国产精品久久久久免费 | 九草视频在线观看 | 国产午夜精品久久久久久久久久 | 精品 一区 在线 | 91亚色免费视频 | 日韩高清黄色 | 久久黄色精品视频 | 99精品久久久久久久久久综合 | 久久女同性恋中文字幕 | 亚洲精品大片www | 日本精品视频在线观看 | 久久男女视频 | 国产在线a | 狠狠狠狠狠狠操 | 丁香花在线视频观看免费 | 欧美久久久久久久久中文字幕 | 国产精品观看在线亚洲人成网 | a天堂免费 | 在线a人片免费观看视频 | 久久视频国产精品免费视频在线 | 天堂黄色片 | 日本资源中文字幕在线 | 人人爽人人爽人人爽学生一级 | 狠狠干网 | 亚在线播放中文视频 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 四虎影视久久久 | 日本久久久久久久久 | 精品久久免费看 | 中文字幕在线观看播放 | 久久免费99精品久久久久久 | 久久成人综合 | 国产免费观看视频 | 丁香婷婷成人 | 很黄很黄的网站免费的 | 91丨九色丨91啦蝌蚪老版 | 中文在线√天堂 | 婷婷黄色片 | 99久久久久久久 | 天天操天天干天天综合网 | 精品国偷自产国产一区 | 精品国产乱子伦一区二区 | 黄网站免费大全入口 | 久久精品99国产精品酒店日本 | 久久99视频免费 | 美女网站在线播放 | 国产免费精彩视频 | 欧美日韩国产一二三区 | av免费播放 | 亚洲欧美乱综合图片区小说区 | 正在播放国产一区二区 | 久草资源在线观看 | 成在线播放| 国产精品视频免费观看 | 亚洲区另类春色综合小说 | 97精品国产97久久久久久免费 | www.狠狠 | 999成人| 激情五月婷婷综合 | 精品视频在线观看 | 狠狠狠色丁香综合久久天下网 | 国产精品国产三级国产专区53 | 日本中文字幕在线免费观看 | 中文在线中文资源 | 69av在线视频 | 免费看一级特黄a大片 | 亚洲激精日韩激精欧美精品 | 国产在线免费观看 | 欧美激情综合色综合啪啪五月 | 欧美最猛性xxxxx亚洲精品 | 久久久久综合网 | 国产精品婷婷 | 欧美看片 | 午夜精品一区二区三区免费 | 成人在线视频在线观看 | 久草视频在线资源站 | 久久久黄视频 | 黄色1级毛片 | 在线观看www视频 | 日韩精品你懂的 | 国产传媒一区在线 | 在线成人免费电影 | 日韩视频免费看 | 精品国产一区二区三区久久久 | 国产高清av免费在线观看 | 日日干日日操 | 亚洲精品毛片一级91精品 | 久久久久久中文字幕 | 四虎影视国产精品免费久久 | 免费看三片 | 中文日韩在线视频 | 国产成人在线看 | 国产视频在线一区二区 | 久草精品在线播放 | 日批视频国产 | 日韩福利在线观看 | 综合色在线 | 久久精品视频4 | 91理论电影| 成人精品久久 | 二区三区在线 | 二区三区在线视频 | 久色网 | 天天操天天草 | 一本到视频在线观看 | 成年人免费看片网站 | 不卡电影一区二区三区 | 91精品久久久久久久久 | av黄色成人 | 久久99久久精品国产 | 午夜视频一区二区 | 日b视频国产 | 99精品电影 | 成人av在线一区二区 | 麻豆国产网站 | 国产精品美女久久久久久2018 | 在线播放 日韩专区 | 午夜国产成人 | 精品欧美在线视频 | 色美女在线 | 一区二区视频电影在线观看 | 日日干综合 | av免费成人 | 国产a级片免费观看 | 91黄色视屏| 麻豆成人精品视频 | 国产亚洲精品久久久久动 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久久久久久久久久久电影 | 人人爽人人爽av | 少妇18xxxx性xxxx片 | 果冻av在线 | 2023天天干| 激情 亚洲 | 黄色的网站免费看 | 婷婷六月在线 | 日三级在线| 18网站在线观看 | 亚洲日本一区二区在线 | 丁香五婷 | 欧美日韩视频一区二区三区 | 97电影院在线观看 | 一区二区视频免费在线观看 | 亚洲国产中文字幕在线观看 | 麻豆 91 在线| 天天干天天搞天天射 | 国产亚洲精品久久久久久移动网络 | 欧美日韩国产精品爽爽 | 丁香花在线观看免费完整版视频 | 日韩精品一区二区三区三炮视频 | 久久精品一区 | 国产精品成人一区 | 国产一区在线视频观看 | 天天综合网 天天 | 成人中文字幕在线 | 中文字幕在线观看网 | 97视频人人免费看 | 免费视频一区 | 久久大片| 国产精品成人免费一区久久羞羞 | 日韩网 | 日韩欧美在线综合网 | 97国产小视频 | 福利一区视频 | 免费视频久久久 | 国内精品久久久久久久久久 | 久久久久婷 | 高清视频一区 | 亚洲精品免费播放 | 五月天中文在线 | av资源网在线播放 | 国产精品美女久久久 | 人人要人人澡人人爽人人dvd | 欧美日韩精品影院 | 天堂成人在线 | 91亚洲视频在线观看 | 天天夜夜操 | 91女人18片女毛片60分钟 | 免费一级特黄录像 | 国产91精品一区二区麻豆亚洲 | 久久久久久久久久影院 | 操老逼免费视频 | 国产福利资源 | 激情综合一区 | 久久婷综合 | 麻豆精品传媒视频 | 99视频免费观看 | 一区二区亚洲精品 | 色婷婷av国产精品 | 亚洲精品在线视频 | 久草在线最新免费 | 99视| 欧洲激情在线 | 久久精品aaa | a√天堂中文在线 | 久久天堂精品视频 | 亚洲综合视频在线播放 | 亚洲人av免费网站 | 人人干在线观看 | 西西444www大胆无视频 | 亚洲欧美视频一区二区三区 | 亚洲精品综合在线观看 | 韩国av一区二区三区 | 国产亚洲aⅴaaaaaa毛片 | 男女男视频 | 色视频在线观看免费 | 国产又黄又硬又爽 | 久久精品中文字幕免费mv | 99在线高清视频在线播放 | 国产日本在线 | 国产一级视频在线免费观看 | 四虎5151久久欧美毛片 | 亚洲黄色免费 | 夜添久久精品亚洲国产精品 | 久久免费视频播放 | 91精品国产麻豆国产自产影视 | 欧美久久久久久久久久久久 | 亚洲综合丁香 | 亚洲精品久久视频 | 日韩爱爱网站 | 天海翼一区二区三区免费 | 亚洲一区日韩 | 久久免费视频3 | 精品国产综合区久久久久久 | 色亚洲激情 | 日韩毛片在线播放 | 国内少妇自拍视频一区 | 中文字幕第 | 欧美久久久 | 久久久久久精 | av福利第一导航 | 成人免费在线视频 | 久久久久久国产精品亚洲78 | 国产在线 一区二区三区 | 欧美 国产 视频 | 韩国一区二区在线观看 | 国产成人区| 日韩av成人在线观看 | 91片黄在线观看动漫 | 欧美另类调教 | 日韩中文字幕第一页 | 国产一区二区三区高清播放 | av高清一区二区三区 | 天天色欧美 | 欧美一区二区三区在线播放 | 欧洲高潮三级做爰 | 99热国产在线中文 | 99久久电影 | 欧美激情第一区 | 天躁狠狠躁| 午夜久久视频 | 久久天天躁狠狠躁亚洲综合公司 | 日本激情视频中文字幕 | 精品自拍sae8—视频 | 婷婷激情5月天 | 日日爱av| 午夜久久视频 | 欧美日韩亚洲在线观看 | www在线观看国产 | 成人av影视| 在线国产中文字幕 | av中文字幕在线播放 | 日韩激情免费视频 | 人人插超碰 | 99热这里是精品 | 91在线视频在线观看 | 久久午夜电影院 | 成人三级网址 | 久久永久免费 | 久久精品视频在线看 | 亚洲高清不卡av | 欧美在线18| 99久久精品午夜一区二区小说 | 国产丝袜高跟 | 公开超碰在线 | 亚洲精品mv在线观看 | 午夜av免费在线观看 | 久久久久亚洲精品 | 99免费在线观看 | 中文字幕免费看 | 粉嫩av一区二区三区四区五区 | 337p日本欧洲亚洲大胆裸体艺术 | 国产色婷婷精品综合在线手机播放 | 久久欧美在线电影 | 91精品爽啪蜜夜国产在线播放 | 亚洲午夜精品久久久久久久久久久久 | 亚洲精品乱码久久久久 | 伊人婷婷色 | 一本到视频在线观看 | 亚洲综合激情五月 | 在线成人免费电影 | 亚洲精品国产精品国产 | 91av在线播放| 中文字幕在线视频国产 | a精品视频| 在线视频 亚洲 | 国产精品美乳一区二区免费 | 在线日韩av | 欧美激情精品久久久久久免费印度 | 国产免费专区 | 午夜久久影视 | 91免费版在线观看 | 免费久久精品视频 | 五月婷婷综合在线观看 | 国产高清视频网 | 日韩在线高清视频 | 免费av免费观看 | 国产护士av| 在线免费观看成人 | 婷婷丁香在线视频 | 欧美91视频 | 国产探花 | 成人夜晚看av| 激情在线网站 | 久久婷婷色 | 成人蜜桃视频 | 国产视频精品免费播放 | 亚洲影视九九影院在线观看 | 91污在线| 综合网天天色 | 成人免费在线网 | 色资源在线 | 午夜精品电影一区二区在线 | 久久久亚洲电影 | 国产在线观看免费 | 国产高清视频在线观看 | 亚洲精品国产成人 | 中文字幕高清免费日韩视频在线 | 欧美与欧洲交xxxx免费观看 | 日韩动漫免费观看高清完整版在线观看 | 在线观看国产麻豆 | 丁香婷婷电影 | 在线观看岛国 | 免费高清在线观看成人 | 国产精品嫩草影院99网站 | 天海翼一区二区三区免费 | 国产成人精品一区二区 | 久精品在线 | 中文字幕免费观看全部电影 | 亚洲精品视频免费观看 | 久久国产精品久久国产精品 | 久久免费视频在线 | 最近中文字幕大全中文字幕免费 | 91香蕉国产在线观看软件 | 婷婷看片| 国产在线精品区 | 亚洲影视资源 | 九九九九九九精品 | 久久国产精品免费看 | 亚洲九九九在线观看 | 91人人射| 国产精品免费看久久久8精臀av | 国产精品女人久久久 | 久久久久激情视频 | 91大神精品视频在线观看 | 99精彩视频 | 亚洲综合欧美精品电影 | av黄色影院 | 久久久精品 一区二区三区 国产99视频在线观看 | 久久视频这里只有精品 | 国产精品2018 | 婷婷日韩 | 激情综合电影网 | 美女视频一区二区 | www.久久久.com | 激情综合五月天 | 在线观看网站黄 | 青青草国产精品 | 国产精品久久久久久久久久尿 | 亚洲码国产日韩欧美高潮在线播放 | 日韩国产高清在线 | 天天干夜夜 | 国产欧美综合在线观看 | av在线免费播放 | 亚洲精品在线一区二区三区 | 91片黄在线观看 | 欧美精品久久久久久久免费 | 五月天综合激情 | 成人丁香花 | 婷婷综合影院 | 久久国内免费视频 | 国产护士hd高朝护士1 | www.夜夜操.com| 9999亚洲 | 日韩一区二区三区免费视频 | 欧美在线观看视频一区二区三区 | 欧美另类激情 | 日日日视频 | 久久久久久久久久国产精品 | 色偷偷男人的天堂av | 亚洲免费av电影 | 激情av综合| 精品国产一区二区三区免费 | 久久精品香蕉 | 久久成人精品电影 | 九九视频这里只有精品 | 精品麻豆| se婷婷| 99久久精品国产一区二区三区 | 久久天堂网站 | 精品99久久久久久 | 日韩精品视频网站 | 精品在线免费视频 | 精品视频999 | 欧美日韩亚洲在线观看 | 狠狠撸电影 | 五月婷婷在线综合 | 免费观看福利视频 | 久久夜色精品国产欧美一区麻豆 | 亚洲成人精品av | 超碰在线色 | 久久视频这里有久久精品视频11 | 亚洲综合成人婷婷小说 | 国产永久免费 | 婷婷视频 | 国产一级二级在线观看 | 91看片一区二区三区 | 中文字幕在线视频一区二区 | 日韩在线观看精品 | av手机版| 亚洲精品在线免费观看视频 | 激情影音 | 日批网站免费观看 | 婷婷激情久久 | 成人在线黄色电影 | 综合网中文字幕 | 国产精在线 | 综合av在线 | 欧美坐爱视频 | 91精品视频免费看 | 亚洲国产视频直播 | 91丨九色丨首页 | 国产美女精品在线 | 亚洲在线色 | 国产精品theporn | 一区二区三区四区五区在线 | 日韩色av色资源 | 色播六月天 | 天天干天天射天天插 | 99操视频 | www色综合 | 97超碰国产精品女人人人爽 | 成人久久电影 | 在线观看一级视频 | 天天射天天拍 | 黄网站免费大全入口 | 中文字幕五区 | 亚洲国产精久久久久久久 | av黄色免费网站 | 国产又粗又猛又色 | 日韩在线视频网 | 美女免费视频黄 | 少妇bbw揉bbb欧美 | 久草在线电影网 | 亚洲综合射| 黄色网免费 | 偷拍精品一区二区三区 | av综合在线观看 | 日韩免费电影一区二区 | 日韩av在线看 | 五月婷婷电影网 | av中文字幕在线看 | 中国成人一区 | 久久久午夜电影 | 欧美久久99 | 超碰999 | 国产午夜精品av一区二区 | 久久任你操 | a在线观看国产 | 97福利社| 精品久久久久久国产91 | 五月天综合激情 | 精品久久电影 | 免费观看一级特黄欧美大片 | 操高跟美女 | 成人免费视频视频在线观看 免费 | 日韩欧美亚洲 | 中文字幕黄色av | 又爽又黄又刺激的视频 | 国产成人精品一区二区三区福利 | 日韩精品在线视频免费观看 | 亚洲精品视频 | 日本三级国产 | 亚洲国产一区在线观看 | 亚洲区另类春色综合小说校园片 | 色综合久久综合网 | 免费网站看av片 | 国产一区在线免费观看 | 精品国产免费一区二区三区五区 | 久久综合狠狠综合久久综合88 | 超碰97人人干 | 国产免费嫩草影院 | 西西44人体做爰大胆视频 | 欧美日韩高清免费 | 天天干天天干天天色 | 国产91精品一区二区绿帽 | 在线观看不卡的av | 久草视频在线看 | 亚洲永久字幕 | 国产一区在线精品 | 天堂av在线| 黄色福利| 97av在线视频免费播放 | 午夜成人免费电影 | 日日干日日 | 欧美日韩视频在线观看免费 | 黄色影院在线免费观看 | 91精品视频在线观看免费 | 91中文视频 | 欧美亚洲一区二区在线 | 丁香六月激情婷婷 | 97免费在线观看视频 | 婷婷在线资源 | 又黄又网站 | 国产99在线播放 | av一级二级 | 91人人视频在线观看 | 国产成人一区二区三区在线观看 | 亚洲色图22p | 一区二区视频免费在线观看 | 在线观看亚洲视频 | 国产日韩av在线 | 久久99久久精品国产 | 二区在线播放 | 中文av资源站 | 久久久国产精品成人免费 | 天天插伊人 | 久久99亚洲热视 | 国产精品一区免费观看 | 一级黄色片在线免费观看 | 毛片3| 午夜精品视频在线 | 国产精品 中文字幕 亚洲 欧美 | 中文字幕在线观看免费高清完整版 | 国产精品一级在线 | 日韩在线视频在线观看 | 国产剧情在线一区 | 亚洲作爱 | 国产欧美高清 | 麻豆视频免费版 | 久久久久久久久久亚洲精品 | 久久视频这里有久久精品视频11 | 91精品在线看 | 黄色成人av| 欧美a级成人淫片免费看 | 在线观看午夜 | 日韩精品在线观看视频 | av官网| 一区二区中文字幕在线 | 久久精品中文字幕少妇 | 91视频在线免费下载 | 成人网在线免费视频 | 日韩毛片精品 | 国产精品av在线 | 天天插天天狠天天透 | 日韩一区二区三区高清免费看看 | 国产精品丝袜久久久久久久不卡 | 99久久精品免费一区 | 五月天激情综合 | 成人久久18免费网站 | 日韩色综合网 | 成人精品国产免费网站 | 免费亚洲视频 | 日韩专区av | 国产99久久久国产精品成人免费 | 亚洲涩涩网 | 丁香五婷 | 人人精品久久 | 久久综合久久鬼 | 免费亚洲一区二区 | 91原创在线观看 | 99精品视频免费看 | 久久伊人五月天 | 成人网444ppp | 久久久久女教师免费一区 | 久久成人午夜 | 国产亚洲精品久久久久久移动网络 | 在线免费观看视频你懂的 | 久久国产成人午夜av影院宅 | 日韩羞羞 | 精品久久久久久久久久久久 | 2019国产精品 | av黄色成人 | 人人爽人人射 | 99久久精品视频免费 | 日韩免费播放 | 亚洲成人免费 | 国产精品久久久久久久久久久免费看 | 蜜臀一区二区三区精品免费视频 | 久久久伊人网 | 成人一区二区在线观看 | av在线播放免费 | 高清av在线| 中文字幕韩在线第一页 | 国产精品久久久久高潮 | 国产精品成人在线 | 国产在线国偷精品产拍免费yy | 日韩久久精品一区二区 | 亚洲综合色婷婷 | 久草电影在线 | 在线观看视频国产 | 伊人影院在线观看 | 五月花丁香婷婷 | 91 在线视频 | 久久久久综合网 | 日韩精品一区二区三区高清免费 | 99免在线观看免费视频高清 | 国产一区二区免费看 | 欧美一级电影 | 国产精彩视频一区二区 | 草莓视频在线观看免费观看 | 日韩精品一区电影 | 久久香蕉国产精品麻豆粉嫩av | 国产精品久久久久久久午夜片 | 欧美韩日精品 | 天天操·夜夜操 | 亚洲欧美在线视频免费 | 99r在线播放 | 国产成人精品一区二区三区福利 | 国产日韩精品久久 | 六月丁香综合网 | 看黄色91 | 久操中文字幕在线观看 | 久草影视在线观看 | 日韩免费不卡视频 | 天天干天天拍天天操天天拍 | 国产高清在线看 | 久久久黄视频 | 久久久私人影院 | 97视频精品| 久久久天堂| 久久高清免费视频 | 在线观看av黄色 | 国产亚洲欧美日韩高清 | 特级a毛片 | 日韩av电影中文字幕在线观看 | 91亚洲精品视频 | 九九热精品视频在线观看 | 日本99久久 | 九九热1| 久久久91精品国产一区二区精品 | 国产精品人人做人人爽人人添 | 天天色天天操天天爽 | 国产天天综合 | 午夜影视一区 | 久久亚洲热 | 亚洲精品xxxx | 日韩视频一区二区三区 | 国产精品视频线看 | 久久伊人热 | 久草视频免费在线播放 | 天天操天天操天天操天天操天天操 | 91中文字幕网 | 99久久er热在这里只有精品15 | 国产精品18久久久久久不卡孕妇 | 中文字幕人成乱码在线观看 | 五月花婷婷| 色综合天天射 | 日本中文字幕影院 | 久久天天躁夜夜躁狠狠85麻豆 | 午夜精品99久久免费 | 九九久久婷婷 | 天天干天天插伊人网 | 一级一级一片免费 | 一区二区三区高清不卡 | 久久久久久久久久久网 | 成人久久18免费网站麻豆 | 在线色亚洲 | 在线中文字幕播放 | 狠狠操狠狠操 | 丝袜美腿av | 免费三级骚 | 色狠狠综合天天综合综合 | 美女黄频在线观看 | 日本三级久久 | 午夜av色 | 日韩免费小视频 | www黄在线| 一区二区不卡视频在线观看 | 久久久久亚洲精品国产 | 国产精品一区二区久久 | 日韩电影一区二区在线观看 | 午夜影院三级 | 国产日韩中文字幕在线 | 美女黄网久久 | 日韩中字在线观看 | 999电影免费在线观看 | 亚洲午夜精品一区 | 免费看的国产视频网站 | 日韩在线观看你懂得 | 四虎影视国产精品免费久久 | 亚洲情感电影大片 | 日韩乱色精品一区二区 | 成人aⅴ视频 | 国产日韩欧美在线免费观看 | 天天色官网 | 91精品久久久久久 | 国产91对白在线播 | av在线播放亚洲 | 日本最新中文字幕 | 欧美一级电影片 | 久久99精品久久久久久久久久久久 | 黄色成人在线 | 久久精品在线免费观看 | 碰超在线观看 | 中文不卡视频在线 | 欧美精品在线一区二区 | 日韩中文幕 | 国产亚洲精品久久19p | av一级二级 | 午夜精品成人一区二区三区 | 日本在线观看中文字幕无线观看 | 国产日韩欧美视频 | 亚洲视频中文 | 国产亚洲永久域名 | 97精产国品一二三产区在线 | 中文字幕有码在线播放 | av一级在线观看 | 国产精品黄色影片导航在线观看 | 日韩av午夜 | 免费av在线播放 | 91精品秘密在线观看 | 91九色丨porny丨丰满6 | 精品久久免费 | 亚洲电影久久久 | 国产高清视频网 | 99精品久久精品一区二区 | 日本一区二区不卡高清 | 国产一级免费观看视频 | www.亚洲激情.com| 成人啪啪18免费游戏链接 | 天天射天天干天天操 | 国产91免费在线观看 | 日韩精品在线观看视频 | 国产一区二区三区免费观看视频 | 久久婷婷色 | 一区二区三区在线观看免费 | 成人三级网址 | 国产区久久 | 国产亚洲情侣一区二区无 | 国产精品二区在线 | 亚洲第一区在线观看 | 在线观看视频一区二区三区 | 九九精品在线观看 | 亚洲黄色小说网址 | 亚洲区另类春色综合小说 | 国产黄色电影 | 日韩中文字幕在线看 | 2024国产精品视频 | 狠狠狠色丁香综合久久天下网 | 久久久久女人精品毛片九一 | 久久久精品欧美一区二区免费 | av丝袜在线 | 国产成本人视频在线观看 | 成人全视频免费观看在线看 | 国产精品久久一卡二卡 | 九九热在线精品 | 国产综合视频在线观看 | 成年人视频在线免费 | 亚洲美女免费精品视频在线观看 | 在线黄av | 亚洲伦理电影在线 | 日韩欧美电影在线 | 久久久黄色av | 永久免费精品视频网站 | 欧美在线一 | 亚洲最新av在线网址 | 91亚洲国产成人 | 狠狠干干 | 成x99人av在线www | 久久久久久久免费观看 | 一区二区视频在线看 | 成人在线免费观看网站 | 成人av电影在线播放 | 亚洲va欧美va人人爽 | 人人爽人人插 | 色99之美女主播在线视频 | 国产精品va在线 | 日韩xxxxxxxxx | a久久久久 | 国产精品 亚洲精品 | 日韩在线免费视频观看 | 91av综合 | 欧美日韩国产二区三区 | 免费三级在线 | 91成人精品国产刺激国语对白 | 中文一区在线 | 999久久久 | 久久伦理 | 综合久久网站 | 国产高清不卡在线 | 久久99国产精品久久99 | 日韩v欧美v日本v亚洲v国产v | 天天射天天干 | 丁香激情五月婷婷 | 日韩欧美综合视频 | 欧美日韩精品综合 | 97超级碰碰碰视频在线观看 | 成人久久免费 | 能在线看的av | 91在线中字| 欧美性大战 | 日韩国产高清在线 | 日本在线视频一区二区三区 | 天天操天操 | 2018亚洲男人天堂 | av电影在线免费观看 | 久草在线久草在线2 | 亚洲免费av网站 | 在线观看免费日韩 | 婷婷色中文 | 福利区在线观看 | 99精品热视频 | av看片在线 | 亚洲一区视频免费观看 | 国产人成精品一区二区三 | 在线va网站 | 亚洲黄色app | 天天色天天色天天色 | 国产粉嫩在线 | 欧美日韩不卡一区二区三区 | 国产免费又粗又猛又爽 | 深爱激情婷婷网 | 五月婷婷在线观看视频 | 天天做综合网 | 五月天堂色 | 久草91视频 | 国产这里只有精品 | 在线一区二区三区 | 激情五月亚洲 | 欧美日韩精品在线一区二区 | 国产品久精国精产拍 | 在线观看视频免费大全 | 在线播放视频一区 | 在线中文字幕观看 | 日日操天天射 | 免费福利在线视频 | 亚洲一级理论片 | 国产精品ssss在线亚洲 | 亚洲综合婷婷 | 天天狠狠干 | 欧美午夜理伦三级在线观看 | 欧美日韩精品免费观看 | 久久成人一区二区 | 激情综合网天天干 | 久久人人97超碰com | 中文字幕高清视频 | 在线观看视频亚洲 | 国产精品免费在线视频 | 国产精品久久久电影 | 欧美成人影音 | 成人动漫精品一区二区 | 91精品久久香蕉国产线看观看 | 天天操天天操 | 97超级碰碰碰碰久久久久 | 国产人成在线观看 | 亚洲第一色 | 精品欧美一区二区在线观看 | 一区二区三区福利 | 久久精品—区二区三区 | 中文字幕亚洲精品日韩 | 丁香婷婷基地 | 国产在线观看免费观看 | 久久免费播放 | 久久久久久久久久影视 | 久久草在线免费 | 一级片观看 | 蜜臀精品久久久久久蜜臀 | 亚洲jizzjizz日本少妇 | 亚洲精品影视 | 日日爽夜夜操 | 国产99久久久久 | 99国内精品久久久久久久 | 亚洲精品在线网站 | 免费三级在线 | www.888av| 99色| 久久精品人人做人人综合老师 | 久久精品视频在线看 | 深夜免费福利 | 国产 日韩 欧美 中文 在线播放 | 女人18毛片a级毛片一区二区 | 激情文学综合丁香 | 欧美精品中文 | 久久精品三 | 91在线观看视频网站 | 99久久日韩精品免费热麻豆美女 | 黄色一级性片 | 亚洲精品视频在线观看免费 | 麻豆精品传媒视频 | 99视频久久 | 久久精品xxx| 狠狠激情中文字幕 | 中文字幕在线影院 | 五月婷婷中文 | 久久亚洲国产精品 | 国产无限资源在线观看 | 亚洲欧洲中文日韩久久av乱码 | www.五月天激情 | 国产精品一区二区三区观看 | 日韩av一区二区三区 | 黄色软件在线观看免费 | 国产黄色精品在线观看 | 久草在线观看视频免费 | 免费国产在线精品 | 欧美a级在线播放 | 国产精品一区二区电影 | 成年人在线电影 | 国产一二三四在线视频 | 日韩一区二区三区视频在线 | 中文在线www | 精品欧美一区二区精品久久 | 亚洲最大成人网4388xx | 亚洲精品乱码久久 | 天堂av在线免费观看 | 亚洲影音先锋 | 日本精品一区二区三区在线播放视频 | 成人97视频 | 色视频网站在线 | 午夜影院先| 午夜 在线 | 久草国产在线观看 | 91久久爱热色涩涩 | 色视频在线 | 国产一区二区三区在线 |