地图轨迹

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

.h    IBOutlet GMSMapView *_mapView;
注: _mapView我这里使用了Storyboard,放地图放在View里面
 
 
就是以下三部分。
- (void)initMapView
{
    //创建地图
    [_mapView clear];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-6.13631
                                                            longitude:106.789352
                                                                 zoom:ZOOM_LEVEL];
    _mapView.mapType = kGMSTypeNormal;
    _mapView.camera = camera;
    _mapView.delegate = self;
    _geocoder = [[GMSGeocoder alloc] init];
 
    polyline = [[GMSPolyline alloc] init];
    linepath = [GMSMutablePath path];
 
 
  CLLocationCoordinate2D coords;
            coords.latitude = -6.136271;
            coords.longitude = 106.789216;
             
 
           _mapView.camera = [GMSCameraPosition cameraWithTarget:coords
                                                             zoom:ZOOM_LEVEL];
     
 
 
 
        //显示标注
        GMSReverseGeocodeCallback handler = ^(GMSReverseGeocodeResponse *response,
                                              NSError *error) {
            if (response && response.firstResult) {
                 
                GMSMarker *marker = [[GMSMarker alloc] init];
                marker.position = coords;
                marker.title = response.firstResult.addressLine1;
                marker.snippet = response.firstResult.addressLine2;
                _addressData = response.firstResult.addressLine2;
                [self refreshGpsInfo];
                marker.appearAnimation = kGMSMarkerAnimationNone;
                marker.icon = SETIMAGE(@"deviceannotation.png");
                marker.map = _mapView;
            } else {
                NSLog(@"Could not reverse geocode point (%f,%f): %@",
                      coords.latitude, coords.longitude, error);
            }
        };
         
        [_geocoder reverseGeocodeCoordinate:coords
                          completionHandler:handler];
 
 
 
 
 
//画线,轨迹回放
                [linepath removeAllCoordinates];
                [self drawLineWithLocationArray:trackArray];
 
 
/*
注,trackArray里面的数据格式
    CLLocation *nowLocation = [[CLLocation alloc] initWithLatitude:coords.latitude longitude:coords.longitude];
    [trackArray addObject:nowLocation];
 
*/
 
 
}
 
 
 
//画线,使用轨迹回放
 
 
- (void)drawLineWithLocationArray:(NSArray *)locationArray
{
     
    if(current_type == _CURRENT_TRACK)
        polyline.strokeColor = [UIColor blueColor];
    else
        polyline.strokeColor = [UIColor redColor];
    polyline.strokeWidth = 6.f;
     
    // for(int idx = 0; idx < pointStrings.count; idx++)
    for(int idx = 0; idx < locationArray.count; idx++)
    {
        CLLocation *location = [locationArray objectAtIndex:idx];
        CLLocationDegrees latitude  = location.coordinate.latitude;
        CLLocationDegrees longitude = location.coordinate.longitude;
         
        // create our coordinate and add it to the correct spot in the array
        CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(latitude, longitude);
        [linepath addCoordinate:coordinate];
    }
    polyline.path = linepath;
    polyline.map = _mapView;
}