2013-06-21 2 views
1

나는 잘 작동하는 Android지도 v2 TileOverlay를 가지고 있습니다. 비트 맵을 생성하는 내 자신의 TileProvider가 있습니다. 모든 것이 훌륭하게 작동합니다. 나는 다음과 같은 코드를 사용하여 런타임에 동적으로 보이지 않는 시간을 타일을 만들고 싶어 :그려진 TileOverlay를 보이지 않게 만드는 방법

private TileOverlay tileOverlay; 
... 
tileOverlay = googleMap.addTileOverlay(new TileOverlayOptions() 
       .zIndex(100f) 
       .tileProvider(new MyTileProvider(credential,mContext))); 
... 
tileOverlay.setVisible(false); 

TileProvider 작업 및 바로 타일을 그립니다,하지만 난 setVisible(false)를 사용하면 타일은 결코 보이지 않는 간다.

심지어 tileOverlay.isVisible()을 읽을 수 있으며 false를 반환하지만 타일은 계속 표시됩니다.

그려진 타일을 보이지 않게 할 수 있습니까?

감사합니다.

+0

만약 당신이 그것을 보여주는 간단한 예제를 만들 수 있다면, 나는 [gmaps-api-issues] (http://code.google.com/ p/gmaps-api-issues/issues/list? can = 2 & q = apitype = Android2). 지도 API 데모 TileOverlay 예제 (달을 보여주는 예제)에서'setVisible (false)'를 추가해보십시오. –

+0

MaciejGorski, 좋은 아이디어 감사합니다. 나는 그것을했고 그것은 API 데모에서 작동합니다. 저기 그들은 UrlTileProvider를 사용하는 반면, 내 자신의 TileProvider는 정의합니다. 나는 둘 다 작동하기 때문에 어느 쪽의 출력 TileOverlay도 같을 것이라고 생각했을 것입니다.하지만 여전히 내 타일을 보이지 않게 할 수는 없지만 보이지 않게 만들 수는 있습니다. 어떤 아이디어? – aez

+0

이것은 버그이며, gmaps-api-issues에서 이슈를 시작했습니다. 5541 – aez

답변

0

예, 그려진 TileOverlay를 보이지 않게 만들 수 있습니다. 이 버그는 내 코드에서 발견되었습니다. GoogleMap에서 null 체크를 제거했습니다.이 체크는 Activity의 onCreate() 및 onResume()에서 호출되므로 여러 개의지도가 있습니다. 따라서 TileOverlay.setVisible (false) 또는 .remove()를 호출 한 후에도 TileOverlay가 남아있는 다른지도가 여전히있었습니다. 이상한 점은이 null 체크가 없어도 앱이 다른 모든 방식으로 작동하는 것입니다. 아래의 중요한 null 체크를보십시오 :

private void setUpMapIfNeeded() { 
     // Do a null check to confirm that we have not already instantiated the map. 
     if (googleMap==null) { //-- DON'T FORGET THIS!! 

      googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();   
      // Check if we were successful in obtaining the map. 
      if (googleMap!=null) { 
       setUpMap(); 
      } 
     } 
    } 
관련 문제