【发布时间】:2014-05-09 13:58:35
【问题描述】:
我对 android 开发完全陌生。我正在使用 Google map api 2 并且可以成功地在地图上显示我的位置。现在我想显示我正在看的方向(即视野 FOV,-我的设备面向的方向),如本示例所示。我将不胜感激任何帮助。对不起我的英语:)
【问题讨论】:
标签: android google-maps
我对 android 开发完全陌生。我正在使用 Google map api 2 并且可以成功地在地图上显示我的位置。现在我想显示我正在看的方向(即视野 FOV,-我的设备面向的方向),如本示例所示。我将不胜感激任何帮助。对不起我的英语:)
【问题讨论】:
标签: android google-maps
尝试为您的 FOV 使用 GroundOverlay,此示例使用图像来显示 FOV:
private GroundOverlay mFovOverlay;
//** create the FOV **//
private void createFov(LatLng userPosition, GoogleMap map, float bearing) {
GroundOverlayOptions fov = new GroundOverlayOptions();
fov.position(userPosition, 100f);
fov.anchor(0.5f, 1f);
fov.image(BitmapDescriptorFactory.fromResource(R.drawable.fov));
fov.bearing(bearing);
mFovOverlay = map.addGroundOverlay(fov);
}
//** change the FOV direction **//
private void changeFovDirection(float bearing) {
fovOverlay.setBearing(bearing);
}
如果您想根据设备方向更改 FOV 方向,请调用以度为单位的方位角的 changeFovDirection。这里的方位角是可以从设备传感器获得的方位角(参见What is the alternative to android orientation sensor?)。注意从弧度(传感器单位)转换为度数(GroundOverlay 方位单位),这是我在 onSensorChanged 方法中的 sn-p 代码:
float azimut = orientation[0]; // orientation contains: azimut, pitch and roll
float azimutDegrees = (float) (azimut * 180 / Math.PI);
mapFragment.changeFovDirection(azimutDegrees);
【讨论】: