我刚才这个方法是在途经点上方覆盖的,那么我点击地图上的Marker后发现不是我list中的marker。这是咋回事?
时间: 2024-03-13 09:47:28 浏览: 21
这种情况可能是因为你在地图上添加的Marker对象和你维护的途经点Marker列表中的Marker对象不是同一个对象,因此点击地图上的Marker后发现不是你List中的Marker。可以尝试将你添加的Marker对象保存到一个Hash表中,然后在Marker的点击事件中通过Marker对象获取对应的途经点信息。可以按照以下步骤进行:
1. 在添加Marker时,将Marker对象和途经点信息保存到一个Hash表中
```java
HashMap<Marker, NaviLatLng> markerMap = new HashMap<>();
for (NaviLatLng wayPoint : wayPoints) {
Marker marker = aMap.addMarker(new MarkerOptions()
.position(new LatLng(wayPoint.getLatitude(), wayPoint.getLongitude()))
.icon(customMarkerIcon)
.anchor(0.5f, 1.0f));
marker.setZIndex(999);
markerMap.put(marker, wayPoint);
}
```
2. 在Marker的点击事件中,通过点击的Marker对象获取对应的途经点信息
```java
aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
NaviLatLng wayPoint = markerMap.get(marker);
if (wayPoint != null) {
// 处理途经点点击事件
return true;
}
return false;
}
});
```
在处理途经点点击事件时,你可以根据途经点信息进行相应的处理。