两个标记 - MapBox 上的当前位置和目的地 Android
Two markers - current location and destination on MapBox Android
情况是这样的。我使用 Google 播放位置服务和 MapBox API 地图。当我启动应用程序时,我会立即在 A 地图上显示当前用户位置:
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);
}
然后,当显示当前位置时,我允许用户点击地图并设置他的目的地(他的当前位置是原点):
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();
}
});
当我点击地图时,它会擦除所有标记并放置一个新的目的地标记,稍后会出现当前位置标记。
我的问题:
- 如何在地图上添加目的地标记,以便每次单击地图时当前位置标记仍会更新并且不会消失?
例如 - 我在地图上添加了一个目的地标记(现在有两个标记),如果我移动 10 米,我的当前位置标记移动但目的地标记保持不变
你需要使用标记的引用,使用removeMarker()
只删除某些标记。所以有一个变量:
Marker myDestinationMarker = mapboxMap.addMarker(markerOptions);
然后在其正上方使用:
if (myDestinationMarker != null) {
mapboxMap.removeMarker(myDestinationMarker);
}
注意两点,您可以使用 setPosition
而不是 adding/removing 标记,为了显示用户位置,我们提供 LocationLayer Plugin.
情况是这样的。我使用 Google 播放位置服务和 MapBox API 地图。当我启动应用程序时,我会立即在 A 地图上显示当前用户位置:
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);
}
然后,当显示当前位置时,我允许用户点击地图并设置他的目的地(他的当前位置是原点):
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();
}
});
当我点击地图时,它会擦除所有标记并放置一个新的目的地标记,稍后会出现当前位置标记。
我的问题:
- 如何在地图上添加目的地标记,以便每次单击地图时当前位置标记仍会更新并且不会消失? 例如 - 我在地图上添加了一个目的地标记(现在有两个标记),如果我移动 10 米,我的当前位置标记移动但目的地标记保持不变
你需要使用标记的引用,使用removeMarker()
只删除某些标记。所以有一个变量:
Marker myDestinationMarker = mapboxMap.addMarker(markerOptions);
然后在其正上方使用:
if (myDestinationMarker != null) {
mapboxMap.removeMarker(myDestinationMarker);
}
注意两点,您可以使用 setPosition
而不是 adding/removing 标记,为了显示用户位置,我们提供 LocationLayer Plugin.