AI智能
改变未来

IOS地图开发,MapKit框架对行走路径的显示

http://lbs.amap.com/api/ios-sdk/guide/draw-on-map/draw-polyline/
高德地图开放平台中对路径显示给开发者提供的接口
想要画出路径第一经纬度的信息,第二轨迹的显示

  1. 需要我们移动时的位置信息,创建项目,将MapKit框架添加进来。
  2. 遵循协议CLLocationManagerDelegate, MKMapViewDelegate(这里地图显示就不说了网上好多也就几行代码)。
  3. 实现方法- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
    fromLocation:(CLLocation )oldLocation或者- (void)mapView:(MKMapView )mapView didUpdateUserLocation:(MKUserLocation *)userLocation因为两个方法都能获得我们的位置信息你实现哪个都行。
  4. 其中第一个方法得到的位置信息需要进行处理:http://blog.csdn.net/swingpyzf/article/details/16972351#0-tsina-1-80473-397232819ff9a47a7b7e80a40613cfe1 使用上面博主的方法处理下位置信息就行了(如果位置不对看下他博客评论)在上面两个方法中把位置信息添加进我们的数组以便使用。
  5. 在上面方法里面实现
    CLLocationCoordinate2D loc = [userLocation coordinate];
    NSString *locStr = [NSString stringWithFormat:@”%.5f,%.5f”,loc.latitude,loc.longitude];
    if (![_locations.lastObject isEqualToString:locStr]) {
    [_locations addObject:locStr];
    }
    if (_locations.count == 3) {
    [_locations removeObjectAtIndex:0];
    [self getLocationsData:_locations];
    }
    /对加进数组的位置信息处理并画线/
  6. (void)getLocationsData:(NSMutableArray *)locationArray {
    CLLocationCoordinate2D commonPolylineCoords[locationArray.count];
    for (int i = 0; i< 2; i++) {
    NSArray *latLonArr = [locationArray[i] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@”,”]];
    CLLocationDegrees latitude = [[latLonArr objectAtIndex:0] doubleValue];
    CLLocationDegrees longitude = [[latLonArr objectAtIndex:1] doubleValue];

    commonPolylineCoords[i].latitude = latitude;commonPolylineCoords[i].longitude = longitude;

    }
    //构造折线对象
    MKPolyline *commonPolyline = [MKPolyline polylineWithCoordinates:commonPolylineCoords count:locationArray.count];
    //在地图上添加折线对象
    [_mapView addOverlay: commonPolyline];
    }

  7. 显示出路径

      (MKOverlayView )mapView:(MKMapView )mapView viewForOverlay:(id)overlay {
      if ([overlay isKindOfClass:[MKPolyline class]])
      {
      MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay];

      polylineView.lineWidth = 10.f;
      polylineView.strokeColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.6];
      polylineView.lineJoin = kCALineJoinRound;//连接类型
      polylineView.lineCap = kCGLineCapRound;//端点类型

      return polylineView;
      }
      return nil;
      }

  • 点赞
  • 收藏
  • 分享
  • 文章举报

sinat_33749117发布了1 篇原创文章 · 获赞 0 · 访问量 147私信关注

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » IOS地图开发,MapKit框架对行走路径的显示