有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    因此,我测试了您的一些代码,但无法重现您遇到的问题。我的应用程序以默认样式图开始,然后在用户单击时,它将更改为我的自定义向量样式之一。我确实更改了一些可能无意中修复了问题的代码,最显著的更改是使用了Point而不是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;
    }
    

    我希望这能帮助你解决问题,如果我找到了解决方案,我会编辑这个答案

  2. # 2 楼答案

    我发现了问题

    我正在通过json文件加载脱机样式,但当我将该json导入我的mapbox帐户并更改为联机URL时,问题就解决了

    这是一个奇怪的问题

    谢谢大家!