我在Android应用程序中使用新的Google地图。我的建筑物有不同的楼层。我需要获得最新信息。
答案 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();