.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;

}