我正在尝试在地图活动上创建一个“选择位置”(就像在选择路线起点时在Google Maps应用中的位置一样)。
基本上,我将标记放置在地图的中心,然后将其重新放置在摄像机移动的位置。 问题是标记笔无法平稳移动(结巴)。我尝试了一些关于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);
}
});
答案 0 :(得分:1)
如果我正确理解了您的问题,则希望用户使用跟随摄像机位置的标记来选择位置。另外,您希望标记始终保持在Google地图的中心。在这种情况下,您可以使用一个简单的技巧。在包含Google地图的布局顶部添加一个视图,并使该视图不可见(从项目资产中分配相应的图标)。每当用户想要选择位置时,使其可见(该位置应位于您的Google地图布局的中心)。由于我们可以访问地图中心,因此一旦用户满意该位置并提交下一个动作,我们就可以向前移动地图中心的位置。在该过程结束时,使“标记”不可见。
尽管还有其他解决方案,但这可能非常简单有效。