安卓 - 谷歌地图 - 平滑拖动标记

我正在尝试在地图活动上创建一个“选择位置”(就像谷歌地图应用程序中的那个,在选择方向的起点时)。


基本上,我在地图的中心放了一个标记,然后在相机移动时重新定位它。问题是标记不能顺利移动(它口吃)。我尝试了一些关于堆栈溢出的解决方案,但没有一个有效。


我的代码是这样的:


    getGoogleMap().moveCamera(CameraUpdateFactory.newLatLngZoom(

            new LatLng(location.getLatitude(),

                    location.getLongitude()), 14));

    LatLng target = getGoogleMap().getCameraPosition().target;


    chooseMarker = getGoogleMap().addMarker(new MarkerOptions()

            .position(target));

    getGoogleMap().setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {

        @Override

        public void onCameraMove() {

            // Get the center of the Map.

            LatLng centerOfMap = getGoogleMap().getCameraPosition().target;


            // Update your Marker's position to the center of the Map.

            chooseMarker.setPosition(centerOfMap);



        }

    });


呼唤远方
浏览 207回答 1
1回答

有只小跳蛙

如果我正确理解了您的问题,您希望用户使用跟随相机位置的标记来选择位置。另外,您希望标记始终位于谷歌地图的中心。在这种情况下,您可以使用一个简单的技巧。在包含 Google 地图的布局顶部添加一个视图,并使其不可见(从工程资产中分配相应的图标)。每当用户想要选择一个位置时,请使其可见(它应该位于Google地图布局的中心)。由于我们可以访问地图的中心,因此一旦用户对位置感到满意并提交下一个操作,我们就可以继续使用地图中心的位置。在过程结束时,使“标记”不可见。尽管还有其他解决方案,但这可能非常简单有效。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java