Как нарисовать полилинию между двумя точками на карте Google с помощью Android? - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь нарисовать ломаную линию между двумя местоположениями на карте Google в Android, как показано на рисунке. Я пытаюсь нарисовать ломаную линию между двумя местоположениями на карте Google в Android, как показано на изображении. Как это нарисовать?

correct image но я не могу нарисовать идеально, как я могу это нарисовать

Я пробую приведенный ниже код, но он не работает

вот мой код:

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);
     }
   });
 }

1 Ответ

0 голосов
/ 28 сентября 2018

просто измените этот код:

Marker m1 = googleMap.addMarker(new MarkerOptions().position(new 
LatLng(item.getLatitude(), item.getLongitude()))
        .title(item.getName()).anchor(0.6f, 0.7f)

.anchor () метод работает

...