java – 在Mapxbox Android上没有在样式化的MapView上显示标记

我在Mapbox Android上需要一些帮助.我在默认样式的地图上绘制了折线和一些自定义标记没有问题,但是,当我将默认样式更改为自定义样式时,我仍然可以看到折线但不绘制标记(既不是自定义标记也不是默认标记).

任何人都可以帮我解决这个问题吗?

这是我的代码:

//Setting style
mapView.setStyleUrl(Constants.MAP_URL_GREEN);

//Adding polilyne
PolylineOptions options = new PolylineOptions();

for(double[] coordArray : route.getListCoords()) {
    options.add(new LatLng(coordArray[0], coordArray[1]));
 }
options.color(ContextCompat.getColor(getContext(), R.color.color_end_green));
options.width(5);

mapView.addPolyline(options);

//Adding markers
MarkerOptions currentMarker;
for(Point point : route.getListPoints()){
    currentMarker = getMarkerFromPoint(point);
    markers.add(mapView.addMarker(currentMarker));
}

getMarkerFromPoint的位置是:

private MarkerOptions getMarkerFromPoint(Point point) {

    MarkerOptions markerOptions = new MarkerOptions();
    markerOptions.position(new LatLng(point.getLat(), point.getLng()));
    //markerOptions.icon(MapUtils.getPointIcon(point, getContext()));

    return markerOptions;
}

编辑:我正在使用MapBox Android SDK 3.2.0.

提前致谢

解决方法:

所以我测试了一些代码,但无法重现您遇到的问题.我的应用程序以默认样式图开始,然后在用户单击时它将更改为我的一个自定义矢量样式.我确实改变了一些可能无意中修复了问题的代码,最值得注意的改变是使用了Point I而不是使用LatLng.我也没有创建标记列表来添加标记一次创建.

List<LatLng> route = new ArrayList<>();
route.add(new LatLng(29.751260, -95.373639));
route.add(new LatLng(29.752881, -95.374454));
route.add(new LatLng(29.755107, -95.374583));

//Adding markers
MarkerOptions currentMarker;
for(int i=0; i<route.size(); i++) {
    currentMarker = getMarkerFromPoint(route.get(i));
    mapView.addMarker(currentMarker);
    }

我的getMarkerFromPoint()方法:

private MarkerOptions getMarkerFromPoint(LatLng point) {
    MarkerOptions markerOptions = new MarkerOptions();
    markerOptions.position(point);
    return markerOptions;
}

我希望这可以帮助您解决问题,如果我找到解决方案,我将编辑此答案.

上一篇:javascript – 反应中的Mapbox(ReferenceError:L未定义)


下一篇:javascript – Mapbox GL JS:如果单击标记,则忽略地图点击事件