日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

最全vue的vue-amap使用高德地圖插件畫多邊形范圍的示例代碼

瀏覽:165日期:2022-06-12 08:31:05

一、在vue-cli的框架下的main.js(或者main.ts)中引入高德插件,代碼如下:

import Vue from ’vue’import VueAMap from ’vue-amap’import ElementUI from ’element-ui’import App from ’./App.vue’import router from ’./router’import store from ’./store’import ’./registerServiceWorker’Vue.use(VueAMap)Vue.use(ElementUI)VueAMap.initAMapApiLoader({ // 高德的key key: ’你的高德key’, // 插件集合 plugin: [ ’AMap.Autocomplete’, ’AMap.PlaceSearch’, ’AMap.Scale’, ’AMap.OverView’, ’AMap.ToolBar’, ’AMap.MapType’, ’AMap.PolyEditor’, ’AMap.CircleEditor’, ’AMap.Geocoder’, ’AMap.Geolocation’ ], // 高德 sdk 版本,默認為 1.4.4 v: ’1.4.10’})Vue.config.productionTip = falsenew Vue({ router, store, render: h => h(App)}).$mount(’#app’)

強烈推薦的第三種畫多邊形的效果圖:

***隱藏的彩蛋哦***

圖里的 “請輸入經緯度” ,可以輸入一堆的經緯度坐標,在按“Enter” ,可以直接形成多邊形;(注意:輸入的格式要和上面顯示的坐標全部選中Ctrl+c下來的格式一樣)

如:

106.628788 , 29.718379106.631187 , 29.718143106.632383 , 29.716281106.628819 , 29.717013

最全vue的vue-amap使用高德地圖插件畫多邊形范圍的示例代碼

二、第一種畫化:使用Geolocation畫多邊形(效果是在地圖點了,才會形成多邊形)

// 新增 編輯 查看 <template> <div class='point'> <el-header></el-header> <div class='action-bar'> <el-form :rules='rules' ref='formData' size='small' :model='formData'> <el-form-item label label- prop='location'> <el-input :disabled='!ifFalg' clearable v-model='formData.location' placeholder='名稱' maxlength='30' ></el-input> </el-form-item> <el-form-item label prop='longitude'> <el-input :disabled='!ifFalg' clearable v-model.number='formData.longitude' placeholder='經度 ' ></el-input> </el-form-item> <el-form-item label prop='latitude'> <el-input :disabled='!ifFalg' clearable v-model.number='formData.latitude' placeholder='緯度' ></el-input> </el-form-item> <el-button v-if='ifFalg' type='primary' @click='save' size='small'>保存</el-button> <el-button size='small' @click='close'>關閉</el-button> </el-form> </div> <div class='map-box'> <div class='map-tool'> <div v-if='ifFalg'> <el-checkbox v-model='enterType'>地圖上描點</el-checkbox> </div> <!-- <el-checkbox @change='checkbox' v-model='enterType'>地圖上描點</el-checkbox> --> <div class='longlat'> <ul> <li v-for='(item, index) in lnglatpoints' :key='index'> {{item.longitude}} , {{item.latitude}} <i v-if='ifFalg' @click='deletes(item)' ></i> </li> </ul> <el-input v-if='ifFalg' size='small' clearable v-model='lngLat' @keyup.enter.native='submitEnter' placeholder='請輸入經緯度' ></el-input> <el-button v-if='ifFalg' size='small' @click='clear' type='primary' class='claer'>清除</el-button> </div> </div> <div id='map'> <el-amap ref='map' bubble :plugin='plugin' :zoom='map.zoom' :center='map.center' :events='events' > <el-amap-polygon :events='plugin.events' :path='path' :draggable='draggable' fillColor='#2b83f9' fillOpacity='0.5' strokeWeight='0' strokeColor='#2b83f9' strokeOpacity='0.5' ></el-amap-polygon> <!-- <el-amap-marker :position='marker.position' :events='plugin.events'></el-amap-marker> --> <el-amap-marker v-if='formData.type === 1' :position='map.center' :label='label'></el-amap-marker> </el-amap> </div> </div> </div></template><script lang='ts'>import * as api from ’@/utils/api/index’import { Component, Vue } from ’vue-property-decorator’import eHeader from ’@/components/header.vue’import { constants } from ’http2’import * as util from ’@/utils/util.ts’const testLongitude = (rule: any, value: string, callback: Function) => { if (util.regExp.longitudeRegExp.test(value)) { return callback() } else { return callback(new Error(’請輸入正確的經度’)) }}const testLatitude = (rule: any, value: string, callback: Function) => { if (util.regExp.latitudeRegExp.test(value)) { return callback() } else { return callback(new Error(’請輸入正確的緯度’)) }}@Component({ components: { ’el-header’: eHeader }})export default class point extends Vue { private breadcrumbId = 0 private id = ’’ private lngLat = ’’ private ifFalg = true private map = { zoom: 15, center: [106.55073, 29.56471] } private path: any = [] private draggable = false private lnglatpoints: any = [] private enterType = false // 錄入坐標 | 地圖上描點 private cities = [] private formData = { location: ’’, longitude: ’’, latitude: ’’ } plugin = { pName: ’Geolocation’, events: {} } events = {} private test = 1 private rules = { location: [ { required: true, message: ’請輸入接送點名稱’, trigger: ’blur’ } ], longitude: [{ validator: testLongitude, trigger: ’blur’ }], latitude: [{ validator: testLatitude, trigger: ’blur’ }] } mounted() { this.id = this.$route.params.id this.breadcrumbId = Number(this.$route.query.breadcrumbId) if (this.breadcrumbId === 2) { this.ifFalg = false } if (this.id !== ’-1’) { this.details() } // this.city() let _this: any = this // 地圖點擊事件 _this.events = { click: (e: any) => { if (this.enterType) { this.path = [] console.log(e.lnglat) let lnglat = e.lnglat this.lnglatpoints.push({ latitude: lnglat.lat, longitude: lnglat.lng }) console.log(this.lnglatpoints) this.lnglatpoints.map((val: any, index: number) => { console.log(index) if (index === 0) { this.map.center = [val.longitude, val.latitude] } let arr = [val.longitude, val.latitude] this.path.push(arr) }) // this.setFitView() } } } // 多邊形點擊事件 _this.plugin.events = { click: (e: any) => { if (this.enterType) { this.path = [] console.log(e.lnglat) let lnglat = e.lnglat this.lnglatpoints.push({ latitude: lnglat.lat, longitude: lnglat.lng }) console.log(this.lnglatpoints) this.lnglatpoints.map((val: any, index: number) => { console.log(index) if (index === 0) { this.map.center = [val.longitude, val.latitude] } let arr = [val.longitude, val.latitude] this.path.push(arr) }) // this.setFitView() } } } }// 獲取接送范圍集合 details() { const loading = this.$loading({ lock: true, text: ’加載中...’ }) api.main.boss_line_point__get({ params: {param: this.id}}).then((res: any) => { if (res.data.success) { const response = res.data.data this.formData = response let points = res.data.data.points if (points != null) { for (let i = 0; i < points.length; i++) { points[i].id = i } this.lnglatpoints = points this.lnglatpoints.map((val: any, index: number) => { if (index === 0) { this.map.center = [val.longitude, val.latitude] } let arr = [val.longitude, val.latitude] this.path.push(arr) }) } else { this.map.center = [ Number(this.formData.longitude), Number(this.formData.latitude) ] this.label.content = this.formData.location } setTimeout(this.setFitView, 0) } else { this.$message.error(res.data.message) } loading.close() }) } // 移除經緯度 deletes(data: any) { let e: any = this this.path = [] for (let i = 0; i < e.lnglatpoints.length; i++) { if ( data.latitude === e.lnglatpoints[i].latitude && data.longitude === e.lnglatpoints[i].longitude ) { e.lnglatpoints.splice(i, 1) } } console.log(e.path) this.lnglatpoints.map((val: any, index: number) => { let arr = [val.longitude, val.latitude] this.path.push(arr) if (index === 0) { this.map.center = [val.longitude, val.latitude] } console.log(this.path) }) } clear() { this.$confirm(’確認刪除繪制的接送區域?’, ’刪除’, { confirmButtonText: ’確定’, cancelButtonText: ’取消’, type: ’warning’ }) .then(() => { let self: any = this this.path = [] this.lnglatpoints = [] // this.map.center = [106.5507300000, 29.5647100000] this.lngLat = ’’ self.formData.points = [] }) .catch(() => {}) } // 輸入經緯度 submitEnter() { // eslint-disable-next-line const illegalRegExp = /^(D|d*.?d*,*s)|[^ds,.]|^d*.?d*$|(,.|.,)+|(d*.*d*,){2,}|(d*.){2,}|(d*s){2,}|(sd*.?d*|D)$/g const replaceWhiteSpaceRegExp = /(?<=(,|.|s))s+|s+(?=(,|.))|^s|s+$/g this.lngLat = this.lngLat.replace(replaceWhiteSpaceRegExp, ’’) if (illegalRegExp.test(this.lngLat)) { return this.$message.error(’經緯度格式錯誤!’) } const lnglatArray = this.lngLat.split(’ ’) lnglatArray.forEach(lnglatString => { const lnglatObject = { longitude: lnglatString.split(’,’)[0], latitude: lnglatString.split(’,’)[1] } this.lnglatpoints.push(lnglatObject) }) this.path = [] this.lnglatpoints.map((val: any, index: number) => { let arr = [val.longitude, val.latitude] this.path.push(arr) this.lngLat = ’’ if (index === 0) { this.map.center = [val.longitude, val.latitude] } }) } setFitView() { const vm: any = this let map = vm.$refs.map.$$getInstance() map.setFitView() } close() { this.$router.push({ name: ’pointList’ }) } save() { let e: any = this let params: any = {} if (this.id !== ’-1’) { // 編輯 e.formData.id = this.id params.id = this.id } e.formData.points = this.lnglatpoints if (e.formData.location === ’’ || e.formData.location === null) { this.$message.warning(’名稱不能為空!’) return } if (this.lnglatpoints.length < 3 && e.formData.type === 2) { this.$message.warning(’經緯度不能小于三組!’) return } params.points = this.lnglatpoints params.location = this.formData.location params.longitude = this.formData.longitude params.latitude = this.formData.latitude if (this.id !== ’-1’) { api.main.boss_line_point_update_post({ data: params }).then((res: any) => { if (res.data.success) { this.$message.success(’保存成功!’) this.$router.push({ name: ’pointList’ }) } else { this.$message.error(res.data.message) } }) } else { api.main .boss_line_point_addAndBindLine_post({ data: params }) .then((res: any) => { if (res.data.success) { this.$message.success(’保存成功!’) this.$router.push({ name: ’pointList’ }) } else { this.$message.error(res.data.message) } }) } }}</script><style lang='scss' scoped>ul,li { list-style: none; margin: 0; padding: 0;}.inline-form { display: flex; display: -webkit-flex; flex-direction: row; flex-wrap: wrap; .el-form-item { margin-bottom: 10px; margin-left: 15px; display: flex; } .el-button { margin-left: 15px; height: 32px; }}.action-bar { box-sizing: border-box; padding: 10px; padding-bottom: 0; border: { top: 1px solid #ddd; bottom: 1px solid #ddd; } .my-input { width: 150px; } .name-input { width: 260px; }}.el-select-dropdown__item { background-color: white; text-indent: 10px;}.claer { margin-top: 15px; float: right;}$map_height: calc(100vh - 55px - 50px - 75px - 15px);.map-box { position: relative; height: $map_height; .map-tool { position: absolute; width: 220px; z-index: 170; top: 0; left: 0; max-height: 100%; box-sizing: border-box; padding: 10px; overflow-y: auto; background-color: #fff; box-shadow: 2px 4px 7px 1px #dedede; } .map { transition: all 0.6s; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }}.swiper-box { position: relative; z-index: 161; display: flex; align-items: center; flex-direction: row; justify-content: center; width: 100%; transition: transform ease-in 0.6s; transform: translateX(0); white-space: nowrap; .swiper-item { width: 100%; height: $map_height; }}.hide-text-area { transform: translateX(-100%);}.gray-map { filter: grayscale(90%);}.longlat { margin-top: 15px; padding-bottom: 15px; ul { li { padding: 6px; background-color: #ddd; border-radius: 4px; margin-bottom: 15px; font-size: 14px; color: #666; position: relative; } }}.el-icon-close { display: inline-block; position: absolute; right: 10px; color: #000 !important; cursor: pointer;}.my-button { margin-bottom: 10px;}</style>

三、第二種畫化:使用AMap.MouseTool畫多邊形(效果是:多邊形隨鼠標左鍵點擊,多邊形直接跟著變化)

// 新增 編輯 查看 <template> <div class='point'> <el-header></el-header> <div class='action-bar'> <el-form :rules='rules' ref='formData' size='small' :model='formData'> <el-form-item label prop='location'> <el-input :disabled='!ifFalg' clearable v-model='formData.location' placeholder='名稱' maxlength='30' ></el-input> </el-form-item> <el-form-item label prop='longitude'> <el-input :disabled='!ifFalg' clearable v-model.number='formData.longitude' placeholder='經度 ' ></el-input> </el-form-item> <el-form-item label prop='latitude'> <el-input :disabled='!ifFalg' clearable v-model.number='formData.latitude' placeholder='緯度' ></el-input> </el-form-item> <el-button v-if='ifFalg' type='primary' @click='save' size='small'>保存</el-button> <el-button size='small' @click='close'>關閉</el-button> </el-form> </div> <div class='map-box'> <div class='map-tool'> <div v-if='ifFalg'> <el-checkbox >地圖上描點</el-checkbox> </div> <div class='longlat'> <ul><li v-for='(item, index) in lnglatpoints' :key='index'> {{item.longitude}} , {{item.latitude}} <i v-if='ifFalg' @click='deletes(item)' ></i> </li> </ul> <br> <div> <span >輸入范圍經緯度:</span> <el-input type='textarea' autosize placeholder='請輸入內容' v-model='lnglatpointsString'> </el-input> </div> <el-button v-if='ifFalg' size='small' @click='clear1' type='primary' class='claer1'>確定</el-button> <el-button v-if='ifFalg' size='small' @click='clear' type='primary' class='claer'>清除</el-button> </div> </div> <div id='map'> <el-amap ref='map' bubble :zoom='map.zoom' :center='map.center' :events='mapEvents' > <el-amap-polygon :events='plugin.events' :path='path' fillColor='#2b83f9' fillOpacity='0.5' strokeWeight='0' strokeColor='#2b83f9' strokeOpacity='0.5' ></el-amap-polygon> <el-amap-marker v-if='formData.type === 1' :position='map.center' :label='label'></el-amap-marker> </el-amap> </div> <div class='my-tools'> <el-row> <el-button type='primary' v-if='ifFalg' @click='drawPolygon()'>鼠標繪制</el-button> <el-button type='primary' v-if='ifFalg' @click='polygonEditor.close()'>結束編輯</el-button> </el-row> </div> </div> </div></template><script lang='ts'>同上 /** * 繪制多邊形 */ private drawPolygon () { let vm: any = this let map = vm.$refs.map.$$getInstance() map.plugin([’AMap.MouseTool’], function () { var mouseTool = new AMap.MouseTool(map) var drawPolygon = mouseTool.polygon() AMap.event.addListener(mouseTool, ’draw’, function (e: any) { e.obj.Je.visible = false let path = e.obj.getPath() vm.drawPolygonsToMap(path)path.forEach((point:any) => { vm.lnglatpoints.push({ latitude: point.lat, longitude: point.lng }) }); // vm.mapDates =path // e.obj.hide() mouseTool.close() }) }) }同上}</script><style lang='scss' scoped>和上面一樣</style>

三、第三種畫化:使用AMap.Polygon和AMap.PolyEditor畫多邊形(推薦,效果是:https://lbs.amap.com/api/javascript-api/example/overlayers/polygon-draw-and-edit)

注意哦:1、以為這種畫多邊形,先需要3個點來確定初始的多邊形,所以添加了一個功能:搜索 (功能:點擊搜索名稱的經緯度;);

2、然后我再 ‘范圍繪制’ 的方法里根據“搜索”得來的經緯度,手動的弄了3個經緯度數組。

3、然后就可以快樂的畫圖了。(這畫圖是真的方便,特別是畫范圍很復雜的)。

// 新增 編輯 查看 <template> <div class='point'> <el-header></el-header> <div class='action-bar'> <el-form :rules='rules' ref='formData' size='small' :model='formData'> <el-form-item label prop='location'> <el-input :disabled='!ifFalg' clearable v-model='formData.location' placeholder='名稱' maxlength='30' ></el-input> </el-form-item> <el-button type='info' @click='getLocation' size='small'>搜索</el-button> <el-form-item label prop='longitude'> <el-input :disabled='!ifFalg' clearable v-model.number='formData.longitude' placeholder='經度 ' ></el-input> </el-form-item> <el-form-item label prop='latitude'> <el-input :disabled='!ifFalg' clearable v-model.number='formData.latitude' placeholder='緯度' ></el-input> </el-form-item> <el-button v-if='ifFalg' type='primary' @click='save' size='small'>保存</el-button> <el-button size='small' @click='close'>關閉</el-button> </el-form> </div> <div class='map-box'> <div class='map-tool'> <div v-if='ifFalg'> <el-checkbox >地圖上描點</el-checkbox> </div> <div class='longlat'> <ul> <li v-for='(item, index) in lnglatpoints' :key='index'> {{item.longitude}} , {{item.latitude}} <i v-if='ifFalg' @click='deletes(item)' ></i> </li> </ul> <br> <div> <span >輸入范圍經緯度:</span> <el-input type='textarea' autosize placeholder='請輸入內容' v-model='lnglatpointsString'> </el-input> </div> <el-button v-if='ifFalg' size='small' @click='clear1' type='primary' class='claer1'>確定</el-button> <el-button v-if='ifFalg' size='small' @click='clear' type='primary' class='claer'>清除</el-button> </div> </div> 同上 <div class='my-tools'> <el-row> <el-button type='primary' v-if='ifFalg' @click='drawPolygon()'>鼠標繪制</el-button> <el-button type='primary' v-if='ifFalg' @click='polygonEditor.close()'>結束編輯</el-button> </el-row> </div> </div> </div></template><script lang='ts'>同上//畫多邊形 private drawPolygon(){ let vm: any = this if (vm.formData.location === ’’ || vm.formData.location === null) { this.$message.warning(’請先輸入名稱,才能開始畫范圍!’) return } let map = new AMap.Map('map', { center:[106.55073, 29.56471], zoom: 15 }); // 多邊形覆蓋物節點坐標數組 let polygonArr:any = [] let lng = Number(this.formData.longitude) let lat = Number(this.formData.latitude) if(vm.path.length > 0){ polygonArr = vm.path }else{ polygonArr.push([lng, lat]) polygonArr.push([lng, lat - 0.001]) polygonArr.push([lng - 0.001, lat - 0.001]) } //使用 AMap.Polygon構建多邊形 let polygon = new AMap.Polygon({ path:polygonArr, strokeColor: '#FF33FF', strokeWeight: 6, strokeOpacity: 0.2, fillOpacity: 0.4, fillColor: ’#1791fc’, zIndex: 50, }) //將多邊形增加到地圖上 map.add(polygon) // 縮放地圖到合適的視野級別 map.setFitView([ polygon ]) //構造折線編輯對象,并開啟折線的編輯狀態 map.plugin(['AMap.PolyEditor'],function(){ let polygonEditor = new AMap.PolyEditor(map,polygon); vm.polygonEditor =polygonEditor polygonEditor.open(); //關閉多邊形編輯polygonEditor.close()觸發該方法; polygonEditor.on(’end’, function(event:any) { // event.target 即為編輯后的多邊形對象,event.target.getPath()得到編輯完成后的點數組 let pointArr = event.target.getPath() vm.lnglatpoints = [] pointArr.forEach((point:any)=>{ vm.lnglatpoints.push({latitude: point.lat,longitude: point.lng}) })vm.path = [] vm.lnglatpoints.map((val: any, index: number) => { let arr = [val.longitude, val.latitude] vm.path.push(arr) if (index === 0) { vm.map.center = [val.longitude, val.latitude] } }) }) }); } /** * 地理編碼(地址 -> 坐標) */ private getLocation () { let loc = this.formData.location AMap.plugin(’AMap.Geocoder’, () => { let geocoder = new AMap.Geocoder() geocoder.getLocation(loc, (status: string, result: any) => { if (status === ’complete’ && result.info === ’OK’) { let { lat, lng } = result.geocodes[0].location if (lat && lng) { this.map.center = [lng, lat] this.formData.longitude=lng this.formData.latitude=lat } } }) }) } 同上}</script><style lang='scss' scoped>和上面一樣</style>

總結

到此這篇關于最全vue的vue-amap使用高德地圖插件畫多邊形范圍的文章就介紹到這了,更多相關vue-amap高德地圖插件畫多邊形范圍內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 高德 地圖
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区二区三区四区在线看| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美色图国产精品| 精品一区欧美| 国产精品毛片在线看| 欧美精品羞羞答答| 午夜欧美精品久久久久久久| 激情黄产视频在线免费观看| 国产精品综合| sm久久捆绑调教精品一区| 日韩国产激情| 亚洲一区二区三区高清不卡| 日韩午夜黄色| 91精品国产自产精品男人的天堂| 国产欧美一区二区精品久久久| 日本欧美久久久久免费播放网| 蜜桃视频第一区免费观看| 免费欧美在线视频| 国产日韩一区二区三区在线播放| 免费在线播放第一区高清av| 国产精品丝袜在线播放| 国精品产品一区| 国产高清一区| 国产日韩一区二区三区在线播放| 精品中文字幕一区二区三区| 欧美国产精品| 国产高清一区| 国产日产精品_国产精品毛片| 欧美xxxx性| 欧美日韩国产一区精品一区| 久久性天堂网| 国产精品一区亚洲| 亚洲黄页一区| 成人午夜亚洲| 亚洲精一区二区三区| 国产欧美亚洲一区| 欧美日韩一二三四| 国产极品久久久久久久久波多结野| 日韩中文在线电影| 日韩精品欧美大片| 成人看片网站| 国产乱码精品| 欧美专区18| 婷婷综合六月| 国产精品视频一区二区三区四蜜臂| а√天堂中文在线资源8| 视频福利一区| 国产精品探花在线观看| 国产一区日韩一区| 国产日韩一区二区三免费高清| 日本精品影院| 国产高清精品二区| 亚洲一区二区三区中文字幕在线观看| 91综合网人人| 国产丝袜一区| 中文无码日韩欧| 久久久蜜桃一区二区人| 日本a级不卡| 91久久在线| 999国产精品永久免费视频app| 久久激五月天综合精品| 国产精品亚洲一区二区三区在线观看| 国产探花在线精品一区二区| 久久男女视频| 久久伊人国产| 国产欧美另类| 日韩国产欧美一区二区三区| 五月天av在线| 国产一区二区三区日韩精品| 日韩在线一二三区| 国产一区清纯| 99国产精品一区二区| 欧美激情福利| 91精品一区| 亚洲精品乱码久久久久久蜜桃麻豆| 免费污视频在线一区| 日韩av不卡一区二区| 影院欧美亚洲| av一区二区高清| 蜜桃国内精品久久久久软件9| 国产成人精选| 福利一区和二区| 国内一区二区三区| 国产一区二区三区国产精品| 免费观看日韩电影| 国产亚洲在线| 男女精品网站| 免费的成人av| 亚洲精品大全| 日本不卡一区二区| 欧美亚洲自偷自偷| 亚洲精品九九| 欧美日韩91| 国产欧美日韩精品一区二区三区| 中文字幕视频精品一区二区三区| 五月天久久777| 在线综合欧美| 视频一区二区不卡| 亚洲精一区二区三区| 六月婷婷一区| 天堂va在线高清一区| 亚洲综合婷婷| 91综合久久爱com| 国产日韩视频| 精品一区二区三区视频在线播放 | 亚洲午夜天堂| av中文资源在线资源免费观看| 精品一区二区三区视频在线播放| 国产乱码精品一区二区亚洲| 亚洲精品福利| 国产欧美在线观看免费| 久久国内精品| 精品香蕉视频| 久久久精品日韩| 免费视频久久| 国产日韩欧美三区| 伊伊综合在线| 亚洲欧美视频| 日韩在线麻豆| 欧美亚洲综合视频| 精品国产美女a久久9999| 精品日本视频| 免费观看不卡av| 日韩精品a在线观看91| 国产免费av一区二区三区| 国产福利资源一区| 日韩精品免费一区二区三区| 亚洲四虎影院| 亚洲欧美视频| 国产精品亚洲片在线播放| 久久精品国产网站| 亚洲手机在线| 国产日韩一区二区三免费高清| 国产欧美激情| 涩涩av在线| 日韩精品一区第一页| 日本不卡中文字幕| 国产一区二区三区不卡视频网站 | а√天堂8资源中文在线| 成人久久一区| 日韩精品亚洲专区| 亚洲女同av| 综合五月婷婷| 国内一区二区三区| 丝瓜av网站精品一区二区 | 亚洲精品综合| 激情黄产视频在线免费观看| 欧美日韩一二三四| 88久久精品| 亚洲高清不卡| 久久狠狠久久| 日韩视频在线一区二区三区| 中文字幕一区二区av| 国产精品极品在线观看| 三级精品视频| 久久国产麻豆精品| 不卡在线一区二区| 精品一区二区三区四区五区| 久久婷婷亚洲| 国产精品一国产精品| 国产一在线精品一区在线观看| 日韩一区二区三区在线看| 国产夫妻在线| 青青草国产成人99久久| 久久国产日韩| 欧美成人aaa| 日韩黄色av| 亚洲欧美日韩精品一区二区 | 国产黄色精品| 丝袜美腿高跟呻吟高潮一区| 欧美影院精品| 久久成人国产| 久久久久久美女精品| 国产九九精品| 亚洲精品免费观看| 在线视频精品| 久久人人88| 黄毛片在线观看| 久久三级毛片| 国产精品美女午夜爽爽| 在线综合视频| 久久精品免费一区二区三区| 91成人精品观看| 亚洲一区有码| 美女黄网久久| 亚洲在线网站| 亚洲一区观看| 中文日韩在线| japanese国产精品| 亚洲性图久久| 蜜臀av免费一区二区三区| 精品精品99| 精品免费视频| 成人台湾亚洲精品一区二区| 香蕉久久一区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲日本网址| 成人日韩在线| 久久久久蜜桃| 在线看片不卡|