- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现 Google Maps Android 标记聚类实用程序。我遇到的问题是在最大缩放时重叠 ClusterItems。我对此的解决方案是:通过扩展 DefaultClusterRenderer 创建自定义渲染器。然后防止在最大缩放时聚类,接下来允许 ClusterItems 在最大缩放时可拖动(否则不允许拖动)。
@Override
protected void onBeforeClusterItemRendered(MarkerList.Markers markers, MarkerOptions markerOptions) {
mImageView.setImageBitmap(getImage(markers));
Bitmap icon = mIconGenerator.makeIcon();
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon)).title(markers.getEntity().getPostType());
//allow user to drag overlapping ClusterItems to inspect individually
if(MAX_CAMERA_ZOOM <= cameraZoom){
markerOptions.draggable(true);
}else{
markerOptions.draggable(false);
}
}
@Override
protected boolean shouldRenderAsCluster(Cluster cluster) {
//Never render clusters at max zoom
if (MAX_CAMERA_ZOOM <= cameraZoom ) {
return false;
} else {
return cluster.getSize() > 2;
}
}
这将在我的手机上运行一段时间,然后聚类停止并且拖动的 ClusterItems 成为永久性的,以便显示的 ClusterItems 的数量增加(同一项目的许多副本在 map 上)。新拖动的 ClusterItems 不可点击,因此我认为它们只是未被删除的图标。谁能帮我找到解决办法?我猜我需要在拖动后以编程方式删除拖动的图标。尽管对解决我的问题的任何建议都将不胜感激。
最佳答案
看来问题是由 MapFragment 暂停和渲染器未删除 map 上额外的 ClusterItems 引起的。所以在 onPause 中调用 map.clear 似乎已经解决了额外的 ClusterItems 的问题。
@Override
public void onPause() {
//Clear lost ClusterItems
if (mMap != null) {
mMap.clear();
}
if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
super.onPause();
mMapView.onPause();
}
这可行,但我不确定为什么项目会丢失,我猜这个问题与暂停 MapFragment 而不是拖动 ClusterItem 有关,所以我将更改标题以反射(reflect)这一点。
关于android - (Google Maps Android 标记聚类实用程序) fragment 暂停时未删除聚类项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28773524/
在我们的数据库表上,我们使用两个唯一的非聚集索引来创建跨四个字段的唯一约束。我们使用两个,因为其中一个字段 ZipCode 是一个可为空的字段。如果表中存在一条包含 ZipCode 的 null 条目
我刚刚开始学习 Rails 3 教程,以便对框架有一点熟悉,但我在生成 schema.rb 时遇到了问题。我的操作系统是 Windows 7 x64、Ruby 1.9.2、MySQL2 gem 0.2
我是一名优秀的程序员,十分优秀!