【问题标题】:Android - Google Maps - smoothly drag markerAndroid - 谷歌地图 - 顺利拖动标记
【发布时间】:2019-04-02 00:10:06
【问题描述】:

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

基本上,我在地图中心放置一个标记,然后在相机移动时重新定位它。 问题是标记移动不顺畅(结结巴巴)。我在 stackoverflow 上尝试了一些解决方案,但都不起作用。

我的代码是这样的:

    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);


        }
    });

【问题讨论】:

    标签: java android google-maps


    【解决方案1】:

    如果我正确理解了您的问题,您希望用户使用跟随相机位置的标记来选择位置。此外,您希望标记始终位于谷歌地图的中心。在这种情况下,您可以使用一个简单的技巧。在包含谷歌地图的布局顶部添加一个视图,并使其不可见(从项目资产中分配适当的图标)。每当用户想要选择一个位置时,使其可见(它应该位于您的谷歌地图布局的中心)。由于我们可以访问地图中心,一旦用户对位置满意,并提交下一个动作,我们就可以沿着地图中心的位置前进。在该过程结束时,使“标记”不可见。

    虽然还有其他解决方案,但这可能非常简单高效。

    【讨论】:

    • 听起来不错!我会试试的!
    猜你喜欢
    • 2015-06-04
    • 2014-08-28
    • 2016-04-10
    • 2016-02-03
    • 1970-01-01
    • 2012-08-07
    • 2011-08-07
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多