相关疑难解决方法(0)

如何在标记下移动地图?

假设我们在地图上有一个居中的标记,当我们用手指移动地图时,我们可以看到当你离开该区域时,标记将不再显示.那么我们怎样才能制作一个始终位于地图中心的标记,尽管我们将地图移动到任何地方?有一个名为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)

android google-maps google-maps-markers

31
推荐指数
2
解决办法
3万
查看次数

无论你在哪里捏缩放android,都要保持地图居中

我正在寻找类似Uber处理捏缩放事件的方式.无论您在屏幕上捏什么,它都会使地图居中并放大中心位置.有没有办法在地图片段上没有某种叠加的情况下做到这一点?或者我应该只禁用地图的事件,在地图片段上创建叠加层,并处理叠加层中的所有缩放/其他事件?

android location google-maps zoom

14
推荐指数
2
解决办法
5701
查看次数

如何在Uber和Lyft等地图上附上灵活的标记?

如何在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

7
推荐指数
1
解决办法
1万
查看次数

如何始终将地图标记保持在屏幕中央?安卓

我试图找到一种方法将我的地图标记放在我的地图片段活动中。到目前为止,我已经尝试在每次移动地图时在屏幕中心添加一个标记,即更新相机位置。但是这个解决方案的问题是,每次在地图的中心添加一个新标记,而旧标记留在那里,所以只需拖动几次,我的屏幕上就会有 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,但问题是我想更改标记的图标。但是当我将图像图像添加到图像视图时,相机的中心位于该图像中心的绿色小圆圈中,而不是像我想要的那样尖的一端。请帮忙。

java xml android google-maps

5
推荐指数
1
解决办法
8151
查看次数