【问题标题】:It Take too much time to drag marker on google map在谷歌地图上拖动标记需要太多时间
【发布时间】:2014-08-24 11:23:54
【问题描述】:

我正在研究 google map api v2,我想让我的标记可拖动为 true, 只是我想将我的标记从一个位置拖到另一个位置,但是需要时间来关注那个标记。

以下是我的代码,请建议我哪里做错了

活动:

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

public class DragMarker extends FragmentActivity implements OnMarkerDragListener {

    private static GoogleMap map;

    @Override
    protected void onCreate(Bundle saveInstance) {
        super.onCreate(saveInstance);
        setContentView(R.layout.activity_test_drag_marker);

        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        map.setOnMarkerDragListener(this);

        //map.setOnMapLongClickListener(this);
        //      map.setOnMapClickListener(this);

        CameraPosition INIT = new CameraPosition.Builder().target(new LatLng(19.0222, 72.8666)).zoom(17.5F).bearing(300F) // orientation
                .tilt(50F) // viewing angle
                .build();

        // use map to move camera into position
        map.moveCamera(CameraUpdateFactory.newCameraPosition(INIT));

        //create initial marker
        map.addMarker(new MarkerOptions().position(new LatLng(19.0216, 72.8646)).draggable(true).title("Location").snippet("First Marker")).showInfoWindow();
    }

    @Override
    public void onMarkerDrag(Marker arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onMarkerDragEnd(Marker arg0) {
        // TODO Auto-generated method stub
        LatLng dragPosition = arg0.getPosition();
        double dragLat = dragPosition.latitude;
        double dragLong = dragPosition.longitude;
        Log.i("info", "on drag end :" + dragLat + " dragLong :" + dragLong);
        Toast.makeText(getApplicationContext(), "Marker Dragged..!", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onMarkerDragStart(Marker arg0) {
        // TODO Auto-generated method stub

    }

    /*@Override
    public void onMapClick(LatLng arg0) {
        // TODO Auto-generated method stub
        map.animateCamera(CameraUpdateFactory.newLatLng(arg0));
    }*/

    /*@Override
    public void onMapLongClick(LatLng arg0) {
        // TODO Auto-generated method stub

        //create new marker when user long clicks
        map.addMarker(new MarkerOptions().position(arg0).draggable(true));
    }*/
}

XML:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

【问题讨论】:

  • 我有同样的问题,你解决了吗?

标签: android google-maps drag-and-drop google-maps-markers android-maps-v2


【解决方案1】:

把标记拖拽:

Marker perth = mMap.addMarker(new MarkerOptions().position(PERTH).draggable(true));

【讨论】:

    【解决方案2】:

    // 创建 MarkerOptions

               MarkerOptions options = new MarkerOptions();
    

    // 设置标记的位置

               options.position(point);
    

    //设置标记可拖动为真

               options.draggable(true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-02
      • 2016-04-10
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2012-08-07
      • 2011-08-07
      相关资源
      最近更新 更多