假设我们在地图上有一个居中的标记,当我们用手指移动地图时,我们可以看到当你离开该区域时,标记将不再显示.那么我们怎样才能制作一个始终位于地图中心的标记,尽管我们将地图移动到任何地方?有一个名为UBER的应用程序,它们提供此功能,您不要拖放标记,只需移动地图,标记就会保持它的位置.
这是一个截图:

当我们移动地图时,您可以看到绿色标记位于屏幕的中心,它仍然保留其位置,但在用户停止移动地图时显示新位置.我们怎么能这样做?
我有一个代码,当您拖放标记时显示地址,如何重新显示地址但这次不是通过拖动,移动地图?希望你能理解任何想法都会很棒.
public class MainActivity extends AbstractMapActivity implements
OnNavigationListener, OnInfoWindowClickListener,
OnMarkerDragListener {
private static final String STATE_NAV="nav";
private static final int[] MAP_TYPE_NAMES= { R.string.normal,
R.string.hybrid, R.string.satellite, R.string.terrain };
private static final int[] MAP_TYPES= { GoogleMap.MAP_TYPE_NORMAL,
GoogleMap.MAP_TYPE_HYBRID, GoogleMap.MAP_TYPE_SATELLITE,
GoogleMap.MAP_TYPE_TERRAIN };
private GoogleMap map=null;
String filterAddress = "";
Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (readyToGo()) {
setContentView(R.layout.activity_main);
SupportMapFragment mapFrag=
(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mapFrag.setRetainInstance(true);
initListNav();
map=mapFrag.getMap();
if (savedInstanceState == null) {
CameraUpdate center=
CameraUpdateFactory.newLatLng(new LatLng(
41.003739,
28.999572));
CameraUpdate zoom=CameraUpdateFactory.zoomTo(10); …Run Code Online (Sandbox Code Playgroud) 我正在寻找类似Uber处理捏缩放事件的方式.无论您在屏幕上捏什么,它都会使地图居中并放大中心位置.有没有办法在地图片段上没有某种叠加的情况下做到这一点?或者我应该只禁用地图的事件,在地图片段上创建叠加层,并处理叠加层中的所有缩放/其他事件?
如何在Uber和Lyft等地图上附上灵活的标记?我正在使用谷歌地图v2.
基本上,我想在地图上显示标记,同时在移动地图时更改标记的位置.
编辑:
好的,我解决了我的问题.
第一步:将imageview添加到相同的布局和位置等于center.第二:获取地图中心的坐标使用以下方法
1-在我的情况下获取viewgroup(FrameLayout)地图片段所在的位置.
FrameLayout myContainer = (FrameLayout) findViewById(R.id.content_frame);
int mapHeight = myContainer.getHeight();
int mapWidth = myContainer.getWidth();
Run Code Online (Sandbox Code Playgroud)
2-使用setOnCameraChangeListener并在相机上更改获取坐标:
LatLng center = mMap.getCameraPosition().target;
Run Code Online (Sandbox Code Playgroud) android google-maps google-maps-markers google-maps-api-2 android-maps-v2
我试图找到一种方法将我的地图标记放在我的地图片段活动中。到目前为止,我已经尝试在每次移动地图时在屏幕中心添加一个标记,即更新相机位置。但是这个解决方案的问题是,每次在地图的中心添加一个新标记,而旧标记留在那里,所以只需拖动几次,我的屏幕上就会有 10 个标记。我在添加下一个标记之前尝试使用 clear 方法,但现在标记只是闪烁太多。这是我的代码:
mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
LatLng location=mMap.getCameraPosition().target;
MarkerOptions marker=new MarkerOptions().position(location).title("");
mMap.clear();
mMap.addMarker(marker);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 16));
}
});
Run Code Online (Sandbox Code Playgroud)
我发现的另一个解决方案是使用居中的 ImageView,但问题是我想更改标记的图标。但是当我将图像图像添加到图像视图时,相机的中心位于该图像中心的绿色小圆圈中,而不是像我想要的那样尖的一端。请帮忙。