android - 如何使用 Android 在 Google map 中的两个位置之间绘制折线?

标签 android google-maps android-maps

我尝试在 Android 中的谷歌地图上的两个位置之间绘制折线,如图所示 我尝试在 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);
     }
   });
 }

最佳答案

只需更改此代码:

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

.anchor() 方法有效

关于android - 如何使用 Android 在 Google map 中的两个位置之间绘制折线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52076095/

相关文章:

android - 如何在android中的 map 上画线

android - Android应用中的YouTube迷你播放器通过编程方式

Android:为什么这个对话框弹出两次?

java - 单击某些 ListView 项目时如何调用特定号码

google-maps - egmap 谷歌地图 Yii 不将数据保存到数据库

Android: map 绘制性能,1K图纸!

android - 我做错了什么 - MapView 上的灰色方 block

javascript - 在嵌入式 map /谷歌地图 API 上使用标准谷歌地图接口(interface)

javascript - 如何在javascript中访问这个函数

android - 子类化 SupportMapFragment 导致 NullPointerException