`

显示苹果地图并添加标注

 
阅读更多

 

用到的类 CLGeocoder,用来将输入的地名编码为CLPlacemark,CLPlacemark封装了一地理信息

 

上代码

 

- (void)gencodeQuery :(NSString*)place
{
    CLGeocoder *geocoder = [[CLGeocoder alloc]init];
    //对地理位置进行编码
    [geocoder geocodeAddressString:place completionHandler:^(NSArray *placemarks,NSError *error){
    
    
        for (int i = 0; i != placemarks.count; ++i)
        {
            CLPlacemark *placemark = placemarks[i];
            
            //地图进行缩放,第一个参数是中心,第二个参数是南北跨度,第三个参数是东西跨度
            MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(placemark.location.coordinate, 30000, 30000);
            [mapView setRegion:region];
            
            //在地图上添加标注,MapLocation是自定义类,实现了MKAnnotation协议
            MapLocation *annotation = [[MapLocation alloc]init];
            annotation.streetAddress = placemark.thoroughfare;
            annotation.city = placemark.locality;
            annotation.state = placemark.administrativeArea;
            annotation.zip = placemark.postalCode;
            annotation.coordinate = placemark.location.coordinate;
            //添加标注,添加后回回调MKMapViewDelegate的
            //- (MKAnnotationView*)mapView:(MKMapView *)parmMapView viewForAnnotation:(id<MKAnnotation>)annotation
            //自定义MapLocation的原因是addAnnotation接收id <MKAnnotation>参数
            [mapView addAnnotation:annotation];
            
        }
        
    }];
 
}
 
#pragma MKMapViewDelegate
 
- (MKAnnotationView*)mapView:(MKMapView *)parmMapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    MKPinAnnotationView *animationView = (MKPinAnnotationView*)[parmMapView dequeueReusableAnnotationViewWithIdentifier:@"T"];
    if(animationView == nil)
        animationView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"T"];
    animationView.pinColor = MKPinAnnotationColorGreen;//设置标注的颜色
    animationView.animatesDrop = YES;//设置动画
    animationView.canShowCallout = YES;//显示详细信息当点击标注的时候
 
    return animationView;
 
}
 
自定义的类
@interface MapLocation : NSObject<MKAnnotation>
 
@property(nonatomic,readwrite) CLLocationCoordinate2D coordinate;
@property(nonatomic,strong) NSString *streetAddress;
@property(nonatomic,strong) NSString *city;
@property(nonatomic,strong) NSString *state;
@property(nonatomic,strong) NSString *zip;
 
@end
 
-------------
 
@implementation MapLocation
 
- (NSString*)title
{
    return@"您的位置!";
}
- (NSString*)subtitle
{
    NSString *ret = @"";
    ret = [ret stringByAppendingString:self.state];
    ret = [ret stringByAppendingString:self.city];
    return ret;
}
 
@end

 

 

分享到:
评论

相关推荐

    电脑离线地图标注软件卫星地图 免费下载

    保证没有任何功能限制 电脑离线电子地图标注软件主要功能如下:可以标注位置,可以搜索地图上本来有的位置和标注的位置,可以把某个标注的位置显示在地图中心。软件支持电脑在线下载地图后(离线)地图查看浏览, 1....

    iPhone开发秘籍

    8.11 秘诀:添加标注(callout)视图 213 8.12 添加一个页面指示器控件 216 8.13 秘诀:定制工具栏 218 8.14 小结 221 第9章 人物、地点和事件 223 9.1 地址簿框架 223 9.1.1 address book ui 223 9.1.2 ...

    《iOS6开发指南》精彩书摘

    之后介绍iOS 6苹果地图的使用,包括了显示地图,以及在地图上添加标注,跟踪用户位置的变化等。最后介绍了程序外地图的使用,如何调用iOS 6苹果地图和调用谷歌Web地图。  第三部分进阶篇,介绍iOS高级内容,商业...

    iPhone开发秘籍.part2.rar

    不负众望,iPhone 可以加载并显示各种格式的媒体。它可以播放音乐和电影,处理图像和Web 页面。 也可以呈现PDF 文档和相册。第7章介绍用多种方法将数据导入或下载到程序中,并使用iPhone 的多点 触摸界面显示这些...

    iPhone开发秘籍.part4.rar

    不负众望,iPhone 可以加载并显示各种格式的媒体。它可以播放音乐和电影,处理图像和Web 页面。 也可以呈现PDF 文档和相册。第7章介绍用多种方法将数据导入或下载到程序中,并使用iPhone 的多点 触摸界面显示这些...

    iPhone开发秘籍.part1.rar

    不负众望,iPhone 可以加载并显示各种格式的媒体。它可以播放音乐和电影,处理图像和Web 页面。 也可以呈现PDF 文档和相册。第7章介绍用多种方法将数据导入或下载到程序中,并使用iPhone 的多点 触摸界面显示这些...

    欣荣泉安防视频监控软件-单机版

    这是一款控制矩阵切换主机的控制软件,主要是帮助用户通过查看地图时更形象、更便利地控制矩阵控,任意切换视频路数,并投放到任意指定的显示器上,所有的功能都可以通过鼠标来实现,该平台特点: (1)兼容MAX、AD、...

    163K地方门户系统X5版本 同步手机版 贴吧上线 微信对接

    01 改进黄页便民服务机构导入功能,新增导入所在区域和地图标注坐标功能 02 商家店铺页面中的店铺认领的弹出电话和QQ 电话是商家信息中的电话 QQ是后台系统配置中的网站客 修复为全部调用网站信息 03 改进全站分类...

    FlipPDFCorporateEdition

    一款PDF转换精美翻页电子书的软件,可以添加背景音乐,可以插播视频,合成文件有适合电脑版、苹果电脑、苹果手机离线版、上传到网站的线上版,是制作电子企业宣传册的好工具

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已...

Global site tag (gtag.js) - Google Analytics