我创建了一个customMarker,除了图像之外,它还在底部包含一个带有名称的标签。如果我创建">FolderOverlay";一切正常,我看到我的自定义标记。
这是我的customMarker
class MarkerWithLabel(mapView: MapView?, val label: String) : Marker(mapView) {
val textPaint = Paint()
init {
with(textPaint){
color = Color.BLACK
textSize = 35f
isAntiAlias = true
typeface = Typeface.DEFAULT_BOLD
textAlign = Paint.Align.CENTER
}
}
override fun draw(c: Canvas, osmv: MapView?, shadow: Boolean) {
draw(c, osmv)
}
fun draw(c: Canvas, osmv: MapView?) {
super.draw(c, osmv, false)
val p: Point = mPositionPixels // already provisioned by Marker
c.drawText(label, p.x.toFloat(), (p.y + 30).toFloat(), textPaint)
}
}
创建">RadiusMarkerClusterer";另一方面,不显示CustomMarker下面的标签。实际上,似乎osmBonuspack不使用我的CustomMarker,但正常的标记。
我这样说是因为它不会覆盖我的CustomMarker的绘制方法。
我该如何解决这个问题?
在markercluster .java中,绘图块代码如下:
for (StaticCluster cluster:mClusters){
cluster.getMarker().draw(canvas, mapView.getProjection());
如你所见,被调用的方法是:public void draw(Canvas Canvas,投影pj)所以你应该尝试重写这个方法。