iOS开发:高德地图自定义不同的标记点

标签: 高德
14人阅读 评论(0) 收藏 举报
分类:

我一共添加了四种Annotation:起点、终点、附近的人、定位蓝点 不同的Annotation需要用不同的标注图标。

定义PointAnnotation

#pragma mark - MAPointAnnotation
- (MAPointAnnotation *)startAnnotation
{
    if (_startAnnotation == nil) {
        _startAnnotation = [[MAPointAnnotation alloc] init];
        _startAnnotation.title = @"起点";
    }

    return _startAnnotation;
}

- (MAPointAnnotation *)endAnnotation
{
    if (_endAnnotation == nil) {
        _endAnnotation = [[MAPointAnnotation alloc] init];
        _endAnnotation.title = @"终点";
    }

    return _endAnnotation;
}

添加起点终点

self.startAnnotation.coordinate = self.currentLocation.coordinate;
            [self.mapView addAnnotation:self.startAnnotation];
 self.endAnnotation.coordinate = self.currentLocation.coordinate;
        [self.mapView addAnnotation:self.endAnnotation];

回调是关键

- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation
{
    if ([annotation isKindOfClass:[MAUserLocation class]]) {//定位蓝点
        return nil;
    }
    else if ([annotation isKindOfClass:[MAPointAnnotation class]])
    {
        static NSString *reuseIndetifier = @"annotationReuseIndetifier";
        MAAnnotationView *annotationView = (MAAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:reuseIndetifier];
        if (annotationView == nil)
        {
            annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotation
                                                          reuseIdentifier:reuseIndetifier];
        }
        if(annotation == self.startAnnotation)
            annotationView.image = [UIImage imageNamed:@"start.png"];
        else if(annotation == self.endAnnotation)
            annotationView.image = [UIImage imageNamed:@"end.png"];
        else
            annotationView.image = [UIImage imageNamed:@"poi.png"];
        //设置中心点偏移,使得标注底部中间点成为经纬度对应点
        annotationView.centerOffset = CGPointMake(0, -25);
        annotationView.canShowCallout= YES;       //设置气泡可以弹出,默认为NO
        return annotationView;
    }
    return nil;
}

移除起点和终点

      [self.mapView removeAnnotation:self.startAnnotation];
        [self.mapView removeAnnotation:self.endAnnotation];
查看评论

iOS 高德地图(五)绘制点标记

(一)添加默认样式点标记 iOS SDK提供的大头针标注MAPinAnnotationView,通过它可以设置大头针颜色、是否显示动画、是否支持长按后拖拽大头针改变坐标等。 ** **这里用到的类是...
  • Xiejunyi12
  • Xiejunyi12
  • 2016-10-26 16:37:52
  • 1804

高德地图Android版SDK的应用(定位,添加自定义标记点)

需要先下载高德地图的 Android SDK和 Android 定位SDK : http://code.autonavi.com/index package com.fproject.DXCBuy;...
  • syfyw
  • syfyw
  • 2013-11-24 09:51:49
  • 7895

高德地图开发之点标注marker

在地图上添加点标记是常使用的方法,用它可以将任何你希望或感兴趣的点标注在地图上,同时也可以指定任意的图标或内容等。Marker就是这样一个用于在地图上添加点标记的类。...
  • diypp2012
  • diypp2012
  • 2017-08-25 14:46:28
  • 636

高德地图添加Marker点标记

示例代码部分:
  • u010982006
  • u010982006
  • 2016-09-19 16:15:54
  • 10227

Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗

  • 2017年09月25日 14:23
  • 23.71MB
  • 下载

高德地图 JavaScript API v1.3 开发(多点标记、自定义坐标点、信息窗口、导航)(demo)

高德地图的web开发必须先到开发者专区注册开发者,申请到一个key值,才可以引入。 下面贴出本人自己写的demo: HTML页面: div id="container" style="wid...
  • JathamJ
  • JathamJ
  • 2016-10-28 14:50:48
  • 4090

高德地图 鼠标点击后 地图上点标记跟着变化

高德地图 鼠标点击后 地图地图上点标记跟着变化吐槽下,什么鬼标题高德地图marker 类中有方法 setPosition 只要在点击地图的时候 将地图经纬度传递到该方法中即可另外,主要查看官方手册中关...
  • sinat_19569023
  • sinat_19569023
  • 2016-05-10 17:48:30
  • 4449

高德地图api的自定义地点标注

最近在做一个使用高德地图api展示自定义地点的项目,为什么会使用高德,而不使用百度、谷歌等其他公司的api开发,这纯粹是因为个人的偏好,笔者本人因为长期使用高德导航,所以对它颇多青睐。 好,言归正传。...
  • bearkeeping
  • bearkeeping
  • 2017-08-10 18:20:13
  • 1497

android开发中高德地图点聚合自定义聚合点的样式

高德点聚合
  • version1_0
  • version1_0
  • 2017-05-16 18:17:08
  • 2078

android高德地图marker多个点

本人也有做过百度地图的marker,但是百度地图的引用实在很麻烦,各种导包,so,jar,还有配置。所以高德就比较方便了。 只需引用下面的几句  定位  地图 导航  全都ok! compil...
  • smile_tear
  • smile_tear
  • 2018-01-05 09:47:28
  • 1132
    个人资料
    等级:
    访问量: 5801
    积分: 350
    排名: 22万+
    文章分类
    文章存档
    最新评论