Google地图获取当前楼层

时间:2013-06-26 06:45:25

标签: android google-maps

我在Android应用程序中使用新的Google地图。我的建筑物有不同的楼层。我需要获得最新信息。

1 个答案:

答案 0 :(得分:3)

前一段时间你问过...今天我找到了一个解决方案。首先,您需要最新的google-play-services_lib(v4.4)。在Eclipse中,通过SDK Manager更新Play服务并按照Setup进行操作。然后,您需要在活动中实施OnIndoorStateChangeListener。不要忘记将您的活动设置为您的GoogleMap的倾听者。 E.g:

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()时,GoogleMaps会从屋顶到地下室进行计数 - 您在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();