Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Mapbox中将多段线覆盖添加到静态图像?_Java_Android_Mapbox_Mapbox Android - Fatal编程技术网

Java 如何在Mapbox中将多段线覆盖添加到静态图像?

Java 如何在Mapbox中将多段线覆盖添加到静态图像?,java,android,mapbox,mapbox-android,Java,Android,Mapbox,Mapbox Android,我正在尝试将带有路线的地图保存为静态图像。我目前可以将地图保存为静态地图,并将一些注释作为覆盖,但我无法确定如何将路线添加到静态地图 这是我目前拥有的代码: List<StaticMarkerAnnotation> markers = new ArrayList<>(); List<StaticPolylineAnnotation> polylines = new ArrayList<>(); markers.add(StaticMarkerAn

我正在尝试将带有路线的地图保存为静态图像。我目前可以将地图保存为静态地图,并将一些注释作为覆盖,但我无法确定如何将路线添加到静态地图

这是我目前拥有的代码:

List<StaticMarkerAnnotation> markers = new ArrayList<>();
List<StaticPolylineAnnotation> polylines = new ArrayList<>();

markers.add(StaticMarkerAnnotation.builder().name(StaticMapCriteria.LARGE_PIN)
             .lnglat(Point.fromLngLat(pointList.getFirst().longitude(), pointList.getFirst().latitude()))
             .label("a")
             .build());

markers.add(StaticMarkerAnnotation.builder().name(StaticMapCriteria.LARGE_PIN)
             .lnglat(Point.fromLngLat(pointList.getLast().longitude(),pointList.getLast().latitude()))
             .label("b")
             .build());

polylines.add(StaticPolylineAnnotation.builder().polyline(currentRoute.geometry()).build()); // DirectionsRoute currentRoute

String staticImage = MapboxStaticMap.builder()
             .accessToken(getString(R.string.mapbox_access_token))
             .width(mapView.getMeasuredWidth())
             .height((int) (250*getResources().getDisplayMetrics().density))
             .retina(true)
             .cameraAuto(true)
             .staticMarkerAnnotations(markers)
             .staticPolylineAnnotations(polylines) // does not work!
             .build()
             .url()
             .toString();
如果没有.staticPolylineAnnotationspolylines,它将成功创建一个没有路由的静态图像。对于.staticPolylineAnnotationspolylines,创建的staticImage字符串将导致{消息:纬度必须在-85.0511-85.0511之间。}


我想我走错路线了,但我不知道正确的方向

此错误消息{消息:纬度必须在-85.0511-85.0511之间。}通常在纬度和经度顺序相反时出现。在将坐标添加到实现之前,在中测试坐标以验证它是值得的


您还可以探索使用来保存带有路线的地图

要在Android中获取路线图像,首先将所有Lat和Long添加到列表中,然后借助Google poly line编码技术将完整的Lat和Long列表转换为编码的poly line字符串

->之后,创建地图盒帐户并使用带有有效令牌的地图盒静态图像API

->现在使用StaticPolylineAnnotation:

列表{StaticPolylineAnnotation}list1=新的ArrayList; 将{}替换为list.addStaticPolylineAnnotation.builder.polylinepolilineString.strokeWidth1.0.strokeColor56,69,181.build;注意:PolilineString是您从Google Poly line编码技术获得的编码字符串

->MapboxStaticMap staticImage=MapboxStaticMap.builder.usermapboxaccountusename.accessTokenMapbox Token.StyleyYour样式id.staticPolylineAnnotationslist1.cameraAutotrue.Retinature.build

->使用字符串imageUrl=staticImage.url.toString获取图像的url