我正在进行一个项目,必须在 Google maps android api v2 的室内部分的不同楼层上绘制路径。我已经启用了室内,但是有什么方法可以附加一个监听器或以任何其他方式通知显示的楼层,或者只是获取显示的名称或号码?
提前致谢!
我正在进行一个项目,必须在 Google maps android api v2 的室内部分的不同楼层上绘制路径。我已经启用了室内,但是有什么方法可以附加一个监听器或以任何其他方式通知显示的楼层,或者只是获取显示的名称或号码?
提前致谢!
map.setOnIndoorStateChangeListener(new GoogleMap.OnIndoorStateChangeListener() {
@Override
public void onIndoorBuildingFocused() {
}
@Override
public void onIndoorLevelActivated(IndoorBuilding building) {
int activeLevelIndex = building.getActiveLevelIndex();
}
});
在室内路径导航中,基于 wifi 的导航比 GPS 好得多。所以获取楼层高度的一种方法是在每层楼的入口位置设置一个接入点(AP),即电梯或楼梯的开口处。因此,根据来自 AP 的信号,您可以区分楼层。
WifiManager wManager;
List<ScanResult> wifiList;
wManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
// Inside BroadcastReceiver()
wifiList = wManager.getScanResults();
for (int i=0; i<wifiList.size(); i++){
ScanResult scanresult = wManager.getScanResults().get(i);
System.out.println("SSID: "+ssid);
System.out.println("RSSI: "+scanresult.level);
}
SSID 给出 AP 的名称,RSSI 给出信号强度。因此,即使存在来自更近楼层的另一个 AP 信号,您也可以通过这些数据识别楼层。