Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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
Android 如何使用复选框在地图上显示多段线?_Android_Google Maps_Polyline - Fatal编程技术网

Android 如何使用复选框在地图上显示多段线?

Android 如何使用复选框在地图上显示多段线?,android,google-maps,polyline,Android,Google Maps,Polyline,当我单击复选框时,我想知道如何使多段线显示在地图上?定义多段线的对象 多段线 使用下面给出的这个类来拖拽从至至lat,lng的管线 私有类MapDirectionAsync扩展异步任务{ 私人车床 sourceLatLng, 目的地规划; 专用映射方向同步(LatLng源LatLng、LatLng目标LatLng){ this.sourceLatLng=sourceLatLng; this.destinationLatLng=destinationLatLng; } @凌驾 受保护的多段线选项d

当我单击复选框时,我想知道如何使多段线显示在地图上?

定义多段线的对象

多段线

使用下面给出的这个类来拖拽从至至lat,lng的管线
私有类MapDirectionAsync扩展异步任务{
私人车床
sourceLatLng,
目的地规划;
专用映射方向同步(LatLng源LatLng、LatLng目标LatLng){
this.sourceLatLng=sourceLatLng;
this.destinationLatLng=destinationLatLng;
}
@凌驾
受保护的多段线选项doInBackground(无效…参数){
GMapV2Direction md=新的GMapV2Direction();
Document doc=md.getDocument(sourceLatLng、destinationLatLng、GMapV2Direction.MODE_驾驶);
如果(doc!=null){
ArrayList directionPoint=md.getDirection(doc);
PolylineOptions rectLine=new PolylineOptions().width(16).color(ContextCompat.getColor(TripsActivity.this,R.color.colorPrimary));
float km=float.parseFloat(md.getdistance文本(doc))/1000;
String km1=String.format(Locale.US,%.1f',km);
Log.e(“谷歌地图路线”,“总公里数:+km1”);
int duration=md.getDurationValue(doc);
Log.e(“谷歌地图路线”,“总持续时间:”+持续时间/60);
对于(int i=0;i
`

private class MapDirectionAsync extends AsyncTask<Void, Void, PolylineOptions> {
    private LatLng
            sourceLatLng,
            destinationLatLng;

    private MapDirectionAsync(LatLng sourceLatLng, LatLng destinationLatLng) {
        this.sourceLatLng = sourceLatLng;
        this.destinationLatLng = destinationLatLng;
    }

    @Override
    protected PolylineOptions doInBackground(Void... params) {
        GMapV2Direction md = new GMapV2Direction();
        Document doc = md.getDocument(sourceLatLng, destinationLatLng, GMapV2Direction.MODE_DRIVING);
        if (doc != null) {
            ArrayList<LatLng> directionPoint = md.getDirection(doc);
            PolylineOptions rectLine = new PolylineOptions().width(16).color(ContextCompat.getColor(TripsActivity.this, R.color.colorPrimary));

            float km = Float.parseFloat(md.getDistanceText(doc)) / 1000;
            String km1 = String.format(Locale.US, "%.1f", km);
            Log.e("GoogleMapRoute", "Total KM : " + km1);

            int duration = md.getDurationValue(doc);
            Log.e("GoogleMapRoute", "===============Total Duration : " + duration / 60);

            for (int i = 0; i < directionPoint.size(); i++) {
                rectLine.add(directionPoint.get(i));
            }
            return rectLine;
        }

        return null;
    }

    @Override
    protected void onPostExecute(PolylineOptions rectLine) {
        super.onPostExecute(rectLine);

        if (rectLine != null) {
            polyLine = google_Map.addPolyline(rectLine);
        } else {
            // No polyLine available
        }
    }
}