Android如何在mapview上显示方向

时间:2015-08-17 05:36:00

标签: android google-maps

大家好我正在开发一个祈祷应用程序,我必须显示自定义地图标记,它将显示当前位置的kaba方向。我有kaba的lat / lang,我必须轮换或任何其他方法告诉用户kaba(冬青麦加)是朝着这个方向。

基本上我使用针或箭作为我的标记选项来显示kaba方向。我也从目前的位置角度看Kaba。我搜索过但没有找到任何令人满意的答案。

请帮帮我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我使用以下方法指向目的地的方向。

     private void updateCameraPosition() {

            Location startingLocation = new Location("starting point");
            startingLocation.setLatitude(location.getLatitude()); // location is current location
            startingLocation.setLongitude(location.getLongitude());

            //Get the target location
            Location endingLocation = new Location("ending point");
            endingLocation.setLatitude(destination.latitude);
            endingLocation.setLongitude(destination.longitude);

            //Find the Bearing from current location to next location
            float targetBearing = startingLocation.bearingTo(endingLocation);
            CameraPosition cameraPosition =
                    new CameraPosition.Builder()
                            .target(new LatLng(location.getLatitude(),location.getLongitude()))
                            .bearing(targetBearing)
                            .tilt(90)
                            .zoom(mMap.getCameraPosition().zoom)
                            .build();
            //mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(createLatLngBoundsObject(new LatLng(location.getLatitude(), location.getLongitude()), destination), width, (height - 200), padding));

           mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));


        }

编辑:旋转标记。

 moveMarker = mMap.addMarker(new MarkerOptions().position(new LatLng(cameraPosition.target.latitude, cameraPosition.target.longitude)).icon(BitmapDescriptorFactory
                                    .fromBitmap(customMarkerDes)).flat(true).anchor(.5f, .5f).rotation(startingLocation.bearingTo(endingLocation)));