Reputation: 275
I try to draw polyline between two locations on google map in android as shown in the image I try to draw polyline between two locations on google map in android as shown in the image how can I draw this?
but I cannot draw perfect how can I draw it
I try below code but it's not working
here is my code:
public void mSetUpMap() {
googleMap.clear();
if (AppUtil.itinerary != null)
str = AppUtil.itinerary.getItinerary();
if (AppUtil.itinerary != null)
shareUrl = AppUtil.itinerary.getShareUrl();
Log.e("Ittt", "" + AppUtil.itinerary.getItinerary());
((HomeActivity) getActivity()).setTexrViewText(str);
poiList.clear();
poiList = AppUtil.itinerary.getPoiList();
List<Marker> markersList = new ArrayList<>();
for (POI item: poiList) {
Marker m1 = googleMap.addMarker(new MarkerOptions().position(new
LatLng(item.getLatitude(), item.getLongitude()))
.title(item.getName()).anchor(0.39f, 0.39f)
.icon(BitmapDescriptorFactory.fromBitmap(getCustomMarker
((R.drawable.m2red), item.getName()))));
}
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener()
{
@Override
public boolean onMarkerClick(final Marker marker) {
ValueAnimator ani = ValueAnimator.ofFloat(0, 1);
ani.setDuration(2000);
ani.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation) {
marker.setAlpha((float) animation.getAnimatedValue());
}
});
ani.start();
return true;
}
});
/**create for loop for get the latLngbuilder from the marker list*/
builder = new LatLngBounds.Builder();
for (Marker m : markersList) {
builder.include(m.getPosition());
}
int padding = 200;
LatLngBounds bounds = builder.build();
cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
/**set animated zoom camera into map*/
googleMap.animateCamera(cu);
PolylineOptions polylineOptions = new PolylineOptions();
for (POI item : poiList) {
polylineOptions.add(new LatLng(item.getLatitude(),
item.getLongitude()));
}
polylineOptions.width(3);
polylineOptions.getPoints();
polylineOptions.getPoints();
polylineOptions.color(getResources().getColor(R.color.red));
Polyline line = googleMap.addPolyline(polylineOptions);
}
});
}
Upvotes: 2
Views: 267
Reputation: 201
just change this code:
Marker m1 = googleMap.addMarker(new MarkerOptions().position(new
LatLng(item.getLatitude(), item.getLongitude()))
.title(item.getName()).anchor(0.6f, 0.7f)
.anchor() method is work
Upvotes: 3