React Native for Arcgis 地图开发 LocationCtrl (十五)

定位工具封装和使用LocationCtrlimportReact, {useState, useEffect}from'react';import{View,Text,ScrollView,StyleSheet,DeviceEventEmitter}from'react-native';import{Button,List,Switch}from'@ant-design/react-native';import{LocationCtrl,LayerManager,MapManager,MapView,LocationEventType,AutoPanMode,LocationCtrl2,LocationEventType2,}from'@haibalai/react-native-arcgis';import{connect}from'react-redux';importWidthDrawerfrom'../../../../components/WithDrawer/index';import{Colors}from'react-native/Libraries/NewAppScreen';import{PermissionsUtil}from'../../../../../nativeModules/util/PermissionsUtil';constMapId='baseMap';constGraphicLayerId='graphic点';constMapImageLayerId='水闸-MapImageLayer';constFeatureLayerId='水闸-featurelayer';constMapImageLayerIds= ['水闸-MapImageLayer','原水管线-MapImageLayer','海堤-MapImageLayer','海洋环境区划-MapImageLayer',];constFeatureLayerIds= ['水闸-featurelayer','原水管线-featurelayer','原水管线-featurelayer','海洋环境区划-featurelayer',];constGraphicLayerIds= ['graphic点','graphic线','graphic面'];constGeoX=1.2664272368526626e7;constGeoY=2595847.2157473154;constGeo4490X=113.78868474700005;constGeo4490Y=22.693641836999973;constlocationEventType =LocationEventType.onLocationChanged;letlistenerId ='';letdisplayMode =AutoPanMode.COMPASS_NAVIGATION;constsymbolStr ='';constimageBse64 ='iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABHNCSVQICAgIfAhkiAAADgtJREFUeJy9nF9MXFUex7/MwDBU2g5CA10FTGNbXaRU7YqEAE/2QZA+GLNJG9jGyr60jTHpJhLbXS3dBzchmoj7YE21Je3DbrKbrjjJusmmTIOBFjVQsl1atsnQGgbDX4sw1Q7sQznDmXN/v3POvTP4TU7uuf/OOfczv9/5d8+dLPx8ysrwPSse0vNyjyt5echM57EeZTCBWzew6wlUlzZ3Lp3ycJB08DIOdj2A2sKirjMdcwPN9pjuuGtlEqgNoCyXcRutuIxT+6bj1soEUJNFmsBxWxtR0NStbZxL15XSAWoL0gRxPYBycNcdrFegJvfWgVLPebVUHTSbOJcOl4+VMtU3dAPNtE9tKZmAqkE9R92rxnXHSLkBauPiNuC4QKVhks4Sl+EdrGdrzbYoNODdKqng05xT7zVJBypL2V9WrqXSylK2rmULVJVbiCpIFSoFWc5Hlcm9VaDLq/s6qwXMUI2gbYByfUmTW1MAfUqc2qYDdFmJi30BU4W6rHlucZ+cnygTC9UE1AamySJ9RKDg6oCqD0YBXSa2Iog0ZbhUnQvwIFUO5DkdUK8wdSD94MFydauct87VKZBUEOnKAJdX85fTkfO0rlPd1qHpglSBcpbrFqgOZkKJqw2eSFMA9sEOKgmZA0pZpxuYfiWuAuUAO4AeOnSoZM+ePVsB4OrVq7EzZ85MgAYqQ5Uh+qT9LKxBFc8l16NpQ+Uq/SwibtPgUMDkoB5Lwqyrq9vU3t7eUFpauqOwsHDHww8//DRTNgDAzMzMN9PT0zfHx8dvdHR09Pb3938P2jITmqDCV38Y1wMBCqgJJtdCc9C0IRwON1ZUVDQUFxfXs/QsNDk5eXlkZKS3sbHxczhh3od7sDqoqqsn922A2rq4LmSr++FwuLGmpua1vLy8rRa8rBWPx2N9fX0fS2BloOrW1lq50RbUONeSy3GbhocCl01tP/zww1/t37//uC3ISPRuyn59+Uab2xCPx2Pnz5/vOHz48Fd4AFCGKQNV4cpgbYawkOMmoG4tk4KYDSC7rq4u9Mknn7zx6KOPNnIQhmOL+MfoLCLRuxiO/YC5eIK8LhT0Y1fJQ6gv34jmnQXYVbKBSxLj4+Ph1tbW9/r7++fAg+Us1rZOTcYpixRxDihlmSnwpP0cANnvvPPOk4cPHz6Rn5+/XX3g+XgCHwzE0D00hejcPRaMTuWhXLRUFeFodQk2B/2O8wsLCze7urpOvf3229exBlINKlgbSwUUqHLu1OhE5+ocTBGSMI8dO/bnYDDocPFTvd+i9W9j+OJ/85hnrNFG8/EEItG7+Pir7xC/v4L6xzalnA8EAoU1NTUv+P3+K5FIZEYGQMQpUNT1ZA/JT5y0sU4dzByxFTD9fn++nOlwbBH1Z/6Dz0ZnEb/vaVKHVPz+CiLRu+gemkJD+SYU5+ckz/l8vkBtbS0FFeBh2hQuhZ0NUF29qYP5Swpm99AUmi+MurLIUNCPYLbPGv58PIHTX32H8lAuqqT6VUANBAJXLl26JKCaYJosNUV+6Ft2bgRENUZJqHV1dQWdnZ1/Ut287eItnOr9lisLq1cqCrGzKA/Dk4uu7vtsdBbRuXtofqIgeczn8wWqqqqe+vLLL/99+/btH1cPU9N4XOedgpklR2xadqp7RFlnDoCcsbGxP6itedvFW+gemtIC4PTFb54EAOw9e93T/S1VRTi9b1vKsfHx8fCOHTtOAvhJCVRjZeqfQmx9hrK4mfzwY7WfqcLsHpryDLM8lIv68o2oL9+I8lCupzSo/MvKyl7s6uraA6e36SZuuJCUDNRmQkQdwzvq1P379x+XExmOLaLt4i2XCNbUvLOAjLtV28VbGI6lVhkHDhx4C85RHDVho4W4qizAaaHcDbq+aBJqOBxuVEdAr/zlpuUj02qpKiLjXqSWJS8vb2tPT08jaMs0QSS7TTqX15k4OcNUU1PzmpzAqd5vPXfWgQfuLo+CdpVs8Oz2ABCdu+doFGtra1+Fea6Wg+uA6mNO2MJMBtU65+MJdA3EPDz2mo5WF1sdc6OugVhKl23VSpvgDqSslOOUhZrcnXT7ioqKBvmmDwZi7FjcVi8RdSZ1zI3mVoe6siorK+tg3wBp4XIuT93E1qF1dXWb1PlMr626UBXj3mpn3YvUshUXF9dXV1dvgt5KKbEuL06aTJr8pdrb21Osczi2mFbdCegboHQbp+jcPUeLf+LEiQYwr2E0wSHO5anKl+30l5aW7pAT+MforMtHdKqlaounc7ZSy1hWVrYd9i4vK6WBMnXs1RvIUFhYmAJUnRR2q+adBeQ0nNDmoD+tPingLOOWLVu2w4UlrsrR2tuMlMSWbazUF2rDsR8Myer10hNmWDbX6KSWsaCg4GnYW6bW5XW/AEAnpP0F023dbawvXQtlymhrmayokZIrHTp0qETeT9fdW6qKtO4utDnoT7txUst68ODBEuUSY0delU0dSimZkViEkCk1u3BlN9fayPAsVsbmFei6KBT0u+q4v7SzACELa/45pQK1fR+RnAu8evVqeuNLSV5GQemOnGQNDg5OpJtG2ha6utYoKdv35pRadrvvX3q5R0gt66effkqtm3Lzfsk1UCozR0Ze3FBMJFMaji2y76C8TjwzZeSeyRqqz3ARCUzNfGZm5hv5xK6Sh0z5OsR1g4Zji9h77jr2nrvuGC6a7tVJLePs7OzXoNcwcYsaSDachXIvrcgwPT2dMnPrxe2pLpCAORdPYGg1TkH10n1Syzg1NTUG/XMCegMDQAPl3v6xmY2Pj9+QE3BrMepEMvBgRkjAFJqLJ0ioXiae1TJGo9GbWHsm9YsRK08F7Ft5DuYygOWOjo5e+WK3D6hOGncPTaHt4i1yNMNBdTPxTP2Aq89AvdGk1uNbubzJxeXjKYuo+vv7v5+cnLwsJ+zGDeWuj4Cp01w8gec+GkmZ13TTfVLLNjk5GRkYGBALduXn49YzsTK5vHpcdYdkAUZGRlKs9Gh1iVVrL08k28CUJb/rt514DgX9OFqdOsK8du3aZZjXhHKNlawVU6OkdXU5NDY2fh6Px5Od/M1BP45Uq0Njp4S1uIUpJEO18Yojygq9paWliaamph7QHzyYGimHBFCStiE41rL39fV9LCdwvOERY13aUrUFv/vneFrv7tsu3kLXQMw48VweysXxhkdSjvX19Z0Bv3qZWyUCMICpmRTu3RG5jkkKAQA5c3Nzfw8Gg0nTHI4t4rmPRsgHFBPJ6b5/EmqpKsJ8PMG+Mbjy26dSGqOlpaWJgoKClwH8iAfLcMSWW44jQyerA3mxGDWZbJpwdbzMKi0tHXvmmWeSS3GK83NQHsrFZ8RDjk7HXS8A02l4chGj03Hy3Ol927D38c0px86ePdseDodvgwanLrxVW3xVKwA/E01B41bc5ajhxo0bvy8rK3tRzi2dxWLpKo3FYvKqZgqsYyTFtfJcq8Z9qSavWb/f2tr63sLCQsro6fS+bWlPCHsRBXNhYeFmS0vL+9Cvq1ddW/6UkZVpfSgM58nXIXfu3Plpw4YN12tqal7w+XwBcXPzEwWs+6+HTu/b5miEEonEQmdn55sXLly4A7v19eoae0rJ47oVzFDOUTC5fVy6dGnG7/dfqa2tTYFaVbIBzTsL0l5Xr1N5KBf/an3SUWcmEomFd99990hHR8d/4R4mYNF94oCKLQVTPsftA0BWJBIhoRbn5yQ718OTixlbZx8K+nGs9hf466+3p6yvB9Zgnjx5Uv4SxI1l2hSS/ApExG0gm6oGRCKRmUAgcGX37t1PBQKBQjn3+sc2oe3ZYgSzfYjO/+jZYstDuThaXYLulx93WCXwoM7s7Ox8U7JMufGxdXPdyMn54Exc102i+qfccvHs559/fvO5c+feUFt/Wev14VdLS8v7AwMD8odfuu+TbD78ArelFi/Icaqzr4K1/poOgL+rq2vPgQMH3lrvTxOXlpYmzp8//8cjR44Mgv5yzuaDWqqLxFmnFVCxdWOppm8+/QD8PT09TbW1ta9m+uPZpaWlib6+vjNNTU2fg/6m0wak2y+SU4aeqmxdn7JUymKpr5GT1/b09DRVVlbWZeDz7si1a9cuSxMdFCzuQ1muDjXNOkGNm4CKfQqsDVQOsHqtr7q6etPrr7/+bGVl5dNFRUXbV9casZqdnf16ampqLBqN3uzo6OiV5jNt/nxAvSYjMCl41HHd5IluIkUHWL1OnRNIrrk6ePDgVrGiY3BwcIJ51cuN4Ci4KjzKzW1hegJKwRRxHVQOLndetXqqOyYegAJKTSnqALuZ/wSxVeMA+D9xWVEeROyLBER8GWvzAbrRhH91S1ljArR1moCKOPfaQme1pobHBiYpN38zpIMqQIi4fI8IOtfmlmIDNFA1bRkgB5kDbuviWlcX4lxed940alKrAbk6UOPc9dyQV3U3yu1VoJz16kB6ggmYLVR1ffmYaqlCwkqzlPPyffI13Jp2EFsdUDdwOXie3FyWjcvbQOUkg1tRtiIsgwZpcnkRtwUr76v3goireVH5O2RyedN1nCVRFmcK1P1qXlQLy1kZBVW9hksH8ABTfgBbmepU+ZgOLnVcl5YsL1C5a9Q0qDx0xxxyC5S7hwKgs1oQcWprkgkQB42zRg6adT3qBajuPluwYuvGMmXpYNhYXkatUpZXoLr7qbpPPW5jmW6BynGv57k8rJUuUF0aHFgurruekg6KCSi3zx2zViaAmtIygXILUpaNddlCSwuk0Hp8k6IDYgPLzYO5cdeMujan9fzIxwQvU96hA+L1nGdl0uXTzSMTZbGBtC4ghf4PMbnq5XFFjogAAAAASUVORK5CYII=';constdelay =100;constperiod =10000;constenable =true;constenableShow =false;constopacity =0.5;constisShow =false;lettmpLocateListener: any =null;constinitScale =1000;//测试初始比例尺constpermissions = ['android.permission.ACCESS_FINE_LOCATION','android.permission.ACCESS_COARSE_LOCATION'];/** sideBar组件*@param{*} renderCb renderCb是一个函数, 每次触发并且向里面传值(对象),content组件就以sideBarData的属性去接受*/constSideBar= ({renderCb, Home}: any) => {const[content, changeContent] =useState('');const[errorContent, changeErrorContent] =useState('');const[singleMapImageLayerStatus, setSingleMapImageLayerStatus] =useState(false);const[multiMapImageLayerStatus, setMultiMapImageLayerStatus] =useState(false);const[singleFeatureLayerStatus, setSingleFeatureStatus] =useState(false);const[multiFeatureLayerStatus, setMultiFeatureLayerStatus] =useState(false);const[singleGraphicLayerStatus, setSingleGraphicLayerStatus] =useState(false);const[multiGraphicLayerStatus, setMultiGraphicLayerStatus] =useState(false);useEffect(() =>{renderCb({content, errorContent});}, [content, errorContent, renderCb]);constgetGeoX= () => {letcoordinate =Home.coordinate;if(coordinate ==='4490') {returnGeo4490X;}else{returnGeoX;}};constgetGeoY= () => {letcoordinate =Home.coordinate;if(coordinate ==='4490') {returnGeo4490Y;}else{returnGeoY;}};constonSwitchSingleMapImageLayer= (e: boolean) => {if(e) {LayerManager.showLayer(MapId,MapImageLayerId);}else{LayerManager.hideLayer(MapId,MapImageLayerId);}setSingleMapImageLayerStatus(e);};constonSwitchMultiMapImageLayer= (e: boolean) => {if(e) {LayerManager.showLayers(MapId,MapImageLayerIds);}else{LayerManager.hideLayers(MapId,MapImageLayerIds);}setMultiMapImageLayerStatus(e);};constonSwitchSingleFeatureLayer= (e: boolean) => {if(e) {LayerManager.showLayer(MapId,FeatureLayerId);}else{LayerManager.hideLayer(MapId,FeatureLayerId);}setSingleFeatureStatus(e);};constonSwitchMultiFeatureLayer= (e: boolean) => {if(e) {LayerManager.showLayers(MapId,FeatureLayerIds);}else{LayerManager.hideLayers(MapId,FeatureLayerIds);}setMultiFeatureLayerStatus(e);};constonSwitchSingleGraphicLayer= (e: boolean) => {setSingleGraphicLayerStatus(e);//加载单个图层的graphics};constonSwitchMultiGraphicLayer= (e: boolean) => {setMultiGraphicLayerStatus(e);//加载多个图层的graphics};constonStartAsyncNotShow= () => {LocationCtrl.startAsync(MapId,false).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonCheckPermissions= () => {PermissionsUtil.checkPermissions(permissions).then((r: any) =>{console.log(r,'当前请求定位权限结果状态!');changeErrorContent('');changeContent(r);}).catch((e: any) =>{console.log(e,'提出请求申请失败!');changeErrorContent(e);});};constonStartAsyncShow= () => {LocationCtrl.startAsync(MapId,true).then((r: any) =>{changeErrorContent('');LocationCtrl.startGetLocation(MapId,50,5000).then((r: any) =>{console.log('开启等间隔获取定位成功', r);changeErrorContent('');tmpLocateListener =DeviceEventEmitter.addListener(LocationEventType.onPassiveLocationChanged,res=>{changeContent(res);});}).catch((e: any) =>{changeErrorContent(e);});}).catch((e: any) =>{changeErrorContent(e);});// LocationCtrl.startAsync(MapId, true)// .then((r: any) => {// changeErrorContent('');// changeContent(r);// })// .catch((e: any) => {// changeErrorContent(e);// });};constonSetTimerParam= () => {LocationCtrl.setTimerParam(MapId, delay, period).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonStartListenCourseChange= () => {LocationCtrl.startListenCourseChange(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonStopListenCourseChange= () => {LocationCtrl.stopListenCourseChange(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonAddListener= () => {LocationCtrl.addListener(MapId, locationEventType).then((r: any) =>{listenerId = r;changeErrorContent('');tmpLocateListener =DeviceEventEmitter.addListener(locationEventType,r=>{changeContent(r);});}).catch((e: any) =>{changeErrorContent(e);});};constonStartGetLocation= () => {LocationCtrl.startGetLocation(MapId,50,5000).then((r: any) =>{console.log('开启等间隔获取定位成功', r);changeErrorContent('');tmpLocateListener =DeviceEventEmitter.addListener(LocationEventType.onPassiveLocationChanged,res=>{changeContent(res);});}).catch((e: any) =>{changeErrorContent(e);});};constonStopGetLocation= () => {LocationCtrl.stopGetLocation(MapId).then((r: any) =>{console.log('关闭等间隔获取定位成功', r);changeErrorContent('');}).catch((e: any) =>{changeErrorContent(e);});};constonRemoveListener= () => {LocationCtrl.removeListener(MapId, listenerId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonClearListener= () => {LocationCtrl.clearListener(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonIsStarted= () => {LocationCtrl.isStarted(MapId).then((r: any) =>{changeErrorContent('');changeContent(r.toString());}).catch((e: any) =>{changeErrorContent(e);});};constonStopLocation= () => {LocationCtrl2.stopLocation(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetHeading= () => {LocationCtrl.getHeading(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetInitialZoomScale= () => {LocationCtrl.getInitialZoomScale(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonSetInitialZoomScale= () => {LocationCtrl.setInitialZoomScale(MapId, initScale).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetMapLocation= () => {LocationCtrl2.getCurrentLocation().then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonSetAutoPanMode= () => {LocationCtrl.setAutoPanMode(MapId, displayMode).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetAccuracySymbol= () => {LocationCtrl.getAccuracySymbol(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonSetAccuracySymbol= () => {LocationCtrl.setAccuracySymbol(MapId, symbolStr).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetAcquiringSymbol= () => {LocationCtrl.getAcquiringSymbol(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonSetAcquiringSymbol= () => {LocationCtrl.setAcquiringSymbol(MapId, symbolStr).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetCourseSymbol= () => {LocationCtrl.getCourseSymbol(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonSetCourseSymbol= () => {LocationCtrl.setCourseSymbol(MapId, symbolStr).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonGetDefaultSymbol= () => {LocationCtrl.getDefaultSymbol(MapId).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};constonSetDefaultSymbol= () => {LocationCtrl.setDefaultSymbol(MapId, imageBse64).then((r: any) =>{changeErrorContent('');changeContent(r);}).catch((e: any) =>{changeErrorContent(e);});};


React Native for Arcgis 地图开发 LocationCtrl (十五) - 小专栏

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容