이것은 긴 텍스트이므로 미리 감사드립니다.지도보기에서 카메라 위치를 업데이트하지 않습니다. animateToLocation을 사용하지 않습니다.
나는 두 개의 뷰 컨트롤러가 있습니다
- 가 MainViewController : 사용자가 도시 이름을 입력하고 위치가 그 도시로 변경 검색 텍스트 필드와 Google지도보기을 가지고, 내가 방법을 사용하는 번역 도시 이름을 Google의 지오 코딩 서비스를 사용하여 위도와 경도로 변환합니다. 여기 모든 것이 잘 작동합니다.
- SelectAreaViewController :이 VC는 푸시 세그먼트를 사용하여 액세스되며, 8 개의 간단한 행 (영역)이있는 선택기보기가 있습니다. 사용자가 행을 선택하면 자동으로 닫히고 MainViewController의 메소드를 실행하여지도보기 위치를 업데이트합니다. 여기에 문제가 있습니다. 메서드가 실행되지만지도보기 위치가 업데이트되지 않습니다. 나는 animateToLocation을 사용하고 "카메라"속성을 설정하려고했지만 작동하지 않습니다.
나는보기가로드 될 때 메서드를 실행 해 보았습니다. 문제가 있으므로 다른 viewcontroller에서 메서드가 호출 될 때 문제가 발생합니다. 문제가있는 것 같지만 아무 것도 찾을 수 없습니다. google 또는 SO.
위치를 업데이트해야하는 MainViewController 메소드입니다. 반복하지만 메서드가 실행되지만 mapview가 위치 변경 메서드 (animateToLocation) 나 카메라 설정에 응답하지 않습니다. 다시, 미리 감사
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
MainViewController *mainvc = [[MainViewController alloc] init];
[mainvc setPlazaOnMap:row];
[self.navigationController popViewControllerAnimated:YES];
}
:
-(void)setPlazaOnMap:(NSInteger)plazaNum
{
double lat;
double lng;
NSString *plazaNombre;
switch (plazaNum) {
case 0:
NSLog(@"Plaza 1");
plazaNombre = @"Aguascalientes";
lat = 21.8852562;
lng = -102.2915677;
break;
case 1:
NSLog(@"Plaza 2");
plazaNombre = @"León";
lat = 21.1250077;
lng = -101.6859605;
break;
case 2:
NSLog(@"Plaza 3");
plazaNombre = @"San Luis Potosí";
lat = 22.1564699;
lng = -100.9855409;
break;
case 3:
NSLog(@"Plaza 4");
plazaNombre = @"Querétaro";
lat = 20.5887932;
lng = -100.3898881;
break;
case 4:
NSLog(@"Plaza 5");
plazaNombre = @"Monterrey";
lat = 25.6866142;
lng = -100.3161126;
break;
case 5:
NSLog(@"Plaza 6");
plazaNombre = @"Saltillo";
lat = 25.4267244;
lng = -100.9954254;
break;
case 6:
NSLog(@"Plaza 7");
plazaNombre = @"Torreón";
lat = 25.5428443;
lng = -103.4067861;
break;
case 7:
NSLog(@"Plaza 8");
plazaNombre = @"Cancún";
lat = 21.161908;
lng = -86.8515279;
break;
case 8:
NSLog(@"Plaza 9");
plazaNombre = @"Guadalajara";
lat = 20.6596988;
lng = -103.3496092;
break;
default:
lat = 20.6596988;
lng = -103.3496092;
break;
}
NSLog(@"lat %f",lat);
NSLog(@"lng %f",lng);
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:lat longitude:lng zoom:12];
self.mapView.camera = camera;
// [self.mapView animateToLocation:CLLocationCoordinate2DMake(lat, lng)];
// [self.mapView animateToZoom:10];
}
번째의 ViewController의 방법이있다.
그게 다야! 고맙습니다! 그것은 매력처럼 작동했습니다. – Chuy