gpt4 book ai didi

java - 谷歌地图 API。投影

转载 作者:行者123 更新时间:2023-12-01 10:18:40 26 4
gpt4 key购买 nike

我正在尝试将 ImageView 拖动到谷歌地图并将其作为标记放置。 map 位于 FrameLayout 中:

   <FrameLayout
android:id="@+id/map_frg"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2">

我已经设置了这个FrameLayout OnDragListener:

private class PinDragListener implements View.OnDragListener {

private GoogleMap map;

public PinDragListener(GoogleMap map) {
this.map = map;
}

@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DROP:
MarkerOptions markerOptions = new MarkerOptions()
.draggable(true)
.anchor(0.0f, 1.0f);
int[] coords = new int[2];
v.getLocationOnScreen(coords);
Projection projection = map.getProjection();
LatLng latLng = projection.fromScreenLocation(new Point(coords[0], coords[1]));
markerOptions.position(latLng);
markerOptions.visible(true);
map.addMarker(markerOptions);
break;
default:
break;
}
return true;
}
}

但是当图像被放置在某个地方时,标记一次又一次地放置在左角。有什么问题吗?

更新:

我已经通过监听器传递了拖动 View

private class PinTouchListener implements OnTouchListener {

@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
v.startDrag(data, shadowBuilder, v, 0);
dragPinListener.onViewTouched(v);
return true;
} else {
return false;
}
}
}

每次我放下标记时我都会得到这样的坐标

x = 0 | y = 1234
Lat = 65.96291676309829 | Lng = -18.548969998955727

最佳答案

对于拖拽过程中发生的每个特定事件,都会调用 OnDragListener.onDrag() 方法,并传入一个 DragEvent 来描述每个事件的具体情况。每个 DragEvent 将具有以下操作之一:

ACTION_DRAG_LOCATION :发送到 ACTION_DRAG_ENTERED 和 ACTION_DRAG_EXITED 之间的 View ,并包含该 View 内拖动的当前位置。 ・ 可以使用 getX() 和 getY() 获取位置。

它是如何运作的这里是example关于拖放功能,我们创建了一个实现 OnDragListener 接口(interface)的自定义 ImageView。

请引用以下链接: http://www.tutorialspoint.com/android/android_drag_and_drop.htm https://github.com/wada811/Android-View-Drag-And-Drop-Sample/blob/master/app/src/main/java/com/wada811/android_view_drag_and_drop_sample/DragAndDropFrameLayout.java

希望有帮助。

关于java - 谷歌地图 API。投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759156/

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