@interface ViewController () <MKMapViewDelegate>@property (nonatomic, weak) MKMapView *mapView;@end@implementation ViewController#pragma mark - 懒加载- (MKMapView *)mapView {if (_mapView == nil) {MKMapView *mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];CLLocationCoordinate2D coordinate = {39.9087607478,116.3975780499};MKCoordinateSpan span = MKCoordinateSpanMake(0.01, 0.01);MKCoordinateRegion region = MKCoordinateRegionMake(coordinate, span);[mapView setRegion:region];mapView.delegate = self;[self.view addSubview:mapView];_mapView = mapView;}return _mapView;
}- (void)viewDidLoad {[super viewDidLoad];CLLocationCoordinate2D coordinate = {39.9087607478,116.3975780499};CLLocationCoordinate2D coordinate2 = {39.8087607478,116.3975780499};// 添加一个标注MyAnnotation *annotation = [[MyAnnotation alloc] initWithCoordinate2D:coordinate title:@"北京市" subTitle:@"天安门"];MyAnnotation *annotation2 = [[MyAnnotation alloc] initWithCoordinate2D:coordinate2 title:@"不知道" subTitle:@"不知道"];[self.mapView addAnnotation:annotation];[self.mapView addAnnotation:annotation2];// 计算两个经纬度之间的距离// 保存地理信息CLLocation *l1 = [[CLLocation alloc] initWithLatitude:coordinate.latitude longitude:coordinate.longitude];CLLocation *l2 = [[CLLocation alloc] initWithLatitude:coordinate2.latitude longitude:coordinate2.longitude];// 单位是米CLLocationDistance distance = [l1 distanceFromLocation:l2];NSLog(@"---distance:%f", distance);
}#pragma mark - MKMapView 代理方法/***  添加标注的时候会触发*/
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {//    MKPinAnnotationView -> MKAnnotationView -> UIViewNSLog(@"-----%@", views);
}/***  返回自定义大头针视图 这里面的大头针视图会复用 类似于UITableViewCell的复用机制*/
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {// 从复用队列里面通过标示符找可用的大头针对象 -> MKPinAnnotationViewMKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"identifier"];if (annotationView == nil) {annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"identifier"];// 显示气泡 (三角视图)annotationView.canShowCallout = YES;// 添加大头针图片annotationView.image = [UIImage imageNamed:@"map"];// 左右视图UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AppIcon57x57"]];imageView.frame = CGRectMake(0, 0, 40, 40);// 当cornerRadius设置为视图的一半 如果这个视图为正方形,则会变为圆形imageView.layer.cornerRadius = imageView.frame.size.width * 0.5;imageView.layer.masksToBounds = YES;annotationView.leftCalloutAccessoryView = imageView;UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];btn.backgroundColor = [UIColor lightGrayColor];btn.frame = CGRectMake(0, 0, 40, 40);[btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];annotationView.rightCalloutAccessoryView = btn;}return annotationView;
}- (void)btnAction:(UIButton *)btn {NSLog(@"%s", __FUNCTION__);
}
// 1. 自定义标注类 遵循MKAnnotation协议#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>@interface MyAnnotation : NSObject <MKAnnotation>/***  构造方法*/
- (instancetype)initWithCoordinate2D:(CLLocationCoordinate2D)coordinate2Dtitle:(NSString *)titlesubTitle:(NSString *)subTitle;@interface MyAnnotation () {CLLocationCoordinate2D _coordinate2D;NSString *_title;NSString *_subTitle;
}@end@implementation MyAnnotation#pragma mark - 初始化方法- (instancetype)initWithCoordinate2D:(CLLocationCoordinate2D)coordinate2Dtitle:(NSString *)titlesubTitle:(NSString *)subTitle {self = [super init];if (self) {_coordinate2D = coordinate2D;_title = title;_subTitle = subTitle;}return self;
}#pragma mark - MKAnnotation- (CLLocationCoordinate2D)coordinate {return _coordinate2D;
}- (NSString *)title {return _title;
}- (NSString *)subtitle {return _subTitle;
}

导航地图2_自定义标注相关推荐

  1. 百度地图API : 自定义标注图标

    通过Icon类可实现自定义标注的图标,下面示例通过参数MarkerOptions的icon属性进行设置, 也可以使用marker.setIcon()方法. <!DOCTYPE html> ...

  2. 百度地图API 自定义标注图标

    通过Icon类可实现自定义标注的图标,下面示例通过参数MarkerOptions的icon属性进行设置, 也可以使用marker.setIcon()方法. <script type=" ...

  3. Echarts显示自定义标注点/地图map引导线

    Echarts显示自定义标注点/地图map引导线 先贴效果.这里实现了 1.地图上县区名的显示,鼠标移入显示相应的项目数(如下图东源县) 2.地图上增加自定义地图(这里增加了没有的高新区&市辖 ...

  4. 百度地图android自定义文字,Android SDK | 百度地图API SDK

    什么是百度地图Android SDK? 百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口, 您可以通过该接口实现丰富的LBS功能: 地图:提供地图(2D.3 ...

  5. IOS-百度地图API用点生成线路、导航、自定义标注 2013年11月更新

    IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽 IOS百度地图开发POISearch搜索附近停车场,附近加油站 IOS百度地图视角跳到用户当前位置 IOS百度地图开发实时路况 IO ...

  6. Swift之高德地图自定义标注弹出气泡样式

    在用到地图类的sdk,sdk自带的样式必定不能满足开发者的需求,于是开发者不得不进行自定义,由于官方同样是object-c 版语法,不得不将其转为swift语法,以满足项目需求. 新建两个类 Cust ...

  7. 腾讯地图标注_怎样在导航地图上标注公司名和位置

    企业怎样在腾讯地图标明公司名字和位置.很多人都必须在腾讯地图标明企业的位置,主要是为了方便客户在搜索公司位置的时候便于导航所在地. 为了更好地提升腾讯地图的成功率和利用率,我这里给大家做一个简单的申请 ...

  8. 百度地图JavaScript API 学习之自定义标注图标(一)

    地图绘制之添加自定义标注图标(一) 通过Icon类可实现自定义标注的图标.附上Icon的类参考链接,自行查看 官方提供了两种方法: 通过参数MarkerOptions的icon属性进行设置 使用Mar ...

  9. 百度地图自定义标注点

    百度地图自定义标注点 //创建点 var point = new BMap.Point(109.49926175379778, 36.60449676862417); //创建自定义标 //参数1:自 ...

最新文章

  1. 微信公众号网页获取用户信息
  2. 一些http 响应码及含义
  3. 成功解决Instructions for updating: Use `tf.global_variables_initializer` instead.
  4. EasyMock 常见异常
  5. JEP 290 初识
  6. vcpkg 简明教程
  7. 简单的Qt倒计时程序--番茄钟
  8. 值得收藏!神级代码编辑器 Sublime Text 全程指南
  9. android 资源文件类型,命名规则(配置限定符名称),及其加载规则
  10. Shake Shack新店推出专为狗狗研制的冰激凌;素食“鱼肉”三明治挑战赛百味;植物肉品牌v2登陆中国市场...
  11. 照片整理工具(日历相册, 重复文件清理, 手机照片同步, 图片尺寸缩减)
  12. 使用JavaCV把图片合成视频(实用)
  13. 创业团队:太极图形团队
  14. js网页雪花效果jquery插件
  15. 学习《JavaScript高级程序设计》----day06
  16. python源程序的书写风格_3.跟老韩学Python之Python代码书写风格
  17. php中跨页面id的获取,excel跨表格提取数据?phpexcel 读取excel里的数据并在页面显示出来...
  18. [rust] Rust与C++20编码习惯对照
  19. 计算机丢失api-ms-win-crt-runtime-l1-1-0.dll快速解决方案
  20. 邮箱满了,但是Web邮箱又登陆不上怎么办?

热门文章

  1. python 支持erp自动化操作
  2. 新底座、新产品、新方案,2022用友BIP技术大会三大数智化突破
  3. 陌上花开、月下遐思……
  4. python+tkinter+threading制作多线程简易音乐播放器(自动播放,上一曲,下一曲,播放,暂停,实时显示歌曲名并能自动切换歌曲的功能)
  5. 弘辽科技:惊!原来吸引淘宝买家眼球的标题是这么写出来的!
  6. Types of light 光照类型 光照系列4
  7. android media player实现一个可手势滑动控制 + 可以调节分辨率|字幕|倍速的视频播放器(MediaPlayer + ExoPlayer实现)
  8. W ndows7安装Hp1020,Windows7系统怎么安装惠普hp1020打印机
  9. python----小计买书问题
  10. php皮肤程序,2020修复升级版PHP全新皮肤界面点赞任务系统平台源码运营版,仿众人帮蚂蚁帮扶牛帮...