iOS自带地图功能

////  KCMainViewController.m//  AppleMap////  Created by Kenshin Cui on 14/3/27.//  Copyright (c) 2014年 Kenshin Cui. All rights reserved.//#import "KCMainViewController.h"#import#import@interface KCMainViewController ()

@property (nonatomic,strong) CLGeocoder *geocoder;

@end

@implementation KCMainViewController

- (void)viewDidLoad {

[super viewDidLoad];

_geocoder=[[CLGeocoder alloc]init];

[self listPlacemark];

}

#pragma mark 在地图上定位

-(void)location{

//根据“北京市”进行地理编码

[_geocoder geocodeAddressString:@"北京市" completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *clPlacemark=[placemarks firstObject];//获取第一个地标

MKPlacemark *mkplacemark=[[MKPlacemark alloc]initWithPlacemark:clPlacemark];//定位地标转化为地图的地标

NSDictionary *options=@{MKLaunchOptionsMapTypeKey:@(MKMapTypeStandard)};

MKMapItem *mapItem=[[MKMapItem alloc]initWithPlacemark:mkplacemark];

[mapItem openInMapsWithLaunchOptions:options];

}];

}

-(void)listPlacemark{

//根据“北京市”进行地理编码

[_geocoder geocodeAddressString:@"北京市" completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *clPlacemark1=[placemarks firstObject];//获取第一个地标

MKPlacemark *mkPlacemark1=[[MKPlacemark alloc]initWithPlacemark:clPlacemark1];

//注意地理编码一次只能定位到一个位置,不能同时定位,所在放到第一个位置定位完成回调函数中再次定位

[_geocoder geocodeAddressString:@"郑州市" completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *clPlacemark2=[placemarks firstObject];//获取第一个地标

MKPlacemark *mkPlacemark2=[[MKPlacemark alloc]initWithPlacemark:clPlacemark2];

NSDictionary *options=@{MKLaunchOptionsMapTypeKey:@(MKMapTypeStandard)};

//MKMapItem *mapItem1=[MKMapItem mapItemForCurrentLocation];//当前位置

MKMapItem *mapItem1=[[MKMapItem alloc]initWithPlacemark:mkPlacemark1];

MKMapItem *mapItem2=[[MKMapItem alloc]initWithPlacemark:mkPlacemark2];

[MKMapItem openMapsWithItems:@[mapItem1,mapItem2] launchOptions:options];

}];

}];

}

-(void)turnByTurn{

//根据“北京市”进行地理编码

[_geocoder geocodeAddressString:@"北京市" completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *clPlacemark1=[placemarks firstObject];//获取第一个地标

MKPlacemark *mkPlacemark1=[[MKPlacemark alloc]initWithPlacemark:clPlacemark1];

//注意地理编码一次只能定位到一个位置,不能同时定位,所在放到第一个位置定位完成回调函数中再次定位

[_geocoder geocodeAddressString:@"郑州市" completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *clPlacemark2=[placemarks firstObject];//获取第一个地标

MKPlacemark *mkPlacemark2=[[MKPlacemark alloc]initWithPlacemark:clPlacemark2];

NSDictionary *options=@{MKLaunchOptionsMapTypeKey:@(MKMapTypeStandard),MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving};

//MKMapItem *mapItem1=[MKMapItem mapItemForCurrentLocation];//当前位置

MKMapItem *mapItem1=[[MKMapItem alloc]initWithPlacemark:mkPlacemark1];

MKMapItem *mapItem2=[[MKMapItem alloc]initWithPlacemark:mkPlacemark2];

[MKMapItem openMapsWithItems:@[mapItem1,mapItem2] launchOptions:options];

}];

}];

}


/**********************************************************/

ios开发中常常会用到地图控件MKMapView,可以用如下方法在点击MKMapView中某点的时候获取改点的经纬度:假如声明了一个MKMapView为myMapView1、在地图中添加一个手势,这个手势是一个点击动作,点击时会调用tapPress这个方法

UITapGestureRecognizer *mTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPress:)];

[myMapView addGestureRecognizer:mTap];[mTap release];

2、接下来就可以在tapPress这个方法中进行转换了

- (void)tapPress:(UIGestureRecognizer*)gestureRecognizer

{

CGPoint touchPoint = [gestureRecognizer locationInView:myMapView];

//这里touchPoint是点击的某点在地图控件中的位置

CLLocationCoordinate2D touchMapCoordinate =[myMapView convertPoint:touchPoint toCoordinateFromView:myMapView];

//这里touchMapCoordinate就是该点的经纬度了}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 现在很多...
    大崔老师阅读 3,320评论 1 2
  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 现在很多社交、...
    JJO阅读 4,176评论 4 19
  • iOS 从6.0开始地图数据不再由谷歌驱动,而是改为自己的地图,当然在国内他的数据还是由高德地图提供。在iOS中进...
    彬至睢阳阅读 471评论 0 0
  • 定位 常用方法的介绍 CLLocationManager位置管理器,我们的有关于位置的方法和属性都是通过它来管理设...
    Joker_King阅读 1,282评论 0 3
  • 刚刚过去的周五晚,和一帮同频的爸爸妈妈们一起讨论孩子教育的话题,聆听博瑞智资深讲师杨老师关于如何正确爱的分解。享受...
    芬妮80阅读 251评论 0 1