我正在尝试在Google地图上对标记进行聚类,因为地图上的标记太多(大约6000多个标记)。
因此,我在Google上搜索并找到了一些有关标记聚类的文档,并将其应用于我的源代码,但是标记未显示在Google Map中。
FragMap
片段的部分源代码。
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
SupportMapFragment map = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.display_map);
if (map == null) {
Log.e(Tag, "Google Map fragment(id: display_map) is null reference!");
return;
}
map.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
if (DataPackage.getEQMarkerManager() == null) {
if (!DataPackage.initializeEQMarkerManager(getActivity(), googleMap)) {
Log.w(Tag, "EQMarkerManager initialization failure");
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及EQMarkerManager
其实现GoogleMap.OnCameraIdleListener
接口的部分源代码。
public EQMarkerManager(Context ctx, GoogleMap map) {
// ...
clusterManager = new ClusterManager<>(ctx, map);
clusterManager.setRenderer(new EQRenderer<>(ctx, map, clusterManager));
map.setOnCameraIdleListener(this); …
Run Code Online (Sandbox Code Playgroud) 第一张图描述我想要什么,第二张图是我得到的。
黑色矩形表示RecyclerView
,深红色表示它的项目。海军是ImageView
。
我在 recyclerview 所属的父视图组上尝试了 clipChildren。
有什么办法可以实现吗?(我也试过动画)
val animation = TranslateAnimation(
Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE, -dpToPixel(21f, itemView.context)
)
animation.duration = 0
imageView.startAnimation(animation)
Run Code Online (Sandbox Code Playgroud)
- - 编辑 - -
活动布局
val animation = TranslateAnimation(
Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE, -dpToPixel(21f, itemView.context)
)
animation.duration = 0
imageView.startAnimation(animation)
Run Code Online (Sandbox Code Playgroud)
ViewHolder 布局
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@android:color/black"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
请注意,我不能提供超过 60dp 的高度,并且内部项目具有固定高度 (50dp)。
空块和返回Unit有什么区别吗?
例如,我们应该让方法的空块不执行任何操作
void ThisMethodDoesNothing() { }
Run Code Online (Sandbox Code Playgroud)
在 kotlin 中,我们可以编写上面的代码,但是这样
fun ThisMethodDoesNothing() = Unit
Run Code Online (Sandbox Code Playgroud)
如果有重复请告知,谢谢。