2013-06-26 3 views
0

내 안드로이드 응용 프로그램에서 새로운 Google지도를 사용하고 있습니다. 내 건물에는 서로 다른 층이 있습니다. 나는 현재 층을 얻을 필요가있다.Google지도 현재 층 받기

+0

이 더 많은 정보를 제공하십시오, 당신은 무엇을 시도? 그리고 몇 가지 코드를 보여줄 수 있습니까? – 23tux

답변

3

얼마 전 당신은 물었습니다 ... 오늘 해결책을 찾았습니다. 우선, 최신 google-play-services_lib (v4.4)가 필요합니다. Eclipse에서 SDK 관리자를 통해 Play 서비스를 업데이트하고 Setup을 따르십시오. 그런 다음 활동에 OnIndoorStateChangeListener을 구현해야합니다. GoogleMap의 수신기로 활동을 설정하는 것을 잊지 마십시오. 예컨대 :

public class YourActivity implements OnIndoorStateChangeListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     yourGoogleMap.setOnIndoorStateChangeListener(this); 
    } 

    @Override 
    public void onIndoorLevelActivated(IndoorBuilding indoorBuilding) { 
     List<IndoorLevel> levels = indoorBuilding.getLevels(); 
     for (IndoorLevel indoorLevel : levels) { 
     indoorLevel.get... 
     } 
    } 

당신이 당신의지도에 실내 정보와 함께 건물이

당신은 콜백을 통해 IndoorBuilding 객체를받을 수 있습니다. 이 IndoorBuilding에서 IndoorLevels의 목록을 얻을 수 있으며 IndoorLevel 안에 몇 명의 게터가 있습니다.

indoorBuilding.getActiveLevelIndex()으로 전화를 걸면 Google지도는 옥상에서 지하로 계산합니다. IndoorLevel 목록을 반복하는 방향과 동일합니다. 즉, 6 피트 아래에서 최대 수준의 색인을 찾을 수 있습니다.

희망, 도움이됩니다.

업데이트 : 더 나은 해결책을 발견 ...

IndoorBuilding yourBuilding = yourGoogleMap.getFocusedBuilding(); 
List<IndoorLevel> levels = yourBuilding.getLevels(); 
String name = levels.get(yourBuilding.getActiveLevelIndex()).getName(); 
String shortName = levels.get(yourBuilding.getActiveLevelIndex()).getShortName();