【问题标题】:How to perform map marker click in HERE MAP (android )如何在 HERE MAP 中执行地图标记点击(android)
【发布时间】:2018-01-09 15:00:39
【问题描述】:

我正在使用地图。我发现了一个问题。 我如何知道点击了哪个标记?

@Override
public boolean onMapObjectsSelected(List<ViewObject> list) {..)

使用 On Gesture Listener 我得到了这个方法,但是如何找到特定的地图标记对象和地图标记标题等。

【问题讨论】:

  • 参考链接:thisthis
  • 嘿,谢谢@Ankita Shah 的评论,但请仔细阅读问题,我在 android 中使用 Here map 参考链接 [here map api] (developer.here.com)
  • 请参考this 可能会对您有所帮助。
  • 您是否在此处的地图上添加了标记?
  • 是的,@Akash Patel 但在这里我们使用 mapMarker insted of marker mapMarkerDemo = new MapMarker(new GeoCoordinate(lat,lng), myImage); mapMarkerDemo.setTitle("markerTitle"); mapMarkerDemo.setDescription("这个标记是为演示添加的");这里Map.addMapObject(mapMarkerDemo);但我想在点击的地图标记上显示 toast 或获取地图标记信息

标签: android here-api


【解决方案1】:

要获取点击了哪个标记,请在onMapObjectsSelected 方法中执行以下操作。

for (ViewObject viewObject : list) {
    if (viewObject.getBaseType() == ViewObject.Type.USER_OBJECT) {
        MapObject mapObject = (MapObject) viewObject;

        if (mapObject.getType() == MapObject.Type.MARKER) {

           MapMarker window_marker = ((MapMarker) mapObject);

           System.out.println("Title is................."+window_marker.getTitle());

              return false;
            }
        }
   }

你必须像上面那样找出循环中选择的对象类型。

【讨论】:

  • 好吧,我正在尝试这样的事情 { for (ViewObject obj : list) { if (obj.getBaseType().equals(MapObject.Type.MARKER)) { for (int i = 0; i
  • 当我使用 latLong arraylst 添加标记然后 List list size() 显示总是为零时,为什么会出现另一个问题..?
  • @kushal 您如何在此处的地图上添加标记?编辑问题或问另一个问题。
  • ...等一下,添加一个详细的任务
【解决方案2】:
  MapGesture.OnGestureListener onGestureListenernew= new 
  MapGesture.OnGestureListener() {
    @Override
    public void onPanStart() {

    }

    @Override
    public void onPanEnd() {

    }

    @Override
    public void onMultiFingerManipulationStart() {

    }

    @Override
    public void onMultiFingerManipulationEnd() {

    }

    @Override
    public boolean onMapObjectsSelected(List<ViewObject> list) {

        for (ViewObject viewObject : list) {
            if (viewObject.getBaseType() == ViewObject.Type.USER_OBJECT) {
                MapObject mapObject = (MapObject) viewObject;

                if (mapObject.getType() == MapObject.Type.MARKER) {

                    MapMarker window_marker = ((MapMarker)mapObject);
                     Log.d("danish","danish");
                    System.out.println("Title is................."+window_marker.getInfoBubbleHashCode());
                    Toast.makeText(m_activity,"Hello"+window_marker.getCoordinate(),Toast.LENGTH_LONG).show();
                    return false;
                }
            }
        }
        return false;
    }

    @Override
    public boolean onTapEvent(PointF pointF) {

        return false;
    }

    @Override
    public boolean onDoubleTapEvent(PointF pointF) {
        return false;
    }

    @Override
    public void onPinchLocked() {

    }

    @Override
    public boolean onPinchZoomEvent(float v, PointF pointF) {
        return false;
    }

    @Override
    public void onRotateLocked() {

    }

    @Override
    public boolean onRotateEvent(float v) {
        return false;
    }

    @Override
    public boolean onTiltEvent(float v) {
        return false;
    }

    @Override
    public boolean onLongPressEvent(PointF pointF) {
        return false;
    }

    @Override
    public void onLongPressRelease() {

    }

    @Override
    public boolean onTwoFingerTapEvent(PointF pointF) {
        return false;
    }
};

然后添加

m_mapFragment.getMapGesture().addOnGestureListener(onGestureListenernew);

【讨论】:

    【解决方案3】:
    @Override
    public boolean onMapObjectsSelected(List<ViewObject> list) {
    
        for (ViewObject viewObject : list) {
            if (viewObject.getBaseType() == ViewObject.Type.USER_OBJECT) {
                MapObject mapObject = (MapObject) viewObject;
    
                if (mapObject.getType() == MapObject.Type.MARKER) {
    
                    MapMarker window_marker = ((MapMarker)mapObject);
                    Log.d("Title->",window_marker.getTitle());
                    Log.d("description->",window_marker.getDescription());
                   return true;
                }
            }
        }
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2018-01-04
      相关资源
      最近更新 更多