如何执行地图标记单击此处地图(android)
我在用地图。我发现了一个问题如何知道单击了哪个标记?如何执行地图标记单击此处地图(android),android,here-api,Android,Here Api,我在用地图。我发现了一个问题如何知道单击了哪个标记? @Override public boolean onMapObjectsSelected(List<ViewObject> list) {..) @覆盖 公共布尔值onmabjectsselected(列表){..) 使用On手势监听器,我得到了这个方法,但如何找到特定的地图标记对象和地图标记标题等。要获得单击的标记,请按照下面的onmabjects selected方法进行操作 for (ViewObject viewOb
@Override
public boolean onMapObjectsSelected(List<ViewObject> list) {..)
@覆盖
公共布尔值onmabjectsselected(列表){..)
使用On手势监听器,我得到了这个方法,但如何找到特定的地图标记对象和地图标记标题等。要获得单击的标记,请按照下面的
onmabjects selected
方法进行操作
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;
}
}
}
您必须找出上面循环中选择的对象类型。@Override
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;
}
};
已选择公共布尔OnMapObject(列表){
用于(视图对象视图对象:列表){
if(viewObject.getBaseType()==viewObject.Type.USER\u对象){
MapObject MapObject=(MapObject)viewObject;
if(mapObject.getType()==mapObject.Type.MARKER){
MapMarker窗口_marker=((MapMarker)mapObject);
Log.d(“Title->”,window_marker.getTitle());
Log.d(“description->”,window_marker.getDescription());
返回true;
}
}
}
返回false;
}
参考链接:嘿thanks@AnkitaShah征求意见,但请仔细阅读问题我正在使用android中的Here map引用链接[Here map api]()引用可能会对您有所帮助。您是否在Here maps上添加了标记?是的,@Akash Patel,但在Here map中,我们使用mapMarker而不是marker mapMarkerDemo=new mapMarker(新地理坐标(lat,lng),myImage);mapMarkerDemo.setTitle(“markerTitle”);mapMarkerDemo.setDescription(“此标记添加用于演示”);hereMap.addMapObject(mapMarkerDemo);但我想在地图标记clickedwell上显示toast或获取地图标记信息,我正在尝试类似的事情{for(ViewObject obj:list){if(obj.getBaseType().equals(MapObject.Type.MARKER)){for(int i=0;im_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;
}