调用地图并带有导航功能的两种最简单方式
2013-08-31 10:50
330 查看
第一种方法先自定义一个webview(我用的XIB直接拖一个webview用iboutlet链接)然后
- (void)viewDidLoad
{
[palceWeb
loadRequest:[NSURLRequest
requestWithURL:[NSURL
URLWithString:[NSString
stringWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",
34.755806
,
113.673187
,
[b]35.055806[/b]
,
114.073187
]]]];
}
就可以直接显示路线并支持自驾、公交、步行三种方式的路线查询同时可以实现导航(如果想要实现跳转页面的效果可以作如下操作)
新建一个controller然后调用presentViewController:beemVC方法即可代码如下
BeemViewController *beemVC=[[BeemViewController alloc]initWithNibName:@"BeemViewController" bundle:nil];
beemVC.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
void(^task)()=^{
NSLog(@"这个页面是=====%@",self);
};
beemVC.homeLat=home.latitude;
beemVC.homeLon=home.longitude;
beemVC.officeLat=office.latitude;
beemVC.officeLon=office.longitude;
//跳转页面将地图放到webview上显示并适时导航
[self presentViewController:beemVC animated:YES completion:task];
第二种方法
摘自网上的调用本机自带的google地图有个弊端(调用地图后无法返回到自己的程序软件下)代码如下
//定义目的地CLLocationCoordinate2D类型
CLLocationCoordinate2D ofice;
ofice.latitude =
office.latitude;
ofice.longitude =
office.longitude;
//调用google地图定位
MKMapItem *currentLocation = [MKMapItem
mapItemForCurrentLocation];
//调用google地图完成导航
MKMapItem *toLocation = [[MKMapItem
alloc] initWithPlacemark:[[MKPlacemark
alloc] initWithCoordinate:ofice
addressDictionary:nil]];
toLocation.name =
@"当前位置";
[MKMapItem
openMapsWithItems:[NSArray
arrayWithObjects:currentLocation, toLocation,
nil]
launchOptions:[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:MKLaunchOptionsDirectionsModeDriving, [NSNumber
numberWithBool:YES],
nil]forKeys:[NSArray
arrayWithObjects:MKLaunchOptionsDirectionsModeKey,
MKLaunchOptionsShowsTrafficKey, nil]]];
-----------------------------------------------------------下面二图为第一种方式的效果图
![](https://img-blog.csdn.net/20130831104817796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmljZWJveWRv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
- (void)viewDidLoad
{
[palceWeb
loadRequest:[NSURLRequest
requestWithURL:[NSURL
URLWithString:[NSString
stringWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",
34.755806
,
113.673187
,
[b]35.055806[/b]
,
114.073187
]]]];
}
就可以直接显示路线并支持自驾、公交、步行三种方式的路线查询同时可以实现导航(如果想要实现跳转页面的效果可以作如下操作)
新建一个controller然后调用presentViewController:beemVC方法即可代码如下
BeemViewController *beemVC=[[BeemViewController alloc]initWithNibName:@"BeemViewController" bundle:nil];
beemVC.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
void(^task)()=^{
NSLog(@"这个页面是=====%@",self);
};
beemVC.homeLat=home.latitude;
beemVC.homeLon=home.longitude;
beemVC.officeLat=office.latitude;
beemVC.officeLon=office.longitude;
//跳转页面将地图放到webview上显示并适时导航
[self presentViewController:beemVC animated:YES completion:task];
第二种方法
摘自网上的调用本机自带的google地图有个弊端(调用地图后无法返回到自己的程序软件下)代码如下
//定义目的地CLLocationCoordinate2D类型
CLLocationCoordinate2D ofice;
ofice.latitude =
office.latitude;
ofice.longitude =
office.longitude;
//调用google地图定位
MKMapItem *currentLocation = [MKMapItem
mapItemForCurrentLocation];
//调用google地图完成导航
MKMapItem *toLocation = [[MKMapItem
alloc] initWithPlacemark:[[MKPlacemark
alloc] initWithCoordinate:ofice
addressDictionary:nil]];
toLocation.name =
@"当前位置";
[MKMapItem
openMapsWithItems:[NSArray
arrayWithObjects:currentLocation, toLocation,
nil]
launchOptions:[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:MKLaunchOptionsDirectionsModeDriving, [NSNumber
numberWithBool:YES],
nil]forKeys:[NSArray
arrayWithObjects:MKLaunchOptionsDirectionsModeKey,
MKLaunchOptionsShowsTrafficKey, nil]]];
-----------------------------------------------------------下面二图为第一种方式的效果图
相关文章推荐
- 实现百度地图(最简单的实现方式,只是将地图显示出来,并没有什么功能)
- 调用Iphone中默认地图的导航功能
- iOS开发—跳转方式实现地图导航功能
- iOS通过CLLocationManager调用地图导航功能
- Android开发 PopupWindow弹窗调用第三方地图(百度,高德)实现导航功能
- iOS 高德室内地图导航功能的简单实现
- 使用hive、java api两种方式实现wordcount功能、及个人感悟
- JSONP和CORS两种常见跨域方式的简单实现
- android实现简单的路线导航功能
- iOS调用地图导航
- Windows下两种方式调用DLL
- 简单的具有shell功能的web服务器(带有缓存加速访问的功能)
- 自定义View中调用控件的两种方式
- Java调用oracle function的两种方式
- android带有文字的图片按钮的两种实现方式
- 简单介绍用JSP来实现文件下载功能的几种方式
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- maven:调用ant执行build.xml的两种方式
- SSIS使用OleDB和Ado.Net两种方式调用 存储过程
- 在ios6中调用苹果地图用于导航