如何在Objective c中集成Google Map?

时间:2016-01-17 05:00:02

标签: ios dictionary sdk

我是iOS新手,必须在洛杉矶地区展示Google地图,其中有两个不同的纬度和长度的餐厅位置。我需要确保如果用户点击地图,它将允许用户获得指向该特定餐厅的路线。因此,如果所有位置都在一张地图上,用户需要在地图上点击所需的餐厅/图钉并获取路线 - 是否正确?

1 个答案:

答案 0 :(得分:1)

尝试这个我之前找到它

    In -(void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker// This method will get call after taping marker pin(GMSMapView map view delegate method).
{ get the latitude and longitude of that marker.

}

Take the latitude and longitude of current location

Now Draw route between two location
//Download LRouteController from this link  https://github.com/lukagabric/LRouteController

//This will draw link between two co-ordinate
//In .h File declare LRouteController *_routeController;
 if ([_coordinates count] > 1)
    {
        //Draw line between two co-ordinate
        [_routeController getPolylineWithLocations:_coordinates travelMode:TravelModeDriving andCompletitionBlock:^(GMSPolyline *polyline, NSError *error) {
            if (error)
            {
                NSLog(@"%@", error);
            }
            else if (!polyline)
            {
                NSLog(@"No route");
                [_coordinates removeAllObjects];
                UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"No route" message:@"No route available for this route." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                [alert show];
            }
            else
            {
                //Drow route
                _markerStart.position = [[_coordinates objectAtIndex:0] coordinate];
                _markerStart.map = googleMapview;

                _markerFinish.position = [[_coordinates lastObject] coordinate];
                _markerFinish.map = googleMapview;

                _polyline = polyline;
                _polyline.strokeWidth = 3;
                _polyline.strokeColor = [UIColor blueColor];
                _polyline.map = googleMapview;
            }
        }];
    }


//If you are unable to get taped pin latitude and longitude the you can use custom GMSMarker
Ex: @interface MapMarker : GMSMarker //Create new file of GMSMarker
@property (nonatomic, strong) coOrdinateData *data;(CoOrdinateData is NSObject class declare lat and long value)
@end

While adding marker on map use 
 MapMarker *marker= [[MapMarker alloc]init];

            [marker setPosition:CLLocationCoordinate2DMake(LocationAtual.coordinate.latitude,LocationAtual.coordinate.longitude)];
  marker.data=data;//Take lat and long value in object class and pass object class in marker object
After typing on map marker you can get value like
-(void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker
{
NSString *strLat = ((MapMarker *)marker).data.lat ;
NSString *strLong = ((MapMarker *)marker).data.long ;
//Add both the current location and marker  latitude and longitude in _coordinates and draw route.
}