gpt4 book ai didi

android - 拖动折线 onMarkerDrag Android 谷歌地图 v2

转载 作者:行者123 更新时间:2023-11-30 03:08:39 25 4
gpt4 key购买 nike

我目前正在开发一个 Android 应用程序,允许用户在 map 上绘制带标记的多段线。现在,我想实现一个功能,只要拖动标记,折线就可以拖动,并在调用 onMarkerDragEnd() 方法时更新折线。有谁知道我怎么能做到这一点?下面是我的代码 fragment 。谢谢!

googleMap.setOnMapClickListener(new OnMapClickListener(){

@Override
public void onMapClick(LatLng point) {
// TODO Auto-generated method stub
if(drawMode == true && arrayPoints.isEmpty()){

MarkerOptions marker=new MarkerOptions();
marker.position(point);
googleMap.addMarker(marker).setDraggable(true);
arrayPoints.add(point);
marker.draggable(true);


}
else if(drawMode == true){
Log.e("","IN SECOND");
MarkerOptions marker=new MarkerOptions();
marker.position(point);
googleMap.addMarker(marker).setDraggable(true);
arrayPoints.add(point);
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.color(Color.BLUE);
polylineOptions.width(5);
polylineOptions.addAll(arrayPoints);
Polyline drawRoute = googleMap.addPolyline(polylineOptions);
}
}

});

最佳答案

首先让 Polyline drawRoute 成为一个字段而不是局部变量。然后您可以通过调用 drawRoute.setPoints(arrayPoints) 更新 onMarkerDragEnd 内的折线。

然后您还需要一个 Java-Map,它跟踪哪个标记负责数组中的哪个点。该 map 会将标记 ID 作为键,将数组索引作为值。 (您从 map.addMarker 返回的标记中获取标记 ID)当一个marker被拖动时,你可以通过marker-ID和Java-Map找到对应Point在arrayPoints中的索引。这样,您就可以交换数组中的点并再次调用 drawRoute.setPoints。

关于android - 拖动折线 onMarkerDrag Android 谷歌地图 v2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com