我正在尝试在地图活动上创建一个“选择位置”(就像谷歌地图应用程序中的那个,在选择方向的起点时)。基本上,我在地图的中心放了一个标记,然后在相机移动时重新定位它。问题是标记不能顺利移动(它口吃)。我尝试了一些关于堆栈溢出的解决方案,但没有一个有效。我的代码是这样的: 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); } });
1 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
如果我正确理解了您的问题,您希望用户使用跟随相机位置的标记来选择位置。另外,您希望标记始终位于谷歌地图的中心。在这种情况下,您可以使用一个简单的技巧。在包含 Google 地图的布局顶部添加一个视图,并使其不可见(从工程资产中分配相应的图标)。每当用户想要选择一个位置时,请使其可见(它应该位于Google地图布局的中心)。由于我们可以访问地图的中心,因此一旦用户对位置感到满意并提交下一个操作,我们就可以继续使用地图中心的位置。在过程结束时,使“标记”不可见。
尽管还有其他解决方案,但这可能非常简单有效。
添加回答
举报
0/150
提交
取消