地图框 Android :图标重叠和 SymbolManager OnClickListener
Map-box Android : Icon Overlapping and SymbolManager OnClickListener
我在使用符号管理器时遇到了一个奇怪的问题。当我允许图标重叠时,多次触发符号管理器的点击监听器。当我不将 Allow Icon Overlap 设置为 true 时,不会发生这种情况。但是我需要在地图上显示所有符号,并且每个符号都必须在单击时打开一个对话框。
这是一个已知问题还是我做错了什么?
感谢您的帮助!
I too had the same problem. I used the symbolManager.addClickListener within the forloop which triggered the click multiple times.
I resolved it by using the symbolManager.addClickListener inside onMapReady method.
public void onMapReady(@NonNull MapboxMap mapboxMap) {
map = mapboxMap;
map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
symbolManager = new SymbolManager(mapView, mapboxMap, style);
// symbolManager.setIconAllowOverlap(true);
symbolManager.addClickListener(new OnSymbolClickListener() {
@Override
public void onAnnotationClick(Symbol symbol) {
}
});
}
});
}
我在使用符号管理器时遇到了一个奇怪的问题。当我允许图标重叠时,多次触发符号管理器的点击监听器。当我不将 Allow Icon Overlap 设置为 true 时,不会发生这种情况。但是我需要在地图上显示所有符号,并且每个符号都必须在单击时打开一个对话框。
这是一个已知问题还是我做错了什么?
感谢您的帮助!
I too had the same problem. I used the symbolManager.addClickListener within the forloop which triggered the click multiple times.
I resolved it by using the symbolManager.addClickListener inside onMapReady method.
public void onMapReady(@NonNull MapboxMap mapboxMap) {
map = mapboxMap;
map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
symbolManager = new SymbolManager(mapView, mapboxMap, style);
// symbolManager.setIconAllowOverlap(true);
symbolManager.addClickListener(new OnSymbolClickListener() {
@Override
public void onAnnotationClick(Symbol symbol) {
}
});
}
});
}