Вы можете создать Marker
с настраиваемым значок, и выводит текст на эту иконку. Вы можете использовать этот метод следующим образом:
public Marker addText(final Context context, final GoogleMap map,
final LatLng location, final String text, final int padding,
final int fontSize) {
Marker marker = null;
if (context == null || map == null || location == null || text == null
|| fontSize <= 0) {
return marker;
}
final TextView textView = new TextView(context);
textView.setText(text);
textView.setTextSize(fontSize);
final Paint paintText = textView.getPaint();
final Rect boundsText = new Rect();
paintText.getTextBounds(text, 0, textView.length(), boundsText);
paintText.setTextAlign(Align.CENTER);
final Bitmap.Config conf = Bitmap.Config.ARGB_8888;
final Bitmap bmpText = Bitmap.createBitmap(boundsText.width() + 2
* padding, boundsText.height() + 2 * padding, conf);
final Canvas canvasText = new Canvas(bmpText);
paintText.setColor(Color.BLACK);
canvasText.drawText(text, canvasText.getWidth()/2,
canvasText.getHeight() - padding - boundsText.bottom, paintText);
final MarkerOptions markerOptions = new MarkerOptions()
.position(location)
.icon(BitmapDescriptorFactory.fromBitmap(bmpText))
.anchor(0.5f, 1);
marker = map.addMarker(markerOptions);
return marker;
}
Вам нужно будет установить местоположение LatLng
маркеров и вы должны вычислить его из Region
(например, первой точки геометрии, последняя точка, случайная точка, центроид, ...).
Также учтите, что нанесение большого количества маркеров будет иметь отрицательный эффект в производительности.
Спасибо, что было очень полезно. –
Добро пожаловать. Рад помочь! – antonio
@noni_methadoni, если это решение сработало для вас, пожалуйста, примите этот ответ, чтобы другие люди тоже могли использовать этот метод. –