2013-03-09 2 views
5

질문이 있으며 어디서나 찾을 수없는 것 같습니다.iOS Google지도 SDK 구현 방법

나는 "아이폰 OS 개발에 새로 온 내 응용 프로그램 내에서 구글지도를 사용하려고합니다.

나는. 그들이 당신에게 here을주는 예를 통해

#import "DemoViewController.h" 
#import <GoogleMaps/GoogleMaps.h> 

@implementation DemoViewController { 
    GMSMapView *mapView_; 
} 

- (void)loadView { 
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285 
                  longitude:103.848 
                   zoom:12]; 
    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 
    self.view = mapView_; 
} 

@end 

갔다 그러나 당신이 볼 수있는 그들이 설정 self.view = mapView_;하고있는 UIView 클래스는 뷰 기능이 없습니다.

을 나는지도가 나는 그것을 가지고 UIView의 내부되고 싶지는 다른의 ViewController

,691 안에

나는 당신을 아직 잃어 버렸습니까? 어느 쪽의 방법이라도 그림이 여기에있다. enter image description here

보기 (또는 공백) 내에서지도를로드하고 싶습니다.

도움을 주신 분들께.

+0

나는 ViewController를 만들고지도를로드하는 예제 인 것을 제공하려고 시도했습니다. (업데이트 됨) – Claud

+0

당신은 하위보기로 mapview를 추가 할 수 있습니까? 'self.view addSubview : mapView' –

답변

4

누구나 비슷한 것을해야한다면 나에게 도움이되는 해결책을 찾았습니다.

난 그냥 컨테이너 뷰를 사용하고 별도의 UIViewController 클래스를 만들어 (즉, google maps sdk code 맵 섹션을 추가을 가지고) 다음 난에 연결된 내 컨테이너보기 인 [self.view addSubview:googleMapsView]; googleMapsView를 사용하여 내 주요의 ViewController에 매여 main ViewController.

6

그래서 GMSMapView가 있습니다. 그리고 하나의보기를 addSubview:으로 인터페이스의 다른보기의 하위보기로 만들 수 있습니다. 그래도 내가 너라면 loadView에서 그걸하지 않을거야. viewDidLoad은 가장 빠른 기회입니다.

당신의 진짜 문제는 당신이 자신보다 앞서 있다고 생각합니다. 뷰가 작동하는 방식, 뷰 컨트롤러가 작동하는 방식 등을 모른 채이 작업을 수행하려고합니다. 네 발로 뛰어 들기 전에 심호흡을하고 iOS 프로그래밍에 대해 배우는 것이 좋습니다. 그렇지 않으면 코드 (또는 Google의 코드)가 의미하는 바를 모릅니다.

+0

당신은 내가 더 배워야 할 필요가 있다는 것이 맞습니다. 그래서 제가 물었습니다. 이 일을하는 가장 좋은 방법은 알고 싶습니다. – Claud

+0

글쎄, 나는 그것에 대답했다고 생각한다. 보기 및 하위보기, 콘센트를 통한보기에 대한 참조 가져 오기,보기 컨트롤러보기로드 및 인스턴스 변수를 사용하여 콘센트 참조 등을 알아야합니다. 그것은 모든 기본적인 iOS 프로그래밍 내용입니다. Google지도와 아무 관련이 없습니다. 모든 것을 알고있을 때 인터페이스에 GMSMapView를 배치하는 방법은 분명하지 않을 것입니다. – matt

+0

@matt : 다른 메모에서 Google지도 기반 앱이 Apple의 승인을 얼마나 잘 받았는지 알고 있습니까? 나는 이것으로 확실하지 않다. –

4

나는 똑같은 것을 here했습니다.

인터페이스 작성기를 통해 GMSMapView 유형의보기를 추가 한 다음 컨트롤러에 속성을 설정하십시오.

1
Please try below code. 
@property (strong, nonatomic) IBOutlet GMSMapView *mapView; 
-(void)addAllPinsOnMapView 
{ 
arrMapPin=[[NSMutableArray alloc] init]; 
for(int i = 0; i < arrOfferList.count; i++) 
{ 
    GMSCameraPosition *cameraPosition=[GMSCameraPosition cameraWithLatitude:[[[arrOfferList objectAtIndex:i] objectForKey:@"latitude"] floatValue] longitude:[[[arrOfferList objectAtIndex:i] objectForKey:@"longitude"] floatValue] zoom:12]; 
    // mapView = [GMSMapView mapWithFrame:CGRectZero camera:cameraPosition]; 
    _mapView.camera = cameraPosition; 
    _mapView.myLocationEnabled=YES; 

    GMSMarker *marker=[[GMSMarker alloc]init]; 
    marker.position=CLLocationCoordinate2DMake([[[arrOfferList objectAtIndex:i] objectForKey:@"latitude"] floatValue], [[[arrOfferList objectAtIndex:i] objectForKey:@"longitude"] floatValue]); 
    marker.title = [[arrOfferList objectAtIndex:i] objectForKey:@"business"]; 
    marker.map=_mapView; 
    _mapView.delegate = self; 
} 
} 
- (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker: 
(GMSMarker *)marker { 
NSPredicate *result; 
result=[NSPredicate predicateWithFormat:@"business CONTAINS[c] %@",marker.title]; 
NSArray * array = [arrOfferList filteredArrayUsingPredicate:result]; 
OfferDetailsViewController *objOfferDetailsViewController = [[OfferDetailsViewController alloc]init]; 
objOfferDetailsViewController.dictOfferDetails=[array objectAtIndex:0]; 
[self.navigationController pushViewController:objOfferDetailsViewController animated:YES]; 
} 
- (IBAction)btnLocateMe:(UIButton *)sender 
{ 
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:[[[AppDelegate initAppDelegate].DictLocation objectForKey:@"Latitude"] floatValue] longitude:[[[AppDelegate initAppDelegate].DictLocation objectForKey:@"Longitude"] floatValue] zoom:14]; 
[_mapView animateToCameraPosition:camera]; 
} 
+0

이 코드는 질문에 대답 할 수 있지만, 어떻게 그리고/또는 왜 문제를 해결하는지에 대한 추가 컨텍스트를 제공하면 응답의 장기적인 가치가 향상됩니다. –

관련 문제