I am using polygons on map and I want to have a text on them. Is there any possible way to do this? I tried to put simple text on map point but didn't make it.
private void addPolygon(Region reg) {
PolylineOptions polylineOptions = new PolylineOptions();
ArrayList<LatLng> coordList=reg.getAllPoints();
coordList.add(coordList.get(0));
int regColor = reg.getColor();
String regName = reg.getName();
//want to put a name on region
polylineOptions.addAll(coordList);
polylineOptions
.width(5)
.color(Color.BLACK);
if (regColor != 0)
polylineOptions
.color(regColor);
map.addPolyline(polylineOptions);
//text on shape?
}
You can create a Marker
with a custom icon, and draw the text on that icon. You can use a method like this:
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;
}
You will need to set the location LatLng
of the marker and you will have to calculate it from your Region
(for example the first point of the geometry, the last point, a random point, the centroid, ...).
Also, take into account that drawing a lot of markers will have a negative effect in the performance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With