iOS百度地圖開發(fā)之路徑規(guī)劃

路線規(guī)劃

示例程序

使用百度地圖SDK版本為2.9.1。
需要將改

代碼:

#import <MapKit/MapKit.h>
#import <BaiduMapAPI_Map/BMKMapView.h>
#import <BaiduMapAPI_Location/BMKLocationService.h>
#import <BaiduMapAPI_Search/BMKSearchComponent.h>
#import <BaiduMapAPI_Map/BMKPolylineView.h>
#import <BaiduMapAPI_Utils/BMKGeometry.h>
#import "HXRouteViewController.h"
#import "UIView+Extension.h"
#import "HXAnnotationView.h"
#import "HXAnnotation.h"
#import "HXMenDDetail.h"
#import "UIImage+Rotate.h"
#import "UIColor+HexString.h"
#import "FMActionSheet.h"
#import "ZoomInOrOutButton.h"

#define MYBUNDLE_NAME @ "mapapi.bundle"
#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME]
#define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]

/**
 *  路線的標(biāo)注
 */
@interface RouteAnnotation : BMKPointAnnotation
{
    int _type; ///<0:起點(diǎn) 1:終點(diǎn) 2:公交 3:地鐵 4:駕乘 5:途經(jīng)點(diǎn)
    int _degree;
}

@property (nonatomic) int type;
@property (nonatomic) int degree;
@end

@implementation RouteAnnotation

@synthesize type = _type;
@synthesize degree = _degree;
@end

@interface HXRouteViewController ()<BMKMapViewDelegate, BMKRouteSearchDelegate>{
    BMKMapView *_mapView;
    NSString *_cityName;
    BMKRouteSearch *_routesearch;
}

/**
 *  返回按鈕
 */
//@property (nonatomic , weak)UIButton *preBtn;

/**
 *  存放標(biāo)注數(shù)組
 */
@property(nonatomic , strong) NSMutableArray *annotations;

/**
 *  用戶當(dāng)前位置
 */
@property(nonatomic , strong) BMKUserLocation *userLocation;

@property(nonatomic , strong) HXAnnotation *anno;

@end

@implementation HXRouteViewController

- (NSString*)getMyBundlePath1:(NSString *)filename
{
    
    NSBundle * libBundle = MYBUNDLE ;
    if ( libBundle && filename ){
        NSString * s=[[libBundle resourcePath ] stringByAppendingPathComponent:filename];
        return s;
    }
    return nil ;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    UIView *statusView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREENW, 20)];
    statusView.backgroundColor = [UIColor colorWithR:46 G:139 B:84 alpha:1.];
    [self.view addSubview:statusView];
    
    _routesearch = [[BMKRouteSearch alloc] init];
    _routesearch.delegate = self;
    
    //初始化BMKMapView并設(shè)置代理
    _mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 20, SCREENW, SCREENH - 140)];
    [self.view addSubview:_mapView];
    _mapView.delegate = self;
    
    _mapView.buildingsEnabled = YES;
    _mapView.overlookEnabled = YES;
    _mapView.showMapScaleBar = YES;
    _mapView.overlooking = -45;
    
    //設(shè)置放大/縮小按鈕
    [self setupNavButton];
    //返回按鈕
    [self backButton];
    //設(shè)置導(dǎo)航按鈕
//    [self setupNavButton];
    //駕車路線
    [self showDriveSearch];
    //設(shè)置放大/縮小按鈕
    [self setupZoomButton];
}

#pragma mark 設(shè)置放大/縮小按鈕
-(void)setupZoomButton{
    ZoomInOrOutButton *zoomInOrOutBtn = [[[NSBundle mainBundle] loadNibNamed:@"ZoomInOrOutButton" owner:nil options:nil] lastObject];
    zoomInOrOutBtn.layer.cornerRadius = 5;
    
    zoomInOrOutBtn.x = SCREENW - 110;
    zoomInOrOutBtn.y = _mapView.height - 50;
    [_mapView addSubview:zoomInOrOutBtn];
    [zoomInOrOutBtn.zoomInBtn addTarget:self action:@selector(zoomInBtnClick:) forControlEvents:UIControlEventTouchUpInside];
    zoomInOrOutBtn.zoomInBtn.tag = 0;
    [zoomInOrOutBtn.zoomOutBtn addTarget:self action:@selector(zoomInBtnClick:) forControlEvents:UIControlEventTouchUpInside];
    zoomInOrOutBtn.zoomInBtn.tag = 1;
}

#pragma mark 點(diǎn)擊放大按鈕
-(void)zoomInBtnClick:(UIButton *)sender{
    _mapView.zoomLevel = sender.tag ? _mapView.zoomLevel++ : _mapView.zoomLevel--;
}

#pragma mark 返回按鈕
-(void)backButton{
    
    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 30, 30, 40)];
    [backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
    backButton.backgroundColor = [UIColor blackColor];
    backButton.layer.cornerRadius = 5;
    backButton.alpha = 0.7;
    [backButton bringSubviewToFront:_mapView];
    [backButton initSpringTouch];
    [self.view addSubview:backButton];
    [backButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
}

#pragma mark 返回
-(void)goBack{
    [self dismissViewControllerAnimated:YES completion:nil];
}

#pragma mark 導(dǎo)航按鈕
-(void)setupNavButton{
    
    UIView *bgView = [[UIView alloc] init];
    bgView.frame = CGRectMake(0, SCREENH - 120, SCREENW, 120);
    bgView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:bgView];
    
    CGFloat viewX = 15;
    
    UILabel *shopLabel = [[UILabel alloc] initWithFrame:CGRectMake(viewX, 5, SCREENW - 30, 25)];
    shopLabel.text = [NSString stringWithFormat:@"門店名稱:%@",self.mendDetail.shopName];
    shopLabel.textColor = [UIColor blackColor];
    shopLabel.font = [UIFont systemFontOfSize:15];
    [bgView addSubview:shopLabel];
    
    UILabel *addressLabel = [[UILabel alloc] initWithFrame:CGRectMake(viewX, 30, SCREENW - 30, 25)];
    addressLabel.text = [NSString stringWithFormat:@"門店地址:%@",self.mendDetail.address];
    addressLabel.textColor = [UIColor lightGrayColor];
    addressLabel.font = [UIFont systemFontOfSize:14];
    [bgView addSubview:addressLabel];
    
    UIButton *navButton = [[UIButton alloc] init];
    navButton.frame = CGRectMake(15, 65, SCREENW - 30, 40);
    [navButton setTitle:@"導(dǎo)航" forState:UIControlStateNormal];
    [navButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [navButton.layer setMasksToBounds:YES];
    [navButton.layer setCornerRadius:6];
    [navButton.layer setBorderWidth:1.0];
    [navButton initSpringTouch];
    //設(shè)置按鈕的邊界顏色
    CGColorRef color = [UIColor colorWithR:46 G:139 B:84 alpha:1.].CGColor;
    [navButton.layer setBorderColor:color];
    [navButton addTarget:self action:@selector(navButtonClick) forControlEvents:UIControlEventTouchUpInside];
    [bgView addSubview:navButton];
}

#pragma mark彈出選擇框
-(void)navButtonClick{
    //彈出框
    FMActionSheet *sheet = [[FMActionSheet alloc] initWithTitle:@"導(dǎo)航方式" buttonTitles:[NSArray arrayWithObjects:@"用手機(jī)自帶地圖導(dǎo)航", @"百度地圖", nil] cancelButtonTitle:@"取消" delegate:(id<FMActionSheetDelegate>)self];
    sheet.tag = 103;
    sheet.titleFont = [UIFont systemFontOfSize:15];
    sheet.titleBackgroundColor = [UIColor colorWithHexString:@"f4f5f8"];
    sheet.titleColor = [UIColor colorWithHexString:@"666666"];
    sheet.lineColor = [UIColor colorWithHexString:@"dbdce4"];
    [sheet show];
    
}

- (void)actionSheet:(FMActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 0) {
        //打開系統(tǒng)自帶的地圖
        [self openIOSMapNav];
    } else if (buttonIndex == 1) {
        //打開百度地圖客戶端導(dǎo)航
        [self opsenBaiduMap];
    }
}

#pragma mark 打開系統(tǒng)自帶的地圖
-(void)openIOSMapNav{
    CLLocationCoordinate2D endCoor = CLLocationCoordinate2DMake([self.mendDetail.dimensions doubleValue], [self.mendDetail.longitude doubleValue]);
    MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];
    MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:endCoor addressDictionary:nil]];
    toLocation.name = self.mendDetail.shopName;
    [MKMapItem openMapsWithItems:@[currentLocation, toLocation] launchOptions:@{MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsShowsTrafficKey: [NSNumber numberWithBool:YES]}];
}

-(void)opsenBaiduMap{
    double latitude =self.coordinate.latitude;
    double longitude =self.coordinate.longitude;
    NSString *urlString = [NSString stringWithFormat:@"baidumap://map/direction?origin=%f,%f&destination=%@,%@&mode=driving&region=北京",latitude,longitude,self.mendDetail.dimensions,self.mendDetail.longitude];
    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *mapUrl = [NSURL URLWithString:urlString];
    if ([[UIApplication sharedApplication] canOpenURL:mapUrl]) {
        [[UIApplication sharedApplication] openURL:mapUrl];
    } else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您的手機(jī)沒有安裝百度地圖" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];
        [alert show];
    }
    
}

- (UIColor *)actionSheet:(FMActionSheet *)actionSheet buttonTextColorAtIndex:(NSInteger)bottonIndex{
    UIColor *textColor = [UIColor colorWithR:41 G:140 B:82 alpha:1.];
    return textColor;
}

#pragma mark -顯示大頭針
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation{
    
    if (![annotation isKindOfClass:[RouteAnnotation class]]) return nil;
    return [self getRouteAnnotationView:mapView viewForAnnotation:(RouteAnnotation *)annotation];
}

#pragma mark 獲取路線的標(biāo)注督怜,顯示到地圖
- (BMKAnnotationView*)getRouteAnnotationView:(BMKMapView *)mapview viewForAnnotation:(RouteAnnotation*)routeAnnotation{
    
    BMKAnnotationView *view = nil;
    switch (routeAnnotation.type) {
        case 0:
        {
            view = [mapview dequeueReusableAnnotationViewWithIdentifier:@"start_node"];
            if (view == nil) {
                view = [[BMKAnnotationView alloc] initWithAnnotation:routeAnnotation reuseIdentifier:@"start_node"];
                view.image = [UIImage imageWithContentsOfFile:[self getMyBundlePath1:@"images/icon_nav_start"]];
                view.centerOffset = CGPointMake(0, -(view.frame.size.height * 0.5));
                view.canShowCallout = true;
            }
            view.annotation = routeAnnotation;
        }
            break;
        case 1:
        {
            view = [mapview dequeueReusableAnnotationViewWithIdentifier:@"end_node"];
            if (view == nil) {
                view = [[BMKAnnotationView alloc] initWithAnnotation:routeAnnotation reuseIdentifier:@"end_node"];
                view.image = [UIImage imageWithContentsOfFile:[self getMyBundlePath1:@"images/icon_nav_end"]];
                view.centerOffset = CGPointMake(0, -(view.frame.size.height * 0.5));
                view.canShowCallout = true;
            }
            view.annotation =routeAnnotation;
        }
            break;
        case 4:
        {
            view = [mapview dequeueReusableAnnotationViewWithIdentifier:@"route_node"];
            if (view == nil) {
                view = [[BMKAnnotationView alloc] initWithAnnotation:routeAnnotation reuseIdentifier:@"route_node"];
                view.canShowCallout = true;
            } else {
                [view setNeedsDisplay];
            }
            UIImage *image = [UIImage imageWithContentsOfFile:[self getMyBundlePath1:@"images/icon_direction"]];
            view.image = [image imageRotatedByDegrees:routeAnnotation.degree];
            view.annotation = routeAnnotation;
        }
            break;
        default:
            break;
    }
    return view;
}

#pragma mark 駕車路線
-(void)showDriveSearch{
    //線路檢索節(jié)點(diǎn)信息
    BMKPlanNode *start = [[BMKPlanNode alloc] init];
    start.pt = self.coordinate;
    start.cityName = @"北京市";
    BMKPlanNode *end = [[BMKPlanNode alloc] init];
    CLLocationCoordinate2D endCoordinate = CLLocationCoordinate2DMake([self.mendDetail.dimensions doubleValue], [self.mendDetail.longitude doubleValue]);
    end.pt = endCoordinate;
    end.cityName = @"北京市";
    BMKDrivingRoutePlanOption *drivingRouteSearchOption = [[BMKDrivingRoutePlanOption alloc] init];
    drivingRouteSearchOption.from = start;
    drivingRouteSearchOption.to = end;
    BOOL flag = [_routesearch drivingSearch:drivingRouteSearchOption];
    if (flag) {
    }
}

#pragma mark 返回駕乘搜索結(jié)果
- (void)onGetDrivingRouteResult:(BMKRouteSearch*)searcher result:(BMKDrivingRouteResult*)result errorCode:(BMKSearchErrorCode)error
{
    NSArray* array = [NSArray arrayWithArray:_mapView.annotations];
    [_mapView removeAnnotations:array];
    array = [NSArray arrayWithArray:_mapView.overlays];
    [_mapView removeOverlays:array];
    if (error == BMK_SEARCH_NO_ERROR) {
        //表示一條駕車路線
        BMKDrivingRouteLine* plan = (BMKDrivingRouteLine*)[result.routes objectAtIndex:0];
        // 計(jì)算路線方案中的路段數(shù)目
        int size = (int)[plan.steps count];
        int planPointCounts = 0;
        for (int i = 0; i < size; i++) {
            //表示駕車路線中的一個(gè)路段
            BMKDrivingStep* transitStep = [plan.steps objectAtIndex:i];
            if(i==0){
                RouteAnnotation* item = [[RouteAnnotation alloc]init];
                item.coordinate = plan.starting.location;
                item.title = @"起點(diǎn)";
                item.type = 0;
                [_mapView addAnnotation:item]; // 添加起點(diǎn)標(biāo)注
                
            }else if(i==size-1){
                RouteAnnotation* item = [[RouteAnnotation alloc]init];
                item.coordinate = plan.terminal.location;
                item.title = @"終點(diǎn)";
                item.type = 1;
                [_mapView addAnnotation:item]; // 添加終點(diǎn)標(biāo)注
            }
            //添加annotation節(jié)點(diǎn)
            RouteAnnotation* item = [[RouteAnnotation alloc]init];
            item.coordinate = transitStep.entrace.location;
            item.title = transitStep.entraceInstruction;
            item.degree = transitStep.direction * 30;
            item.type = 4;
            [_mapView addAnnotation:item];
            
            //軌跡點(diǎn)總數(shù)累計(jì)
            planPointCounts += transitStep.pointsCount;
        }
        // 添加途經(jīng)點(diǎn)
        if (plan.wayPoints) {
            for (BMKPlanNode* tempNode in plan.wayPoints) {
                RouteAnnotation* item = [[RouteAnnotation alloc]init];
                item.coordinate = tempNode.pt;
                item.type = 5;
                item.title = tempNode.name;
                [_mapView addAnnotation:item];
            }
        }
        //軌跡點(diǎn)
        BMKMapPoint * temppoints = new BMKMapPoint[planPointCounts];
        int i = 0;
        for (int j = 0; j < size; j++) {
            BMKDrivingStep* transitStep = [plan.steps objectAtIndex:j];
            int k=0;
            for(k=0;k<transitStep.pointsCount;k++) {
                temppoints[i].x = transitStep.points[k].x;
                temppoints[i].y = transitStep.points[k].y;
                i++;
            }
            
        }
        // 通過points構(gòu)建BMKPolyline
        BMKPolyline* polyLine = [BMKPolyline polylineWithPoints:temppoints count:planPointCounts];
        [_mapView addOverlay:polyLine]; // 添加路線overlay
        delete []temppoints;
        [self mapViewFitPolyLine:polyLine];
    }
}

#pragma mark 根據(jù)overlay生成對(duì)應(yīng)的View
-(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay{
    if ([overlay isKindOfClass:[BMKPolyline class]]) {
        BMKPolylineView* polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay];
        polylineView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:1];
        polylineView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
        polylineView.lineWidth = 3.0;
        return polylineView;
    }
    return nil;
}

#pragma mark  根據(jù)polyline設(shè)置地圖范圍
- (void)mapViewFitPolyLine:(BMKPolyline *) polyLine {
    CGFloat ltX, ltY, rbX, rbY;
    
    if (polyLine.pointCount < 1) return;
    BMKMapPoint pt = polyLine.points[0];
    ltX = pt.x, ltY = pt.y;
    rbX = pt.x, rbY = pt.y;
    
    for (int i = 0; i < polyLine.pointCount; i++) {
        BMKMapPoint pt = polyLine.points[i];
        if (pt.x < ltX) {
            ltX = pt.x;
        }
        if (pt.x > rbX) {
            rbX = pt.x;
        }
        if (pt.y > ltY) {
            ltY = pt.y;
        }
        if (pt.y < rbY) {
            rbY = pt.y;
        }
    }
    BMKMapRect rect;
    rect.origin = BMKMapPointMake(ltX , ltY);
    rect.size = BMKMapSizeMake(rbX - ltX, rbY - ltY);
    [_mapView setVisibleMapRect:rect];
    _mapView.zoomLevel = _mapView.zoomLevel - 0.3;
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [_mapView viewWillDisappear];
    _mapView.delegate = nil; // 不用時(shí)抒和,置nil
    _routesearch.delegate = nil;
}

@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末门扇,一起剝皮案震驚了整個(gè)濱河市歹垫,隨后出現(xiàn)的幾起案子娶耍,更是在濱河造成了極大的恐慌,老刑警劉巖擦耀,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棉圈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡眷蜓,警方通過查閱死者的電腦和手機(jī)分瘾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吁系,“玉大人德召,你說(shuō)我怎么就攤上這事∑耍” “怎么了上岗?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蕴坪。 經(jīng)常有香客問我肴掷,道長(zhǎng),這世上最難降的妖魔是什么辞嗡? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任捆等,我火速辦了婚禮,結(jié)果婚禮上续室,老公的妹妹穿的比我還像新娘栋烤。我一直安慰自己,他們只是感情好挺狰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布明郭。 她就那樣靜靜地躺著,像睡著了一般丰泊。 火紅的嫁衣襯著肌膚如雪薯定。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天瞳购,我揣著相機(jī)與錄音话侄,去河邊找鬼。 笑死学赛,一個(gè)胖子當(dāng)著我的面吹牛年堆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盏浇,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼变丧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了绢掰?” 一聲冷哼從身側(cè)響起痒蓬,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤童擎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后攻晒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顾复,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年炎辨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捕透。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碴萧,死狀恐怖乙嘀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情破喻,我是刑警寧澤虎谢,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站曹质,受9級(jí)特大地震影響婴噩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羽德,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一几莽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宅静,春花似錦章蚣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至磷账,卻和暖如春峭沦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逃糟。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工吼鱼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绰咽。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓蛉抓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剃诅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,515評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理驶忌,服務(wù)發(fā)現(xiàn)叠骑,斷路器,智...
    卡卡羅2017閱讀 134,600評(píng)論 18 139
  • 各位小伙伴們大家好龟劲,今天我向大家介紹一下蘋果百度地圖的使用方法棺克,因?yàn)樽鲞^一些想關(guān)的APP,感覺百度地圖還是挺方便的...
    Lee0528閱讀 14,659評(píng)論 18 46
  • 文/雪諾 微信公眾號(hào):迷茫人生路 溫暖是一個(gè)讓你忘記煩惱的習(xí)慣 似乎已經(jīng)習(xí)慣了每天和老媽的視頻聊天了...
    Snow鳳閱讀 446評(píng)論 0 2
  • 感賞兒子渡過愉快的一天排吴,睡到自然醒,自己去買自己想吃的食物,鍛煉處事能力陈哑,出去玩耍,鍛煉身體伸眶,回來(lái)很開心惊窖。玩...
    金色陽(yáng)光魏艷春閱讀 180評(píng)論 0 0