百度地圖集成

1.申請(qǐng)密鑰(key)

http://lbsyun.baidu.com/apiconsole/key

第一步:打開API控制臺(tái),如下圖所示:

第二步:點(diǎn)擊創(chuàng)建應(yīng)用,開始申請(qǐng)開發(fā)密鑰,如下圖:


第三步:填寫應(yīng)用名稱、應(yīng)用類型注意選擇“iOS SDK”、正確填寫安全碼,點(diǎn)擊確認(rèn),系統(tǒng)將會(huì)自動(dòng)幫您生成相應(yīng)的開發(fā)密鑰:


安全碼簡(jiǎn)介

在申請(qǐng)開發(fā)密鑰的時(shí)候,需要填寫對(duì)應(yīng)工程的安全碼。這里的安全碼指的是該應(yīng)用的Bundle Identifier,獲取方式如下: Xcode切換到Summary標(biāo)簽查看Bundle Identifier

如下圖示:

2.注意事項(xiàng)

1.1 工程中至少有一個(gè).mm后綴的源文件(您可以將任意一個(gè).m后綴的文件改名為.mm)

1.2 在工程屬性中指定編譯方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并將其設(shè)置為"Objective-C++"

2 在工程屬性中顯式設(shè)定:在Xcode的Project -> Edit Active Target -> Build Setting -> Other Linker Flags中添加-ObjC

3 導(dǎo)入第三方openssl靜態(tài)庫(kù):libssl.a和libcrypto.a(SDK打好的包存放于thirdlib目錄下)

4 在"Info.plist"中進(jìn)行如下配置,否則不能調(diào)起百度地圖客戶端。

5 管理地圖的生命周期

-(void)viewWillAppear:(BOOL)animated

{

[_mapView viewWillAppear];

_mapView.delegate = self; // 此處記得不用的時(shí)候需要置nil,否則影響內(nèi)存的釋放

}

-(void)viewWillDisappear:(BOOL)animated

{

[_mapView viewWillDisappear];

_mapView.delegate = nil; // 不用時(shí),置nil

}

6.在info.plist里添加(以下二選一,兩個(gè)都添加默認(rèn)使用NSLocationWhenInUseUsageDescription):


7.在info.plist中添加:Bundle display name ,且其值不能為空(Xcode6新建的項(xiàng)目沒有此配置,若沒有會(huì)造成manager start failed)

8.項(xiàng)目中添加mapapi.bundle文件以及添加方法正確

3配置環(huán)境

第一步、根據(jù)需要導(dǎo)入 .framework包

在 TARGETS->Build Phases-> Link Binary With Libaries中點(diǎn)擊“+”按鈕,在彈出的窗口中點(diǎn)擊“Add Other”按鈕,選擇BaiduMapAPI_**.framework添加到工程中。

第二步、引入所需的系統(tǒng)庫(kù)

CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework、libsqlite3.0.tbd(xcode7以前為 libsqlite3.0.dylib)、CoreTelephony.framework 、libstdc++.6.0.9.tbd(xcode7以前為libstdc++.6.0.9.dylib)。

添加方式: 在Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries,添加這幾個(gè)系統(tǒng)庫(kù)即可。

第三步、引入所需的第三方openssl庫(kù):

添加支持HTTPS所需的penssl靜態(tài)庫(kù):libssl.a和libcrypto.a(SDK打好的包存放于thirdlib目錄下)

添加方法: 在 TARGETS->Build Phases-> Link Binary With Libaries中點(diǎn)擊“+”按鈕,在彈出的窗口中點(diǎn)擊“Add Other”按鈕,選擇libssl.a和libcrypto.a添加到工程中

第四步、環(huán)境配置

在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。

第五步、引入mapapi.bundle資源文件

方法:選中工程名,在右鍵菜單中選擇Add Files to “工程名”…,從BaiduMapAPI_Map.framework||Resources文件中選擇mapapi.bundle文件,并勾選“Copy items if needed”復(fù)選框,單擊“Add”按鈕,將資源文件添加到工程中。

第六步、引入頭文件在使用SDK的類?

按需 引入下邊的頭文件:


4.集成百度地圖的導(dǎo)航功能

1: 在使用該套SDK之前,需先申請(qǐng)密鑰(ak)才可使用,接口(除發(fā)送短信功能外)無(wú)使用次數(shù)限制。

2iOS導(dǎo)航SDK資源包

http://lbsyun.baidu.com/index.php?title=ios-navsdk/sdkios-nav-download

3.將SDK和Framework添加進(jìn)工程

baiduNaviSDK文件夾添加到工程中,把AudioToolbox.framework、ImageIO.framework、CoreMotion.framework、CoreLocation.framework、CoreTelephony.framework、MediaPlayer.framework、AVFoundation.framework、SystemConfiguration.framework、JavaScriptCore.framework、Security.framework 、OpenGLES.framework 、GLKit.framework 、libstdc++6.0.9.dylib、libc++.tbd、libsqlite3.0.tbd、libz.1.2.5.tbd這幾個(gè)framework添加到工程中

4.修改Build Settings設(shè)置項(xiàng)

在Build Settings中, “Other Linker Flags”添加“-ObjC” 標(biāo)識(shí)

5.配置.plist文件


5.appdelegate寫入一下代碼

#import//引入地圖功能所有的頭文件#import "BNCoreServices.h"@interface AppDelegate ()//百度地圖管理者

@property(nonatomic,strong) BMKMapManager *mapManager;

@end

@implementation AppDelegate

//懶加載

-(BMKMapManager *)mapManager

{

if (_mapManager==nil){

_mapManager=[[BMKMapManager alloc] init];

}

return _mapManager;

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

// 要使用百度地圖,請(qǐng)先啟動(dòng)BaiduMapManager

BOOL flag = [self.mapManager start:@"v67SHkNTcSjiKvGoOhBC95m5haIm6bRz" generalDelegate:self];

if (flag == NO) {

NSLog(@"manager start failed!");

}

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

ViewController *vc =[[ViewController alloc] init];

vc.view.backgroundColor = [UIColor whiteColor];

self.window.rootViewController = vc;

[self.window makeKeyAndVisible];

// 初始化導(dǎo)航SDK

/* TTS授權(quán)失敗

1.不能使用模擬器

2.項(xiàng)目名稱不能為中文(工程->build Setting-> product name)

3.必須開啟語(yǔ)音播報(bào)功能(添加到一個(gè)白名單中)

崩潰原因 View controller-based status bar appearance 設(shè)置為NO

*/

[[BNCoreServices GetInstance] initServices:@"v67SHkNTcSjiKvGoOhBC95m5haIm6bRz"];

[[BNCoreServices GetInstance] startServicesAsyn:nil fail:nil];

return YES;

}

- (void)applicationWillResignActive:(UIApplication *)application {

[BMKMapView willBackGround];//當(dāng)應(yīng)用即將后臺(tái)時(shí)調(diào)用,停止一切調(diào)用opengl相關(guān)的操作

}

- (void)applicationDidBecomeActive:(UIApplication *)application {

[BMKMapView didForeGround];//當(dāng)應(yīng)用恢復(fù)前臺(tái)狀態(tài)時(shí)調(diào)用,回復(fù)地圖的渲染和opengl相關(guān)的操作

}

@end


6 在調(diào)用百度map中使用

#import//引入計(jì)算工具所有的頭文件#import#import "FAITHBaiDuMapTool.h"@interface ViewController ()/* 地圖視圖 */@property(nonatomic,weak) BMKMapView *mapView;/* 定位服務(wù) */@property(nonatomic,strong) BMKLocationService *locService ;/* 定位服務(wù) */@property(nonatomic,strong) BMKUserLocation *userLocation ;@end@implementation ViewController-(BMKLocationService *)locService{? ? if (_locService == nil) {? ? ? ? //初始化BMKLocationService? ? ? ? _locService = [[BMKLocationService alloc]init];? ? ? ? _locService.delegate = self;? ? ? ? //啟動(dòng)LocationService? ? ? ? [_locService startUserLocationService];? ? }? ? return _locService;}- (void)viewDidLoad {? ? [super viewDidLoad];? ? // Do any additional setup after loading the view, typically from a nib.? ? BMKMapView *mapView = [[BMKMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];? ? ? ? [self.view addSubview:mapView];? ? self.mapView = mapView;? ? ? ? [self locService];? ? ? ? _mapView.showsUserLocation = NO;? ? _mapView.userTrackingMode = BMKUserTrackingModeFollow;? ? _mapView.showsUserLocation = YES;? ? }-(void)viewWillAppear:(BOOL)animated {? ? [_mapView viewWillAppear];? ? _mapView.delegate = self; // 此處記得不用的時(shí)候需要置nil,否則影響內(nèi)存的釋放? ? _locService.delegate = self;}-(void)viewWillDisappear:(BOOL)animated {? ? [_mapView viewWillDisappear];? ? _mapView.delegate = nil; // 不用時(shí),置nil? ? _locService.delegate = nil;}/** *在地圖View將要啟動(dòng)定位時(shí),會(huì)調(diào)用此函數(shù) *@param mapView 地圖View */- (void)willStartLocatingUser{? ? NSLog(@"start locate");}/** *用戶方向更新后,會(huì)調(diào)用此函數(shù) *@param userLocation 新的用戶位置 */- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation{? ? [_mapView updateLocationData:userLocation];}/** *用戶位置更新后,會(huì)調(diào)用此函數(shù) *@param userLocation 新的用戶位置 */- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation{? ? self.userLocation = userLocation;? ? [_mapView updateLocationData:userLocation];? ? //設(shè)置區(qū)域? ? BMKCoordinateRegion region = BMKCoordinateRegionMake(userLocation.location.coordinate, BMKCoordinateSpanMake(0.01, 0.01));? ? [_mapView setRegion:region];}/** *在地圖View停止定位后,會(huì)調(diào)用此函數(shù) *@param mapView 地圖View */- (void)didStopLocatingUser{? ? NSLog(@"stop locate");}/** *定位失敗后,會(huì)調(diào)用此函數(shù) *@param mapView 地圖View *@param error 錯(cuò)誤號(hào),參考CLError.h中定義的錯(cuò)誤號(hào) */- (void)didFailToLocateUserWithError:(NSError *)error{? ? NSLog(@"location error");}- (void)dealloc {? ? if (_mapView) {? ? ? ? _mapView = nil;? ? }}/// 長(zhǎng)按地圖的時(shí)候會(huì)來到該方法////// - Parameters:///? - mapView: 地圖視圖///? - coordinate: 點(diǎn)擊的經(jīng)緯度-(void)mapview:(BMKMapView *)mapView onLongClick:(CLLocationCoordinate2D)coordinate{? ? //進(jìn)行POI檢索? ? [[FAITHBaiDuMapTool shareInstance] poiSearchWithLocation:coordinate keyword:@"酒店" resultBlock:^(BMKPoiInfo *poiInfos, NSString *error) {? ? ? ? if (error != nil) {? ? ? ? ? ? return ;? ? ? ? }? ? ? ? for (BMKPoiInfo *poiInfo in poiInfos) {? ? ? ? ? ? //添加一個(gè)PointAnnotation? ? ? ? ? ? BMKPointAnnotation *annotation = [[BMKPointAnnotation alloc] init];? ? ? ? ? ? annotation.coordinate = poiInfo.pt;//該點(diǎn)POI的坐標(biāo)? ? ? ? ? ? annotation.title = poiInfo.name;//該點(diǎn)POI的名稱? ? ? ? ? ? annotation.subtitle = poiInfo.address;//該點(diǎn)POI的地址? ? ? ? ? ? [mapView addAnnotation:annotation];? ? ? ? }? ? }];? ? ? //設(shè)置區(qū)域? ? BMKCoordinateRegion region = BMKCoordinateRegionMake(coordinate, BMKCoordinateSpanMake(0.05, 0.05));? ? [mapView setRegion:region];? }/// 當(dāng)添加一個(gè)大頭針數(shù)據(jù)模型的時(shí)候,會(huì)來到該方法,創(chuàng)建對(duì)應(yīng)的大頭針視圖并返回////// - Parameters:///? - mapView: 地圖視圖///? - annotation: 大頭針數(shù)據(jù)模型/// - Returns: 大頭針視圖-(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id)annotation

{

if ([annotation isKindOfClass:[BMKPointAnnotation class]]) {

BMKPinAnnotationView *newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"newAnnotation"];

newAnnotation.pinColor = BMKPinAnnotationColorPurple;

newAnnotation.animatesDrop = YES;

return newAnnotation;

}

return nil;

}

/// 當(dāng)點(diǎn)擊大頭針上面的彈框的時(shí)候就會(huì)來到該方法

///

/// - Parameters:

///? - mapView: 地圖視圖

///? - view: 大頭針視圖

-(void)mapView:(BMKMapView *)mapView annotationViewForBubble:(BMKAnnotationView *)view

{

[[FAITHBaiDuMapTool shareInstance] startNavigationWithView:view userLocation:self.userLocation];

}


FAITHBaiDu地圖工具類

#import#import//引入地圖功能所有的頭文件#import//引入檢索功能所有的頭文件

@interface FAITHBaiDuMapTool : NSObject

/*

單例模式

*/

+(instancetype)shareInstance;

/*

POI周邊檢索

*/

-(void)poiSearchWithLocation:(CLLocationCoordinate2D)location keyword:(NSString *)keyword resultBlock:(void (^)(BMKPoiInfo *,NSString *))resultBlock;

/*

POI詳情檢索

*/

-(void)poiDeatilSearchWithLocation:(CLLocationCoordinate2D)location poiUid:(NSString *)poiUid resultBlock:(void (^)(BMKPoiInfo *,NSString *))resultBlock;

/*

導(dǎo)航

*/

-(void)startNavigationWithView:(BMKAnnotationView *)view userLocation:(BMKUserLocation *)userLocation;

@end


#import "FAITHBaiDuMapTool.h"#import "BNCoreServices.h"@interface FAITHBaiDuMapTool ()@property(nonatomic,strong) BMKPoiSearch *poiSearch;

//block

@property(nonatomic,strong) void(^resultBlock) (BMKPoiInfo *,NSString *);

@end

@implementation FAITHBaiDuMapTool

static FAITHBaiDuMapTool *_instance = nil ;

+(instancetype)shareInstance

{

FAITHBaiDuMapTool *_instance = [[self alloc] init];

return _instance;

}

+ (instancetype)allocWithZone:(struct _NSZone *)zone

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_instance = [[super allocWithZone:zone] init];

});

return _instance;

}

- (id)copyWithZone:(NSZone *)zone{

return _instance;

}

- (id)mutableCopyWithZone:(NSZone *)zone

{

return _instance;

}

//懶加載:設(shè)置檢索對(duì)象

-(BMKPoiSearch *)poiSearch

{

if (_poiSearch == nil) {

_poiSearch = [[BMKPoiSearch alloc] init];

_poiSearch.delegate = self;

}

return _poiSearch;

}

/**

檢索周邊的POI

*/

-(void)poiSearchWithLocation:(CLLocationCoordinate2D)location keyword:(NSString *)keyword resultBlock:(void (^)(BMKPoiInfo *,NSString *))resultBlock {

self.resultBlock = resultBlock;

//POI檢索-發(fā)起檢索

BMKNearbySearchOption *nearbySearchOption = [[BMKNearbySearchOption alloc] init];

nearbySearchOption.pageIndex = 0;//檢索頁(yè)

nearbySearchOption.pageCapacity = 20;//檢索數(shù)量

nearbySearchOption.location = location;//從介個(gè)經(jīng)緯度坐標(biāo)開始周邊搜索

nearbySearchOption.keyword = keyword;//檢索關(guān)鍵字

//開始檢索

BOOL flag = [self.poiSearch poiSearchNearBy:nearbySearchOption];

if (flag) {

NSLog(@"周邊檢索發(fā)送成功");

}else

{

NSLog(@"周邊檢索發(fā)送失敗");

}

}

/**

檢索詳情的POI

*/

-(void)poiDeatilSearchWithLocation:(CLLocationCoordinate2D)location poiUid:(NSString *)poiUid resultBlock:(void (^)(BMKPoiInfo *,NSString *))resultBlock {

self.resultBlock = resultBlock;

//POI詳情檢索

BMKPoiDetailSearchOption* poiDeatilSearchOption = [[BMKPoiDetailSearchOption alloc] init];

poiDeatilSearchOption.poiUid = poiUid;//POI搜索結(jié)果中獲取的uid

BOOL flag = [_poiSearch poiDetailSearch:poiDeatilSearchOption];

if(flag)

{

//詳情檢索發(fā)起成功

}

else

{

//詳情檢索發(fā)送失敗

}

}

// MARK:- 導(dǎo)航

/// 開始導(dǎo)航

/// - Parameter view: 大頭針視圖

-(void)startNavigationWithView:(BMKAnnotationView *)view userLocation:(BMKUserLocation *)userLocation

{

//實(shí)現(xiàn)導(dǎo)航功能

//節(jié)點(diǎn)數(shù)組

NSMutableArray *nodesArray = [NSMutableArray array];

//起點(diǎn)

BNRoutePlanNode *startNode = [[BNRoutePlanNode alloc] init];

startNode.pos = [[BNPosition alloc] init];//起點(diǎn)位置對(duì)象

startNode.pos.x = userLocation.location.coordinate.longitude;//經(jīng)度

startNode.pos.y = userLocation.location.coordinate.latitude;//緯度;

startNode.pos.eType = BNCoordinate_BaiduMapSDK;//坐標(biāo)類型

[nodesArray addObject:startNode];

//終點(diǎn)

BNRoutePlanNode *endNode = [[BNRoutePlanNode alloc] init];

endNode.pos = [[BNPosition alloc] init];//終點(diǎn)位置

endNode.pos.x = view.annotation.coordinate.longitude;//經(jīng)度

endNode.pos.y = view.annotation.coordinate.latitude;//緯度;

endNode.pos.eType = BNCoordinate_BaiduMapSDK;

[nodesArray addObject:endNode];

//發(fā)起路徑規(guī)劃

//算路方式,定義見BNRoutePlanMode

//naviNodes:算路節(jié)點(diǎn)數(shù)組,起點(diǎn)、途經(jīng)點(diǎn)、終點(diǎn)按順序排列,節(jié)點(diǎn)信息為BNRoutePlanNode結(jié)構(gòu)

//naviTime:發(fā)起算路時(shí)間,用于優(yōu)化算路結(jié)果,可以為nil

//delegate:算路委托,用于回調(diào)

//userInfo:用戶需要傳入的參數(shù)

[[BNCoreServices RoutePlanService] startNaviRoutePlan:BNRoutePlanMode_Recommend naviNodes:nodesArray time:nil delegete:self userInfo:nil];

}

// MARK: - BNNaviRoutePlanDelegate

//算路成功回調(diào)

-(void)routePlanDidFinished:(NSDictionary *)userInfo

{

[[BNCoreServices UIService] showPage:BNaviUI_NormalNavi delegate:self extParams:nil];

}

//算路失敗回調(diào)

- (void)routePlanDidFailedWithError:(NSError *)error andUserInfo:(NSDictionary *)userInfo

{

NSLog(@"算路失敗");

switch ([error code]%10000)

{

case BNAVI_ROUTEPLAN_ERROR_LOCATIONFAILED:

NSLog(@"暫時(shí)無(wú)法獲取您的位置,請(qǐng)稍后重試");

break;

case BNAVI_ROUTEPLAN_ERROR_ROUTEPLANFAILED:

NSLog(@"無(wú)法發(fā)起導(dǎo)航");

break;

case BNAVI_ROUTEPLAN_ERROR_LOCATIONSERVICECLOSED:

NSLog(@"定位服務(wù)未開啟,請(qǐng)到系統(tǒng)設(shè)置中打開定位服務(wù)。");

break;

case BNAVI_ROUTEPLAN_ERROR_NODESTOONEAR:

NSLog(@"起終點(diǎn)距離起終點(diǎn)太近");

break;

default:

NSLog(@"算路失敗");

break;

} }

//算路取消

-(void)routePlanDidUserCanceled:(NSDictionary*)userInfo {

NSLog(@"算路取消");

}

// MARK: - BNNaviUIManagerDelegate

-(void)onExitPage:(BNaviUIType)pageType extraInfo:(NSDictionary *)extraInfo

{

NSLog(@"退出導(dǎo)航頁(yè)面");

}

// MARK: - BMKPoiSearchDelegate

/*

周邊檢索監(jiān)聽結(jié)果

*/

-(void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPoiResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode

{

if(errorCode == BMK_SEARCH_NO_ERROR) {

NSLog(@"檢索到了");//處理正常的結(jié)果

BMKPoiInfo *poiInfos = (BMKPoiInfo *)poiResult.poiInfoList;

//回調(diào)

self.resultBlock(poiInfos,nil);

}else if (errorCode == BMK_SEARCH_AMBIGUOUS_KEYWORD){

//當(dāng)在設(shè)置城市未找到結(jié)果,但在其他城市找到結(jié)果時(shí),回調(diào)建議檢索城市列表

// result.cityList;

self.resultBlock(nil,@"起始點(diǎn)有歧義");

}else{

self.resultBlock(nil,@"抱歉沒找到結(jié)果");

}

}

/*

詳細(xì)檢索監(jiān)聽結(jié)果

*/

-(void)onGetPoiDetailResult:(BMKPoiSearch *)searcher result:(BMKPoiDetailResult *)poiDetailResult errorCode:(BMKSearchErrorCode)errorCode

{

if(errorCode == BMK_SEARCH_NO_ERROR){

NSLog(@"檢索到了");//處理正常的結(jié)果

}else if (errorCode == BMK_SEARCH_AMBIGUOUS_KEYWORD){

//當(dāng)在設(shè)置城市未找到結(jié)果,但在其他城市找到結(jié)果時(shí),回調(diào)建議檢索城市列表

// result.cityList;

//? ? ? ? self.resultBlock(nil,@"起始點(diǎn)有歧義");

}else{

//? ? ? ? self.resultBlock(nil,@"抱歉沒找到結(jié)果");

}

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,011評(píng)論 3 413
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,323評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,874評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評(píng)論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,095評(píng)論 0 286
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,605評(píng)論 1 331
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,551評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,720評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,961評(píng)論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評(píng)論 1 280
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,330評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,690評(píng)論 2 370

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