删除或移动标记(Mapbox Android)

时间:2016-11-09 21:24:54

标签: android mapbox mapbox-marker

我正在使用Mapbox SDK Android(' com.mapbox.mapboxsdk:mapbox-android-sdk:4.1.1@aar'以及' com.mapbox.mapboxsdk:mapbox- Android的服务:1.1.0@aar')。 我使用离线地图并放置标记,但删除和设置位置不要'工作

我在全球宣布:

private MapboxMap mapboxMap2;
private MarkerViewOptions marker_inter;

然后在我的OnMapReadyCallback()中,我用以下方法保存MapboxMap:

 public void onMapReady(MapboxMap mapboxMap)
        {
            mapboxMap2 = mapboxMap;

所以我后来可以使用它。

同样在OnMapReadyCallback中,我使用了标记:

                marker_inter = new MarkerViewOptions()
                        .position(new LatLng(the_lagps_inter, the_logps_inter))
                        .title("Intervention")
                        .snippet("Desc inter")
                        .icon(iconeInter);
                markerView = mapboxMap.addMarker(marker_inter);

标记设置正确。 然后在onMapClick(@NonNull LatLng点)上检索点击的坐标(这是正确的)。但是:

1)如果我尝试使用以下方法删除标记:

  mapboxMap2.removeMarker(marker_inter);

我得到&#34; MapboxMap中的removeMarker(com.mapbox.mapboxsdk.annotations.Marker)无法应用于(com.mapbox.mapboxsdk.annotations.MarkerViewOptions)&#34; < / p>

2)如果我尝试使用以下方式设置新职位:

    marker_inter.setPosition(new LatLng(the_lagps_inter, the_logps_inter));

我得到:&#34; 无法解析方法&#39; setPosition(com.mapbox.maboxsdk.geometry.LatLng)&#34;

注意:我导入了com.mapbox.mapboxsdk.geometry.LatLng;

似乎removeMarker不能使用MarkerViewOptions,而且几何中的setPosition不再是.LatLng ??

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要使用MarkerView而不是MarkerViewOptions删除标记。将您的代码更改为:

private MarkerView marker_inter;

...

marker_inter = mapboxMap.addMarker(new MarkerViewOptions()
    .position(new LatLng(the_lagps_inter, the_logps_inter))
    .title("Intervention")
    .snippet("Desc inter")
    .icon(iconeInter));

然后尝试删除MarkerView并设置它的位置。