如何在 HERE MAP (android ) 中执行地图标记点击
How to perform map marker click in HERE MAP (android )
我正在使用地图。我发现了一个问题。 我怎么知道点击了哪个标记?
@Override
public boolean onMapObjectsSelected(List<ViewObject> list) {..)
使用 On Gesture Listener 我得到了这个方法,但是如何找到特定的地图标记 object 和地图标记标题等
要获取点击了哪个标记,请按照下面的 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;
}
}
}
你必须找出上面循环中选择的对象类型。
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);
@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;
}
我正在使用地图。我发现了一个问题。 我怎么知道点击了哪个标记?
@Override
public boolean onMapObjectsSelected(List<ViewObject> list) {..)
使用 On Gesture Listener 我得到了这个方法,但是如何找到特定的地图标记 object 和地图标记标题等
要获取点击了哪个标记,请按照下面的 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;
}
}
}
你必须找出上面循环中选择的对象类型。
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);
@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;
}