gpt4 book ai didi

java - 两个标记 - MapBox Android 上的当前位置和目的地

转载 作者:行者123 更新时间:2023-12-02 02:38:32 26 4
gpt4 key购买 nike

情况是这样的。我使用 Google Play 位置服务和 MapBox API map 。当我启动应用程序时,我立即在 map 上显示当前用户位置:

private void add() {
currentMarker = new MarkerOptions()
.position(currentLatLng);

mMapBoxMap.addMarker(currentMarker);
}

并更新我的位置更改的标记位置:

 private void update() {
moveCamera();
mMapBoxMap.clear();//Clear map so no multiple current location markers
currentMarker = new MarkerOptions()
.position(currentLatLng);

mMapBoxMap.addMarker(currentMarker);
}

然后,当显示当前位置时,我允许用户单击 map 并设置他的目的地(他的当前位置是原点):

mMapBoxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() {
@Override
public void onMapClick(@NonNull LatLng point) {
MarkerOptions markerOptions = new MarkerOptions().position(point);


mapboxMap.addMarker(markerOptions);
destinationLat = point.getLatitude();
destinationLng = point.getLongitude();


}
});

当我单击 map 时,它会删除每个标记并放置一个新的目的地标记,稍后会出现当前位置标记。

我的问题:

  1. 如何在 map 上添加目的地标记,以便每次单击 map 时当前位置标记仍会更新并且不会消失?例如 - 我在 map 上添加一个目的地标记(现在有两个标记),如果我移动 10 米,我当前的位置标记会移动,但目的地标记保持不变

最佳答案

您需要使用标记的引用并使用removeMarker()仅删除某些标记。所以有一个变量:

Marker myDestinationMarker = mapboxMap.addMarker(markerOptions);

然后在它的正上方使用:

if (myDestinationMarker != null) {
mapboxMap.removeMarker(myDestinationMarker);
}

请注意两件事,您可以使用 setPosition 而不是添加/删除标记,并且为了显示用户位置,我们提供 LocationLayer Plugin .

关于java - 两个标记 - MapBox Android 上的当前位置和目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45870347/

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