【问题标题】:Google map get current floor谷歌地图获取当前楼层
【发布时间】:2014-07-03 21:59:52
【问题描述】:

我在我的 android 应用程序中使用新的 Google 地图。我的大楼有不同的楼层。我需要得到当前楼层。

【问题讨论】:

  • 请提供更多信息,您尝试过什么?你能展示一些代码吗?

标签: android google-maps


【解决方案1】:

不久前您问...今天我找到了解决方案。首先,您需要最新的 google-play-services_lib (v4.4)。在 Eclipse 中,通过 SDK 管理器更新 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 中,您可以找到一些getter。

当您调用 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-04-12
    • 2021-09-11
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2012-12-22
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多