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

Arcgis中基于Python的地理數(shù)據(jù)庫批量合并方法研究

2018-08-13 11:24:42劉翔宇朱大明
軟件 2018年7期
關(guān)鍵詞:數(shù)據(jù)處理數(shù)據(jù)庫方法

劉翔宇,朱大明

?

Arcgis中基于Python的地理數(shù)據(jù)庫批量合并方法研究

劉翔宇,朱大明

(昆明理工大學 國土資源工程學院,云南 昆明 650093)

為了實現(xiàn)Arcgis不同地理數(shù)據(jù)庫中大量相同圖層批量合并的操作。本文基于云南省地質(zhì)環(huán)境信息化建設項目,在對比分析Arcgis二次開發(fā)方法的基礎(chǔ)上,提出了一種新的面向ArcGis10.5的Python編程腳本。本文對Python地理空間分析原理、Python腳本功能以及實驗數(shù)據(jù)處理流程等作了詳細敘述。實驗結(jié)果證明了該腳本的可行性。得出結(jié)論:本文中基于ArcPy人工開發(fā)出的腳本,相比手動操作效率大大提高,不易出錯,實現(xiàn)了地理數(shù)據(jù)庫中指定同名圖層的批量合并。

Arcgis;地理數(shù)據(jù)庫處理;python;腳本編輯;合并

0 引言

ArcGIS是由美國ESRI公司研發(fā)生產(chǎn)的一款地理信息系統(tǒng)(GIS)軟件,其可以用與地理數(shù)據(jù)的采集,編輯,處理及多種形式的空間分析,同時可以為人們的生產(chǎn)提供決策。該軟件目前已廣泛應用于自然資源管理、自動制圖、設施管理、城市和區(qū)域規(guī)劃、交通管理等領(lǐng)域[1]。作為目前主流的GIS軟件,是一套完整的、可無縫擴展的平臺軟件,具有管理和分析空間數(shù)據(jù)的功能,可以通過二次開發(fā)語言對桌面功能進行擴展。常用的ArcGIS二次開發(fā)語言有Python,VBA,VB,.net等。其中Python作為一種簡單而且功能強大的開放性編程語言而備受矚目,它具有簡單易學、不受局限、可跨平臺使用等諸多優(yōu)點[2]。在ArcGIS10.1版本中已經(jīng)將Python進一步整合到ArcGIS的用戶界面里,供用戶編程以開發(fā)出大量用于處理地理數(shù)據(jù)的實用程序,而這些由用戶編寫的程序可以進行地理數(shù)據(jù)的自動化批量處理,從而大大提高了工作效率。

GIS軟件功能中的一個重要組成部分就是地理數(shù)據(jù)的處理,地理數(shù)據(jù)處理的本質(zhì)其實就是多種空間數(shù)據(jù)進行處理,專業(yè)名詞即為空間分析。地理數(shù)據(jù)處理最終的目標為使用戶能夠根據(jù)自己的需求去執(zhí)行模型的建立,各種空間分析功能。在大量地理數(shù)據(jù)需要處理的時候,需要進行多次數(shù),長周期的處理模式。因此我們就需要可以自動進行多次數(shù)循環(huán)處理數(shù)據(jù)流的功能,基于python腳本加Arcgis的模式可以提供一組豐富的工具和機制來實現(xiàn)數(shù)據(jù)流的自動化批量操作,這些工具和腳本能夠?qū)⒁幌盗械墓ぞ甙凑沼脩糇约旱囊庠赶嚆暯樱靡杂行虻倪M行地理數(shù)據(jù)的處理。

Arcgis軟件中自帶的典型數(shù)據(jù)處理工具會在ArcGIS數(shù)據(jù)集(如要素類、柵格或表)的框架中進行操作,最終的結(jié)果即生成一個新的要素類集。又因為數(shù)據(jù)變換的框架為地理處理的基礎(chǔ)。所以每個地理處理工具都對應一個數(shù)據(jù)處理的微操作。典型的例如向表中添加字段、要素的幾何變換、數(shù)據(jù)投影(即將一個要素數(shù)據(jù)集投影到另一個要素數(shù)據(jù)集中)。所有的數(shù)據(jù)處理工具都集合在ArcGIS軟件里的ArcToolbox中,其數(shù)量高達數(shù)百個。對于用戶或者專業(yè)處理數(shù)據(jù)的人員來說,在利用ArcGIS地理處理工具時,根據(jù)不同的情況就會出現(xiàn)不同的問題,例如如何將幾個簡單的小工具串聯(lián)起來,用于自動化地完成一個簡單工作流。此時就可以利用Python腳本來使得人工操作轉(zhuǎn)換為自動化的程序批處理過程用于進行數(shù)據(jù)處理[3]。下面我們就倆簡單介紹下基于Arcgis的python腳本。

1 ArcPy簡介

本文首先對ArcGIS的腳本語言Python的使用方法做一個簡單介紹,對比Python腳本與Arcgis中自帶工具的優(yōu)劣,然后利用已經(jīng)編寫好的Python腳本來說明其在地理數(shù)數(shù)據(jù)處理中的應用。

1.1 什么是Arcpy

1991年,程序員Guido van Rossum推出了一種跨平臺并且不受局限的開源式編程語言。在當時由于Python具有處理速度快、功能強大等特點獲得了大眾的廣泛認可。目前Python已延伸到ArcGIS中,成為了一種用于進行數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動化的語言[4]。ArcPy則是一個包含了各種python的原生程序包。ArcGIS 9.2版本中所采用的arcgisscripting 模塊的功能是它的雛形,ArcPy則是其進一步的衍生,提供了多種有用的函數(shù)和類并且為用戶提供了使用Python語言操作時所需要的所有地理處理工具的入口,以用于處理和詢問GIS數(shù)據(jù)[5]。后續(xù)的Arcgis的每個版本都進一步加強了用戶的Python體驗,直至今日的版本ESRI公司已將Python完全納入ArcGIS中,并將其視為可滿足用戶需求的語言[6]。可以使用來自不同領(lǐng)域的GIS人員和程序員組成的眾多Python小群體開發(fā)的附加模塊是用ArcPy編寫的ArcGIS應用程序的一大優(yōu)勢。

1.2 Python語言優(yōu)勢

(1)Python 語言是一種解釋型的開源計算機語言,具有面向?qū)ο笄铱蓴U展的特征,包含豐富的庫。簡單易學,功能強大。

(2)相對于C、C++、Java等其他計算機語言,python的開發(fā)效率要大大提高。Python代碼的長度往往只有C++或Java代碼的四分之一左右,并且Python語言編寫的程序可以立即執(zhí)行,不需要編譯鏈接等步驟,從而提高了開發(fā)效率。

(3)可轉(zhuǎn)變?yōu)锳rcGIS工具

編輯好的Python腳本程序可以直接作為自定義工具使用并且添加到ArcToolBox中作為自定義工具,與系統(tǒng)提供的工具使用方法一致。簡化了操作過程,簡單易用。

(4)跨平臺,可移植性高

絕大多數(shù)Python程序不需要人工更改即可在當前主流的計算機系統(tǒng)平臺上使用。

(5)具有可嵌入性

Python程序可以作為插件嵌入到其他語言開發(fā)的應用程序中(例如Arcgis),提高了程序的重用性。

(6)地理處理自動化

Python腳本的執(zhí)行過程實際上就是一個自動化的數(shù)據(jù)流處理過程。地理處理的過程按照程序設計的步驟依次完成相應的地理處理過程,中途無需人工干預。并且地理處理的過程可以實現(xiàn)批處理,大大簡化工作量[7]。

1.3 ArcPy的使用方法

(1)在命令行窗口中使用ArcPy

在用戶成功安裝ArcGIS軟件之后可以選擇安裝包括Python的安裝包,安裝以后用戶需要先運行Python IDLE。在使用數(shù)據(jù)處理工具之前需要先導入Arcpy站點包。

(2)在Python腳本文件中使用ArcPy

其人性化的設計之一是Python窗口中具有代碼提示功能,使用ArcPy的方式有很多種其中最方便的是利用腳本文件,常用的方法是利用記事本編輯我們所需要的程序。另一種方法則是在Python IDLE中創(chuàng)建腳本文件,在Python IDLE中打開腳本文件后,點擊Run->Run Module將運行腳本文件,可以顯示相應的提示信息。

(3)利用ArcPy創(chuàng)建地理處理工具

利用ArcPy創(chuàng)建用戶需要的地理處理工具也是常用的功能,該工具可以作為ArcCatalog中的自定義工具使用,其使用方法與ArcToolbox中工具的使用方法類似用戶可以通過對話框進行參數(shù)輸入并且根據(jù)不同的參數(shù)顯示不同的結(jié)果。

2 Arcgis中常規(guī)的數(shù)據(jù)庫合并處理方法

2.1 Arcgis中圖層合并的方法

2.1.1 直接導入法

如圖1所示,這種方法能夠選取自己想要合并的表格屬性。首先是在arccatalog工具欄中定位到我們需要合并的圖層,然后右鍵選擇導入(part2合并入part1圖層中,選擇part1右鍵選擇加載),需要注意的是加載圖層必須是在一個數(shù)據(jù)庫空間下(gdb或者是mdb目錄下)。

圖1 直接導入法

2.1.2 利用toolbox下的合并工具

如圖2所示,此方法我們需要注意各要素間的表格屬性。如果表格中的字段名稱或者是類型不一致,就會造成數(shù)據(jù)丟失。所以當圖層數(shù)較少時,我們可以采取加載的方式進行,如果要合并多個圖層時,合并工具就會更加有效,但是前提條件是我們預先處理好各表格中字段類型及名稱。(合并工具在ArcToolBox——Data Management Tools—— General——Merge中)。

但是上述兩種方法只適用于少量圖層的合并。由于本文中所處理的數(shù)據(jù)是包含多個圖層的地質(zhì)公園數(shù)據(jù)庫數(shù)據(jù),各個地質(zhì)公園的數(shù)據(jù)分別存儲在數(shù)據(jù)庫中,分為水域,水系,注記等圖層,存儲位置太過分散,手動合并各個數(shù)據(jù)庫相同圖層工作量龐大且容易出錯,本文基于ArcGIS使用python對大量數(shù)據(jù)庫中的指定圖層進行批量合并,形成整個測區(qū)范圍的指定圖層數(shù)據(jù),質(zhì)檢員只需對合并后的數(shù)據(jù)進行一次檢查,極大的提高質(zhì)檢效率,減輕質(zhì)檢工作強度和避免逐幅檢查時易出現(xiàn)的圖幅漏查情況。以下是數(shù)據(jù)批量處理流程及具體實現(xiàn)。

圖2 利用工具合并

3 ArcPy數(shù)據(jù)處理實例

3.1 研究背景

在數(shù)據(jù)生產(chǎn)過程中,通常一個數(shù)據(jù)庫中包含很多圖層,點、線、面圖層同時存在,多個數(shù)據(jù)庫中基本包含相同圖層,例如此文中不同的地質(zhì)公園數(shù)據(jù)庫中都包含水系,注記,山峰,地質(zhì)遺跡等同名圖層。數(shù)據(jù)處理過程中由各個作業(yè)員生產(chǎn)的N個獨立的地理數(shù)據(jù)庫(gdb)最終將匯交至質(zhì)檢人員,當質(zhì)檢員應用GIS軟件對這些gdb格式的數(shù)據(jù)庫中某類要素(比如“水系”層)進行檢查時,由于每個水系圖層都存儲于一個獨立的地理數(shù)據(jù)庫(gdb)中,質(zhì)檢員只能選擇將這N個數(shù)據(jù)庫中每個的水系圖層逐一檢查,這種檢查方式非常之耗時且由于繁瑣的操作而致使檢查工作易出現(xiàn)遺漏,若不想逐個檢查就必須對分散于多個數(shù)據(jù)庫中的圖層進行合并后再從整體上進行檢查[8]。

3.2 首先介紹數(shù)據(jù)庫存儲方式(以洞穴公園,恐龍鞏公園,山谷公園為例)

每個公園數(shù)據(jù)包含4個數(shù)據(jù)庫(gdb)如圖3所示,分別為邊界圖,地質(zhì)圖,規(guī)劃總圖,科學導游圖,每個數(shù)據(jù)庫中都含有同名圖層水系,水域,注記,村莊等。

圖3 數(shù)據(jù)庫存儲方式

3.3 添加路徑識別代碼

由于數(shù)據(jù)存儲在中文路徑,首先在代碼前添加中文路徑識別代碼,便于python腳本識別數(shù)據(jù)庫。

否則數(shù)據(jù)不能被識別導致腳本出現(xiàn)錯誤,無法進行。

import arcpy

import sys

reload(sys)

sys.setdefaultencoding(‘utf8‘)

3.4 利用python腳本進行合并操作(數(shù)據(jù)庫合并主要代碼如下圖所示,以“邊界圖”數(shù)據(jù)庫為例)

這一步是利用腳本將三個公園的邊界圖數(shù)據(jù)庫,即三個不同公園的邊界圖.gdb中的所有同名圖層合并到一個新的數(shù)據(jù)庫BJ.gdb中。得到的新的數(shù)據(jù)庫中包含原來三個數(shù)據(jù)庫中的所有同名圖層,完成了批量合并操作,方便檢查錯位及遺漏。

arcpy.env.workspace=r’F:DZ’ #路徑設置

s1=arcpy.ListWorkspaces() #列出所有的文件夾

for i in s1: #對文件夾進行循環(huán)

arcpy.env.workspace=i #設置文件夾下的路徑

print I #把路徑打印出來

s2=arcpy.ListWorkspaces() #列出文件夾下路徑

for j in s2: #對當前路徑下的文件夾進行循環(huán)

arcpy.env.workspace=j #設置路徑

print j #把路徑打印出來

s3=arcpy.ListWorkspaces(“*邊界圖.gdb”)

#列出包含邊界圖.gdb的文件夾

for a in s3: #對當前路徑下的文件循環(huán)

arcpy.env.workspace=a #設置路徑

print a #打印路徑

ff=arcpy.ListFeatureClasses()

#列出當前路徑下的所有要素類

for f in ff: #對當前要素類進行循環(huán)

if not arcpy.Exists(r’F:DZ BJ. gdb’+ ”\”+f): #判斷某一要素是否存在

arcpy.CopyFeatures_management(str(a)+”\”+f,r’F: DZBJ.gdb’+”\”+f) #若不存在則直接復制

else:

print f

arcpy.Append_management (str(a)+”\”+f,r’F:DZBJ.gdb’+”\”+f ,”NO_TEST”,””,””) #如果存在,打印

print ”BJ” #程序完成,顯示“BJ”

3.5 處理結(jié)果以及匯總統(tǒng)計(匯總代碼如下所示)

arcpy.env.workspace=r’F:DZBJ.gdb’

ss=arcpy.ListFeatureClasses()

for s in ss:

count=arcpy.GetCount_management(s)

print s+” ”+str(count)

arcpy.env.workspace=r’F:DZ公園‘

s1=arcpy.ListWorkspaces()

for i in s1:

cnt=0

arcpy.env.workspace=i

s2= arcpy.ListWorkspaces()

for j in s2:

arcpy.env.workspace=j

s3=arcpy.ListWorkspaces(”*邊界圖.gdb”)

for a in s3:

arcpy.env.workspace=a

ff=arcpy.ListFeatureClasses(s)

for f in ff:

d=str(arcpy.GetCount_managment(f))

cnt=cnt+int(d)

print s+” ”+str(cnt)

此代碼主要是對合并前各個邊界圖數(shù)據(jù)庫中所有相同圖層的數(shù)量相加之和與合并后數(shù)據(jù)庫BJ.gdb中總圖層數(shù)量的比較,如數(shù)量一致,說明合并前后數(shù)量一致,所有相同圖層都被合并到新的數(shù)據(jù)庫中,沒有遺漏。處理結(jié)果如表1所示,根據(jù)圖中顯示的結(jié)果,前后數(shù)量一致,代碼完美運行。

表1 最終對比處理結(jié)果

Tab.1 Final contrast

3.6 實驗過程中存在的主要問題

在整個數(shù)據(jù)處理過程中主要存在合并數(shù)據(jù)類型不一致所引起的錯誤。主要原因是字符串類型不能存放在數(shù)值型字段中,如圖4所示。解決方法:查看原始數(shù)據(jù),把數(shù)據(jù)類型改成一致。

圖4 處理過程中出現(xiàn)的錯誤

4 結(jié)語

本文以云南省地質(zhì)環(huán)境信息化建設項目中的地質(zhì)公園數(shù)據(jù)庫數(shù)據(jù)為例,探討了ArcPy在地理數(shù)據(jù)庫合并處理中的方法與應用,實現(xiàn)了對地理數(shù)據(jù)庫中的指定圖層的自動、批量合并,杜絕了大量地理數(shù)據(jù)庫圖層人工合并時人為遺漏的情況,極大的提高了工作效率。當采用ArcGIS Engine或是其他數(shù)據(jù)處理開發(fā)包實現(xiàn)此功能時,有著較高的編程門檻,主要面向的人群是專業(yè)的開發(fā)人員。此文中的方法則降低了編程的門檻,非專業(yè)人員也可以輕松上手并且在空間數(shù)據(jù)批量自動化處理和地理小工具的開發(fā)方面具有顯著的優(yōu)勢[9],利用腳本可以簡化手工操作的步驟,減少誤操作概率,對用戶的日常數(shù)據(jù)處理工作有很大的幫助[10],Arcgis中提供的種類豐富的數(shù)據(jù)處理工具并不適用與所有的情況,在具體的工作任務中,合適且方便的地理數(shù)據(jù)工具往往更加實用,此時就需要個性化的工具去針對不同的工作內(nèi)容,恰恰Arcpy可以實現(xiàn)這一點。由此可見Python在Arcgis地理處理框架中占據(jù)非常重要的位置[11]。在GIS行業(yè)今后的發(fā)展中,越來越多的開發(fā)人員,用戶,數(shù)據(jù)處理人員將更好的完善python腳本在數(shù)據(jù)處理方面的應用,工作效率也會也來越高。

[1] 何麗嫻, 甘淑, 陳應躍. 基于Python語言的空間數(shù)據(jù)處理[J]. 價值工程, 2014(36): 207-209.

[2] 卜麗靜, 鄭新杰, 張正鵬, 等. 基于Python的礦山遙感監(jiān)測系統(tǒng)開發(fā)研究[J]. 測繪工程, 2015(6): 43-47.

[3] 柳琳. 基于工作流的地理處理建模技術(shù)[J]. 地理空間信息, 2011, 9(1): 39-42.

[4] 林璐, 王爽, 李海泉, 等. 在ArcGIS下基于Python的矢量數(shù)據(jù)處理方法[J]. 測繪技術(shù)裝備, 2016, 18(4): 63-65.

[5] 曹斌. 基于ArcPy的矢量數(shù)據(jù)批處理方法研究[J]. 科技創(chuàng)新與應用, 2017(21): 90-90.

[6] 邵保華, 田學志. 談Python在Arcgis地理處理中的應用[J]. 林業(yè)勘查設計, 2012(2): 99-100.

[7] 巨擘. ArcGIS中應用Python腳本提高數(shù)據(jù)生產(chǎn)力的研究[J]. 測繪技術(shù)裝備, 2017, 19(3): 12-14.

[8] 陳軒. 基于ArcGIS利用python腳本對地理數(shù)據(jù)庫中指定同名圖層的批量合并[J].

[9] 張橋平, 李德仁, 龔健雅. 城市地圖數(shù)據(jù)庫圖形合并技術(shù)[J]. 測繪通報, 2003(9): 27-29.

[10] 劉小華. 基于Python的地理信息數(shù)據(jù)處理研究[J]. 中國化工貿(mào)易, 2015, 7(32).

[11] 田學志. 基于Python的Arcgis地理處理應用研究[J]. 計算機光盤軟件與應用, 2013(7): 46-46.

Research on Batch Consolidation Method Based on Python in ArcGIS

LIU Xiang-yu, ZHU Da-ming

(Faculty of Land and Resource Engineering, Kunming University of Science and Technology, Kunming 650093, China)

In order to achieve the bulk consolidation of a large number of identical layers in different geodatabases in ArcGIS, This article is based on the geological environment information construction project in Yunnan Province, Based on a comparative analysis of Arcgis secondary development methods, A new Python programming script for ArcGis 10.5 is proposed. This article gives a detailed description of the principles of Python geospatial analysis, Python scripting capabilities, and experimental data processing flow. Experimental results prove the feasibility of the script. Conclusion: In this article, the scripts developed manually based on ArcPy are significantly more error-prone than manual operations, Achieve batch consolidation of layers with the same name in the geodatabase.

Arcgis; Geodatabase processing; Python; Script editing; Merge

TP79

A

10.3969/j.issn.1003-6970.2018.07.034

劉翔宇(1993-),男,昆明理工大學國土資源工程學院碩士研究生,研究方向為3S技術(shù)集成及應用。

本文著錄格式:劉翔宇,朱大明. Arcgis中基于Python的地理數(shù)據(jù)庫批量合并方法研究[J]. 軟件,2018,39(7):161-165

猜你喜歡
數(shù)據(jù)處理數(shù)據(jù)庫方法
認知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應用
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 白丝美女办公室高潮喷水视频| 人妻中文字幕无码久久一区| 亚洲一级毛片免费观看| 亚洲福利视频网址| 亚洲va视频| 亚洲国产高清精品线久久| 91视频青青草| 青青草原国产一区二区| 996免费视频国产在线播放| 中文字幕波多野不卡一区| 91福利国产成人精品导航| 欧美a级在线| 亚洲最大综合网| 免费激情网站| 二级特黄绝大片免费视频大片| 91po国产在线精品免费观看| 91免费国产在线观看尤物| 欧美h在线观看| 国产成人夜色91| 亚洲中久无码永久在线观看软件| 色婷婷电影网| 精品一区二区无码av| 国产在线91在线电影| 99视频精品在线观看| 国产97视频在线观看| 国产凹凸一区在线观看视频| 亚洲精品无码久久毛片波多野吉| 亚洲 欧美 偷自乱 图片 | 狼友av永久网站免费观看| 国产精品成人啪精品视频| 国产真实乱了在线播放| 国产精品久久久久久久伊一| 免费视频在线2021入口| 大香网伊人久久综合网2020| 中文字幕乱妇无码AV在线| 国产福利小视频在线播放观看| 第一页亚洲| 伊人久久久久久久久久| 天堂av综合网| 精品一区二区三区自慰喷水| 精品一区二区久久久久网站| 亚洲成人黄色网址| 日本不卡在线播放| 欧亚日韩Av| 国产香蕉一区二区在线网站| 毛片一区二区在线看| 久久久久亚洲AV成人网站软件| 99热国产这里只有精品无卡顿"| 2022国产91精品久久久久久| 久操中文在线| 国产xxxxx免费视频| 99在线视频免费观看| 91热爆在线| 青青青国产视频| 在线免费无码视频| 毛片久久网站小视频| 免费99精品国产自在现线| 国产精品不卡永久免费| 伊人色在线视频| 这里只有精品在线播放| 国产成人av大片在线播放| 日韩天堂视频| 欧美色99| 国产精品久久自在自线观看| 亚洲欧美日韩色图| 国产精品久久精品| 99视频在线观看免费| 免费人成网站在线观看欧美| 日韩中文字幕免费在线观看 | 欧美一级高清视频在线播放| 久草中文网| 5555国产在线观看| 黄网站欧美内射| 国产69精品久久久久妇女| 国产一区免费在线观看| 91精品国产综合久久香蕉922| 欧美一区二区精品久久久| 91麻豆国产精品91久久久| 国产不卡一级毛片视频| 精品91在线| 99热这里只有精品免费| 中日无码在线观看|