I'm using new Google map in my android application. I have different floors in my building. I need to get current floor.
问问题
1534 次
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 回答