问题在于:
我希望在用户按下infoWindow中的按钮后向用户显示到达标记的最佳路径。问题是,由于 Latlng 和 Position 类的某些问题,我无法获取标记的位置数据。 (我使用Mapbox示例来获取路径,因此我需要两个Position值)
所以基本上,我需要通过单击自定义信息窗内的按钮,使用标记的位置更新变量 Destination 。然而,我不知道我怎么能这样做,即使经历了很多搜索谷歌和Stack Overflow。有人能帮我吗? (Cammack!)非常感谢你的帮助!
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// Origem: Rodoviaria
final Position origin = Position.fromCoordinates(-47.882645, -15.794082);
// Destino: Reitoria
final Position destination = Position.fromCoordinates(-47.866611, -15.762604);
//...
mapboxMap.setInfoWindowAdapter(new MapboxMap.InfoWindowAdapter() {
@Nullable
@Override
public View getInfoWindow(@NonNull Marker marker) {
//...
final Marker marcador = marker;
botaoIr = (Button)v.findViewById(R.id.botaoIr);
botaoIr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//I have been trying the method below, but I am having trouble with LatLng and Position classes!
//LatLng ponto = marcador.getPosition();
//destination = new Position(ponto.getLongitude(),ponto.getLatitude());
try {
getRoute(origin, destination);
} catch (ServicesException servicesException) {
servicesException.printStackTrace();
}
}
});
}
});
//...
}
答案 0 :(得分:0)
创建位置调用fromCoordinates()
。
destination = Position.fromCoordinates(ponto.getLongitude(),ponto.getLatitude());
答案 1 :(得分:0)
如果要删除地图上的所有注释,可以调用" removeAnnotations()"在MapBoxMap-Instance上:
mapboxMap.removeAnnotations();
..或者你可以打电话"删除()"来自MapBox本身的任何注释(多边形,折线或标记)
Polygon pol = new Polygon();
pol.remove();
如果它仍然存在,你只想改变&更新注释,调用" updatePolygon()"," updateMarker"或" updatePolyline()如下:
mapboxMap.updatePolygon(myPolgonInstance);
mapboxMap.updateMarker(myMarkerInstance);
...