2013-06-12 4 views
5

fitBounds 방법을 사용하여 Google지도 카메라보기에서 내 모든 마커를 맞추려고합니다. 그래서 내 마커는 markersArray에 저장되어 있고 다음 코드를 사용하여 GMSCoordinateBounds를 초기화하고 markersArray의 첫 번째와 두 번째 마커가 제대로 작동합니다.GMSCoordinateBounds iOS 용 Google지도 SDK에서 제대로 작동하지 않는 좌표가 있습니다.

markersArray에서 3 번째 마커를 추가하려고하면 includingCoordinate을 사용하여 경계가 표시되지 않습니다. 값을 변경하거나지도에서 아무 것도 업데이트하지 않는 것은 그에 따라 카메라를 변경하는 것입니다.

괴상한 점은 Google maps SDK for iOS docs에 GMSCoordinateBounds가 "변경 불가능하고 수정 후 수정할 수 없다"는 것입니다. 말이 돼? 경계선을 만든 후에 경계를 변경할 수 없습니까? 그런 다음 경계에 좌표를 어떻게 추가합니까?

GMSCoordinateBounds *bounds= [[GMSCoordinateBounds alloc] init]; 

    GMSMarker *marker1 = [markersArray objectAtIndex:0]; 
    GMSMarker *marker2 = [markersArray objectAtIndex:1]; 
    GMSMarker *marker3 = [markersArray objectAtIndex:2]; 

    bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:marker1.position coordinate:marker2.position]; 

    //Add the 3rd marker to the bounds 
    [bounds includingCoordinate:marker3.position]; 

    GMSCameraUpdate *update = [GMSCameraUpdate fitBounds:bounds withPadding:600.0f]; 
    [mapView_ animateWithCameraUpdate:update]; 

답변

26

GMSCoordinateBounds includingCoordinate: 방법은 원래의 경계와 새로운 위치의 조합을 포함하는 새로운 경계를, 당신이 그것을 호출 객체를 수정하지 않습니다 반환

여기 내 코드입니다. 지금 잘 작동

bounds = [bounds includingCoordinate: marker3.position]; 
+0

감사 :

그래서 당신이 뭔가를해야합니다. 내가 묻기 엔 너무 당황 스럽다. – Ali

+0

방금 ​​날 구 했어요! 고맙습니다. – apinho

+0

Google은 위치 배열을 받아들이고 모든 것을 충족시키는 범위를 반환하는 메소드를 Google에 어떻게 포함시키지 않았습니까? 이제 구현 된 방법은 두 위치로만 초기화 한 다음 includingCoordinate를 호출하여 나머지 부분을 반복하도록합니다. 더 좋은 방법이 없어 졌나요? – Pauls