小编Tim*_*Tim的帖子

为Google Map v2 Fragment创建OnDragListener

我正在尝试为谷歌地图片段设置onDrag Listener,但无法触发拖动事件.由于地图不直接支持拖动事件,我正在尝试为View实现拖动侦听器.我知道onMarkerDrag事件,但这对我没有好处,因为我不想移动标记.

捕获地图拖动事件的原因有两个:

首先检测用户是否已平移地图.如果他们没有,我喜欢将他们的位置保留在屏幕上,如果它不在地图上,则动画显示他们的位置.如果他们已经平移了地图,我会假设他们知道他们想要看到什么并强制在屏幕上显示位置.(这似乎应该包含在API中)

陷印的第二个原因是允许用户在地图上绘制线条和多边形.我可以使用onTap事件(添加点)来做到这一点,但我也希望能够让它们自由地使用它.

我的代码看起来像这样:

主要活动:

    mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    setUpMapIfNeeded();
    mMapView = findViewById(R.id.map);
    myMapDragListener = new MapDragListener();
    mMapView.setOnDragListener(myMapDragListener);
Run Code Online (Sandbox Code Playgroud)

听众:

public class MapDragListener implements OnDragListener {
    /**
     * 
     */
    public MapDragListener() {
        super();
        say.logCat("MapDragListener: I'm ALIVE!!!!");
    }

    private AkamaiAnnounce say = new AkamaiAnnounce();
    private boolean inDrag;
    private boolean hasPanned=false;

    @Override
    public boolean onDrag(View v, DragEvent event) {
        say.logCat("MapDragListener.onDrag: " + event.toString());
        //String dotTAG = (String) getTag();
        if (event.getLocalState() != this) {
          return false;
        }
        boolean myResult = true;
        int …
Run Code Online (Sandbox Code Playgroud)

android google-maps drag google-maps-android-api-2

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