0

I'm using new Google map in my android application. I have different floors in my building. I need to get current floor.

4

1 回答 1

3

前段时间你问...今天我找到了解决方案。首先,您需要最新的 google-play-services_lib (v4.4)。在 Eclipse 中,通过 SDK Manager 更新 Play Services 并按照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(),GoogleMaps 会从屋顶计数到地下室——与您遍历IndoorLevel列表的方向相同。这意味着,您可以在六英尺以下找到最大水平指数。

希望这可以帮助!

更新:我找到了一个更好的解决方案......

IndoorBuilding yourBuilding = yourGoogleMap.getFocusedBuilding();
List<IndoorLevel> levels = yourBuilding.getLevels();
String name = levels.get(yourBuilding.getActiveLevelIndex()).getName();
String shortName = levels.get(yourBuilding.getActiveLevelIndex()).getShortName();
于 2014-06-25T14:47:17.000 回答