智能交通模拟系统

1.Wel_Guide初始化界面

package com.example.a15665851628.smarttransport.Wel_Guide;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.LinearLayout;


import com.example.a15665851628.smarttransport.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 15665851628 on 2018/7/12.
 */

public class GuideActivity extends FragmentActivity {
    private ViewPager viewPager;
    private LinearLayout llGuide;
    private PagerAdapter pagerAdapter;
    private List<Fragment> fragments=new ArrayList<Fragment>();
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_guide);
        viewPager=findViewById(R.id.guide_viewPager);
        llGuide=findViewById(R.id.ll_guide);
        for (int i=0;i<4;i++){
            GuideFragment fragment=new GuideFragment();
            Bundle bundle=new Bundle();
            bundle.putInt("index",i);
            fragment.setArguments(bundle);
            fragments.add(fragment);
        }
        pagerAdapter=new GuideAdapter(getSupportFragmentManager(),fragments);
        viewPager.setAdapter(pagerAdapter);
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                for (int i = 0; i < fragments.size(); i++) {
                    llGuide.getChildAt(i).setBackgroundResource(position == i ? R.drawable.dot_focus : R.drawable.dot_nomal);
                }
            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        initllGuide();
    }

    private void initllGuide() {
        LinearLayout.LayoutParams llParams=new LinearLayout.LayoutParams(32,32);
        llParams.leftMargin=20;
        llParams.rightMargin=20;
        for (int i=0;i<fragments.size();i++){
            View view=new View(this);
            view.setId(i);
            view.setBackgroundResource(i==0?R.drawable.dot_focus:R.drawable.dot_nomal);
            view.setLayoutParams(llParams);
            llGuide.addView(view);
        }
    }
}
package com.example.a15665851628.smarttransport.Wel_Guide;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 15665851628 on 2018/7/12.
 */

public class GuideAdapter extends FragmentPagerAdapter {
    private List<Fragment> fragments=new ArrayList<Fragment>();
    public GuideAdapter(FragmentManager fm) {
        super(fm);
    }

    public GuideAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments=fragments;
    }

    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }
}
package com.example.a15665851628.smarttransport.Wel_Guide;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;

import com.example.a15665851628.smarttransport.R;
import com.example.a15665851628.smarttransport.Sign_In_Up.SignActivity;


/**
 * Created by 15665851628 on 2018/7/12.
 */

public class GuideFragment extends Fragment {
    private int[] bgRes={R.mipmap.guide1,R.mipmap.guide2,R.mipmap.guide3,R.mipmap.guide4};
    private RelativeLayout relativeLayout;
    private Button bt_enter;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_guide,null);
        relativeLayout=view.findViewById(R.id.rl_guide);
        bt_enter=view.findViewById(R.id.bt_enter);

        int index=getArguments().getInt("index");
        relativeLayout.setBackgroundResource(bgRes[index]);

        bt_enter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getActivity().onBackPressed();
                startActivity(new Intent(getActivity(), SignActivity.class));
            }
        });

        bt_enter.setVisibility(index==3?View.VISIBLE:View.GONE);
        return view;
    }
}
package com.example.a15665851628.smarttransport.Wel_Guide;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;

import com.example.a15665851628.smarttransport.R;


public class WelcomeActivity extends AppCompatActivity {
    private Context context=this;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(context,GuideActivity.class));
                finish();
            }
        },1000);
    }
}

2.登录界面

package com.example.a15665851628.smarttransport.Sign_In_Up;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
 * 将字节流转换为字符串的工具类
 */
public class HttpUtils {

    public static String readMyInputStream(InputStream is) {
        byte[] result;
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len;
            while ((len = is.read(buffer))!=-1) {
                baos.write(buffer,0,len);
            }
            is.close();
            baos.close();
            result = baos.toByteArray();

        } catch (IOException e) {
            e.printStackTrace();
            String errorStr = "获取数据失败。";
            return errorStr;
        }
        return new String(result);
    }

}
package com.example.a15665851628.smarttransport.Sign_In_Up;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import com.example.a15665851628.smarttransport.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 15665851628 on 2018/7/12.
 */

public class SignActivity extends AppCompatActivity {
    protected static ViewPager mViewapger;
    private TabLayout mTablayout;
    private List<Fragment> mFragments;
    protected static Context context;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign);

        context=this;
        List<String> promissionList = new ArrayList<>();
        if (ContextCompat.checkSelfPermission(SignActivity.this, Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){
            promissionList.add(Manifest.permission.CAMERA);
        }
        if (ContextCompat.checkSelfPermission(SignActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
            promissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        }
        if(!promissionList.isEmpty()){
            String[] permissions = promissionList.toArray(new String[promissionList.size()]);
            ActivityCompat.requestPermissions(SignActivity.this,permissions,1);
        }


        mViewapger = (ViewPager) findViewById(R.id.sign_viewPager);
        mTablayout = (TabLayout) findViewById(R.id.sign_tl);
        mFragments=new ArrayList<Fragment>();

        SignInFragment signInFragment=new SignInFragment();
        SignUpFragment signUpFragment=new SignUpFragment();
        mFragments.add(signInFragment);
        mFragments.add(signUpFragment);

        SignAdapter adapter=new SignAdapter(getSupportFragmentManager(),mFragments);
        mViewapger.setAdapter(adapter);
        mTablayout.setupWithViewPager(mViewapger);
    }

}
package com.example.a15665851628.smarttransport.Sign_In_Up;

import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.List;

/**
 * Created by 15665851628 on 2018/7/13.
 */

public class SignAdapter extends FragmentPagerAdapter {
    private String title[]={"登录","注册"};
    private List<Fragment> fragments;
    public SignAdapter(FragmentManager fm) {
        super(fm);
    }
    public SignAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments=fragments;
    }

    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return title[position];
    }
}
package com.example.a15665851628.smarttransport.Sign_In_Up;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.example.a15665851628.smarttransport.Map.MapActivity;
import com.example.a15665851628.smarttransport.R;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;

import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import java.net.HttpCookie;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.FormBody;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

import static android.content.Context.MODE_PRIVATE;

/**
 * Created by 15665851628 on 2018/7/13.
 */
//登陆
public class SignInFragment extends Fragment {
   public static OkHttpClient okHttpClient;
   public static String my_cookie;
    private static String sessionID;
    private Button bt_signIn;
    private String username;
    private String password;
    private String identity;
    private EditText ed_username;
    private EditText ed_password;
    private AlertDialog dialog;
    private Handler handler;


    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_sign_in, null);
        bt_signIn = view.findViewById(R.id.sign_in_bt);
        ed_password = view.findViewById(R.id.ed_sign_in_password);
        ed_username = view.findViewById(R.id.ed_sign_in_account);

        bt_signIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                username = ed_username.getText().toString();
                password=ed_password.getText().toString();
                System.out.println(password+username);
                httpUrlConnction();




                // startActivity(new Intent(SignActivity.context, MapActivity.class));
            }
        });




        handler = new Handler() {

            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {

                    case 400:

                        if(msg.obj.equals("登陆成功")){

                          Intent intent =new Intent(SignActivity.context,MapActivity.class);
                          startActivity(intent);
                        }else if(msg.obj.toString().equals("密码错误")){
                            ed_password.setText("");
                            Toast.makeText(SignActivity.context,"密码错误",Toast.LENGTH_SHORT).show();
                        }else  if (msg.obj.toString().equals("用户名不存在")){
                            ed_username.setText("");
                            Toast.makeText(SignActivity.context,"用户名不存在",Toast.LENGTH_SHORT).show();
                        }





                        break;

                    default:
                        break;
                }
            }

        };

        return view;
    }




    //登陆使用的
    public void httpUrlConnction() {


        new Thread() {
            public void run() {
                try {

                    OkHttpClient.Builder client1=new OkHttpClient.Builder();
                    client1.cookieJar(new CookieJar() {
                        private List<Cookie> cookies;
                        @Override
                        public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
                            this.cookies=cookies;

                            String cookie_hh=cookies+"";
                            System.out.print(cookie_hh);
                           my_cookie= cookie_hh.substring(cookie_hh.indexOf("=")+1,cookie_hh.indexOf(";"));
                            System.out.print("lllllllllllllll"+my_cookie);
                        }

                        @Override
                        public List<Cookie> loadForRequest(HttpUrl url) {
                            if(cookies!=null){
                                System.out.println(cookies+"youyouyoyouyo");
                                return cookies;

                            }else{



                                return new ArrayList<Cookie>();

                            }

                        }
                    });

                   okHttpClient=client1.build();


                    Map map = new HashMap();
                    // 成对放入多个key-value对
                    map.put("username" , username);
                    map.put("password" , password);

                    //使用Gson 添加 依赖
                    Gson gson = new Gson();
                    //使用Gson将对象转换为json字符串
                    String json = gson.toJson(map);
                    //MediaType  设置Content-Type 标头中包含的媒体类型值
                    RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                            , json);

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/login")//请求的url
                            .post(requestBody)
                            .build();

                    //创建/Call
                    Call call = okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.print(responseData);
                            System.out.println("hhhhhxxr");
                            String back_data=null;
                            if(responseData.contains("登录成功")){
                                back_data="登陆成功";
                            }else if(responseData.contains("密码错误")){
                                back_data="密码错误";
                            }else if(responseData.contains("用户名不存在")) {
                                back_data = "用户名不存在";

                        }
                            Message message = Message.obtain();
                            message.what = 400;
                            message.obj = back_data;

                            handler.sendMessage(message);
                    }});






                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    @Override
    public void onPause() {
        super.onPause();
    }

}
package com.example.a15665851628.smarttransport.Sign_In_Up;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.example.a15665851628.smarttransport.R;

import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;


/**
 * Created by 15665851628 on 2018/7/13.
 */
//注册
public class SignUpFragment extends Fragment {
   public static String username;
    private String password;
    private String email;
    private String identity;
    private EditText ed_username;
    private EditText ed_password;
    private EditText ed_email;
    private Button bt_signUp;
    public static Handler handler;


    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_sign_up,container,false);
        ed_email = view.findViewById(R.id.ed_sign_up_email);
        ed_username = view.findViewById(R.id.ed_sign_up_account);
        ed_password = view.findViewById(R.id.ed_sign_up_password);
        bt_signUp = view.findViewById(R.id.sign_up_bt);
        bt_signUp.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {

                if (view.getId() == R.id.sign_up_bt){
                    username= ed_username.getText().toString();
                    password=ed_password.getText().toString();
                    email=ed_email.getText().toString();
                    httpUrlConnction();
                }
            }

        });
        TextChange textChange=new TextChange();
        ed_username.addTextChangedListener(textChange);

        handler = new Handler() {

            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
                    case 100:

                        ////////////
                        //////////
                        /////////////
                        ////////////这里应该是用户名存在的时候进行的判断。
                        if(msg.obj.toString().equals("用户已存在")){
                           Toast.makeText(SignActivity.context,"用户名已存在",Toast.LENGTH_SHORT).show();
                        }


                        break;
                    case 300:
                        ed_username.setText("");
                        ed_password.setText("");
                        ed_email.setText("");
                        if(msg.obj.toString().equals("注册成功")){

                            Toast.makeText(SignActivity.context,"注册成功",Toast.LENGTH_SHORT).show();
                            SignInFragment signInFragment=new SignInFragment();
                            SignUpFragment signUpFragment=new SignUpFragment();
                            //fragment调转
                            Intent intent = new Intent(getActivity(),SignActivity.class);
                            startActivity(intent);


                         /*   showFragment(signUpFragment,signInFragment);*/
                        }else{
                            Toast.makeText(SignActivity.context,"注册失败",Toast.LENGTH_SHORT).show();
                        }





                        break;

                    default:
                        break;
                }
            }

        };
        return view;

    }

   /* private void showFragment(Fragment fragment1, Fragment fragment2) {
        // 获取 FragmentTransaction  对象
        FragmentTransaction transaction = getFragmentManager()
                .beginTransaction();
        //如果fragment2没有被添加过,就添加它替换当前的fragment1
        if (!fragment2.isAdded()) {
            transaction.replace(R.id.sign_in_dl,fragment2)
                    //加入返回栈,这样你点击返回键的时候就会回退到fragment1了
                    .addToBackStack(null)
                    // 提交事务
                    .commitAllowingStateLoss();

        } else { //如果已经添加过了的话就隐藏fragment1,显示fragment2
            transaction
                    // 隐藏fragment1,即当前碎片
                    .hide(fragment1)
                    // 显示已经添加过的碎片,即fragment2
                    .show(fragment2)
                    // 加入返回栈
                    .addToBackStack(null)
                    // 提交事务
                    .commitAllowingStateLoss();
        }
    }*/
//注册使用的
    public void httpUrlConnction() {
        new Thread() {
            public void run() {
                try {

                    JSONObject obj = new JSONObject();
                    obj.put("username", username);
                    obj.put("password", password);

                    // obj.put("password", "llll");
                    System.out.println(obj);
                    // 创建url资源
                    URL url = new URL("http://139.199.27.66:8081/");
                    // 建立http连接
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    // 设置允许输出
                    conn.setDoOutput(true);

                    conn.setDoInput(true);

                    // 设置不用缓存
                    conn.setUseCaches(false);
                    // 设置传递方式
                    conn.setRequestMethod("POST");
                    // 设置维持长连接
                    conn.setRequestProperty("Connection", "Keep-Alive");
                    // 设置文件字符集:
                    conn.setRequestProperty("Charset", "UTF-8");
                    //转换为字节数组
                    byte[] data = (obj.toString()).getBytes();
                    // 设置文件长度
                    conn.setRequestProperty("Content-Length", String.valueOf(data.length));

                    // 设置文件类型:
                    conn.setRequestProperty("contentType", "application/json");


                    // 开始连接请求
                    conn.connect();
                    OutputStream out = conn.getOutputStream();
                    // 写入请求的字符串
                    out.write((obj.toString()).getBytes());
                    out.flush();
                    out.close();
                    System.out.println(conn.getResponseCode());

                    // 请求返回的状态
                    if (conn.getResponseCode() == 200) {
                        System.out.println("连接成功");


                        try {
                            // 请求返回的数据
                            InputStream in = conn.getInputStream();
                            String result = HttpUtils.readMyInputStream(in);
                            System.out.println(result);
                            boolean flag=result.contains("注册成功");
                            String  back_data;
                            if(flag){
                                back_data="注册成功";
                            }else{
                                back_data="注册失败";
                            }


                            Message message = Message.obtain();
                            message.what =300 ;
                            message.obj=back_data;

                            SignUpFragment.handler.sendMessage(message);

                        } catch (Exception e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    } else {
                        System.out.println("no++");
                    }

                } catch (Exception e) {

                }
            }
        }.start();
    }




}

class TextChange implements TextWatcher {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        //Toast.makeText(SignActivity.context,"hhhhhhhhh",Toast.LENGTH_SHORT).show();
        httpUrlConnction_rename();
    }

    //这个是用来 判断用户名是否存在的!!
    public void httpUrlConnction_rename()   {
        new Thread() {
            public void run() {
                try {

                    JSONObject obj = new JSONObject();
                    obj.put("username",SignUpFragment.username );

                    // obj.put("password", "llll");
                    System.out.println(obj);
                    // 创建url资源
                    URL url = new URL("http://139.199.27.66:8081/isExist");
                    // 建立http连接
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    // 设置允许输出
                    conn.setDoOutput(true);

                    conn.setDoInput(true);

                    // 设置不用缓存
                    conn.setUseCaches(false);
                    // 设置传递方式
                    conn.setRequestMethod("POST");
                    // 设置维持长连接
                    conn.setRequestProperty("Connection", "Keep-Alive");
                    // 设置文件字符集:
                    conn.setRequestProperty("Charset", "UTF-8");
                    //转换为字节数组
                    byte[] data = (obj.toString()).getBytes();
                    // 设置文件长度
                    conn.setRequestProperty("Content-Length", String.valueOf(data.length));

                    // 设置文件类型:
                    conn.setRequestProperty("contentType", "application/json");


                    // 开始连接请求
                    conn.connect();
                    OutputStream out = conn.getOutputStream();
                    // 写入请求的字符串
                    out.write((obj.toString()).getBytes());
                    out.flush();
                    out.close();

                    System.out.println(conn.getResponseCode());

                    // 请求返回的状态
                    if (conn.getResponseCode() == 200) {
                        System.out.println("连接成功");


                        try {
                            // 请求返回的数据
                            InputStream in = conn.getInputStream();
                            String result = HttpUtils.readMyInputStream(in);
                            System.out.println(result);

                            boolean flag=result.contains("用户名不存在");
                            String  back_data;
                            if(flag){
                                back_data="用户不存在";
                            }else{
                                back_data="用户存在";
                            }


                            Message message = Message.obtain();
                            message.what =100 ;
                            message.obj=back_data;
                            SignUpFragment.handler.sendMessage(message);
                        } catch (Exception e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    } else {
                        System.out.println("no++");
                    }

                } catch (Exception e) {

                }
            }
        }.start();
    }




}

2.Map地图:

package com.example.a15665851628.smarttransport.Map;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class Bus_101 extends View {
    public Bus_101(Context context) {
        super(context);
    }

    @SuppressLint("ResourceAsColor")
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint=new Paint();
        paint.setStrokeWidth(30);
        paint.setColor(Color.BLUE);
        canvas.drawLine(480,20,0,500,paint);
        canvas.drawLine(0,490,412,902,paint);
        canvas.drawLine(415,885,170,1130,paint);
        canvas.drawLine(175,1122,175,1400,paint);

        paint.setColor(Color.WHITE);
        int r=23;
        canvas.drawCircle(300,193,r,paint);
        canvas.drawCircle(120,380,r,paint);

        canvas.drawCircle(130,620,r,paint);
        canvas.drawCircle(310,800,r,paint);

        canvas.drawCircle(300,1000,r,paint);

        canvas.drawCircle(175,1220,r,paint);
    }
}
package com.example.a15665851628.smarttransport.Map;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class Bus_102 extends View {
    public Bus_102(Context context) {
        super(context);
    }

    @SuppressLint("ResourceAsColor")
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint=new Paint();
        paint.setStrokeWidth(30);
        paint.setColor(Color.BLUE);
        canvas.drawLine(480,20,380,120,paint);
        canvas.drawLine(365,115,610,360,paint);
        canvas.drawLine(610,340,-10,960,paint);
        canvas.drawLine(-40,960,160,1160,paint);
        canvas.drawLine(150,1150,1000,300,paint);

        paint.setColor(Color.WHITE);
        int r=23;
        canvas.drawCircle(490,236,r,paint);

        canvas.drawCircle(520,425,r,paint);
        canvas.drawCircle(330,615,r,paint);
        canvas.drawCircle(150,795,r,paint);
        canvas.drawCircle(65,1075,r,paint);

        canvas.drawCircle(300,1000,r,paint);
        canvas.drawCircle(500,800,r,paint);
        canvas.drawCircle(700,600,r,paint);
        canvas.drawCircle(850,450,r,paint);
        canvas.drawCircle(1000,300,r,paint);
    }
}
package com.example.a15665851628.smarttransport.Map;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class Bus_103 extends View {
    public Bus_103(Context context) {
        super(context);
    }

    @SuppressLint("ResourceAsColor")
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint=new Paint();
        paint.setStrokeWidth(30);
        paint.setColor(Color.BLUE);
        canvas.drawLine(570,20,1100,550,paint);
        canvas.drawLine(1170,510,800,880,paint);
        canvas.drawLine(810,890,200,280,paint);
        canvas.drawLine(200,300,0,500,paint);
        canvas.drawLine(0,490,850,1340,paint);

        paint.setColor(Color.WHITE);
        int r=23;
        canvas.drawCircle(580,30,r,paint);
        canvas.drawCircle(800,250,r,paint);
        canvas.drawCircle(1000,450,r,paint);

        canvas.drawCircle(965,710,r,paint);

        canvas.drawCircle(715,790,r,paint);
        canvas.drawCircle(515,590,r,paint);
        canvas.drawCircle(315,390,r,paint);

        canvas.drawCircle(120,380,r,paint);

        canvas.drawCircle(110,600,r,paint);
        canvas.drawCircle(310,800,r,paint);
        canvas.drawCircle(540,1030,r,paint);
    }
}
package com.example.a15665851628.smarttransport.Map;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class Bus_104 extends View {
    public Bus_104(Context context) {
        super(context);
    }

    @SuppressLint("ResourceAsColor")
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint=new Paint();
        paint.setStrokeWidth(30);
        paint.setColor(Color.BLUE);
        canvas.drawLine(480,20,380,120,paint);
        canvas.drawLine(365,115,780,530,paint);
        canvas.drawLine(250,1050,785,515,paint);
        canvas.drawLine(270,1050,425,1200,paint);
        canvas.drawLine(416,1200,713,1200,paint);
        canvas.drawLine(700,1195,900,1395,paint);

        paint.setColor(Color.WHITE);
        int r=23;
        canvas.drawCircle(490,236,r,paint);
        canvas.drawCircle(650,396,r,paint);

        canvas.drawCircle(350,956,r,paint);
        canvas.drawCircle(520,780,r,paint);
        canvas.drawCircle(700,600,r,paint);

        canvas.drawCircle(338,1120,r,paint);
        canvas.drawCircle(560,1200,r,paint);
    }
}
package com.example.a15665851628.smarttransport.Map;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.view.View;

import com.example.a15665851628.smarttransport.R;

public class Map extends View {
    public Map(Context context) {
        super(context);
    }

    @SuppressLint("ResourceAsColor")
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint=new Paint();
        paint.setStrokeWidth(45);
        paint.setColor(Color.WHITE);
        //斜向上
        canvas.drawLine(-50,1000,590,360,paint);
        canvas.drawLine(800,880,1100,580,paint);
        canvas.drawLine(700,1200,900,1000,paint);
        canvas.drawLine(-50,550,550,-50,paint);

        //斜向下
        canvas.drawLine(-50,730,100,880,paint);
        canvas.drawLine(285,1065,1180,1960,paint);
        canvas.drawLine(-50,950,125,1125,paint);
        canvas.drawLine(500,-50,1200,650,paint);
        canvas.drawLine(200,-50,795,545,paint);
        canvas.drawLine(750,-50,1050,250,paint);
        //竖线
        canvas.drawLine(170,1105,170,3000,paint);
        canvas.drawLine(420,1200,420,3000,paint);
        canvas.drawLine(720,1500,720,3000,paint);
        canvas.drawLine(750,0,750,200,paint);
        //横线
        canvas.drawLine(420,1200,750,1200,paint);
        canvas.drawLine(0,1450,990,1450,paint);
        canvas.drawLine(0,1730,940,1730,paint);

//        paint.setColor(0xFFCCCCCC);
        paint.setColor(Color.WHITE);
        paint.setStrokeWidth(60);
        canvas.drawLine(-50,30,1150,1230,paint);
        canvas.drawLine(-80,410,1120,1610,paint);
        canvas.drawLine(-50,1350,1150,150,paint);

        paint.setColor(Color.YELLOW);
        paint.setStrokeWidth(8);
        //斜向上
        canvas.drawLine(-50,970,50,870,paint);
        canvas.drawLine(80,840,190,730,paint);
        canvas.drawLine(230,690,400,520,paint);
        canvas.drawLine(435,480,570,350,paint);
        canvas.drawLine(800,850,1100,550,paint);
        canvas.drawLine(710,1160,870,1000,paint);
        canvas.drawLine(-50,520,170,300,paint);
        canvas.drawLine(210,260,350,120,paint);
        canvas.drawLine(380,90,550,-80,paint);

        canvas.drawLine(-50,1030,220,760,paint);
        canvas.drawLine(260,720,430,550,paint);
        canvas.drawLine(465,515,600,380,paint);
        canvas.drawLine(830,880,1100,610,paint);
        canvas.drawLine(740,1190,900,1030,paint);
        canvas.drawLine(40,490,200,330,paint);
        canvas.drawLine(240,300,380,150,paint);
        canvas.drawLine(410,120,550,-20,paint);

        //斜向下
        canvas.drawLine(-40,780,50,870,paint);

        canvas.drawLine(300,1050,425,1175,paint);
        canvas.drawLine(460,1215,675,1430,paint);
        canvas.drawLine(710,1455,1180,1930,paint);

        canvas.drawLine(-60,910,140,1110,paint);

        canvas.drawLine(500,-80,735,155,paint);
        canvas.drawLine(780,200,920,340,paint);
        canvas.drawLine(960,380,1200,620,paint);

        canvas.drawLine(190,-90,380,100,paint);
        canvas.drawLine(405,125,765,485,paint);
        canvas.drawLine(750,-80,1050,220,paint);
       //////////////
        canvas.drawLine(0,750,80,830,paint);

        canvas.drawLine(260,1075,400,1215,paint);
        canvas.drawLine(440,1255,615,1425,paint);
        canvas.drawLine(655,1465,700,1510,paint);
        canvas.drawLine(740,1550,910,1720,paint);
        canvas.drawLine(940,1760,1180,1990,paint);

        canvas.drawLine(-90,940,110,1140,paint);

        canvas.drawLine(500,-20,890,370,paint);
        canvas.drawLine(930,410,1200,680,paint);

        canvas.drawLine(160,-60,350,130,paint);
        canvas.drawLine(375,155,575,355,paint);
        canvas.drawLine(595,375,735,515,paint);

        canvas.drawLine(750,-20,1020,250,paint);

        //竖线
        canvas.drawLine(150,1195,150,1420,paint);
        canvas.drawLine(150,1455,150,1710,paint);
        canvas.drawLine(150,1750,150,3000,paint);

        canvas.drawLine(400,1210,400,1420,paint);
        canvas.drawLine(400,1450,400,1710,paint);
        canvas.drawLine(400,1750,400,3000,paint);

        canvas.drawLine(700,1500,700,1710,paint);
        canvas.drawLine(700,1750,700,3000,paint);

        canvas.drawLine(735,0,735,150,paint);

        canvas.drawLine(195,1155,195,1420,paint);
        canvas.drawLine(195,1455,195,1710,paint);
        canvas.drawLine(195,1750,195,3000,paint);

        canvas.drawLine(445,1250,445,1420,paint);
        canvas.drawLine(445,1455,445,1710,paint);
        canvas.drawLine(445,1750,445,3000,paint);

        canvas.drawLine(745,1560,745,1710,paint);
        canvas.drawLine(745,1750,745,3000,paint);

        canvas.drawLine(775,0,775,200,paint);

        //横线
        canvas.drawLine(420,1180,650,1180,paint);

        canvas.drawLine(0,1425,150,1425,paint);
        canvas.drawLine(190,1425,400,1425,paint);
        canvas.drawLine(440,1425,615,1425,paint);
        canvas.drawLine(676,1425,895,1425,paint);

        canvas.drawLine(0,1710,150,1710,paint);
        canvas.drawLine(190,1710,400,1710,paint);
        canvas.drawLine(440,1710,700,1710,paint);
        canvas.drawLine(740,1710,910,1710,paint);

        canvas.drawLine(452,1220,675,1220,paint);

        canvas.drawLine(0,1470,150,1470,paint);
        canvas.drawLine(190,1470,400,1470,paint);
        canvas.drawLine(440,1470,660,1470,paint);
        canvas.drawLine(710,1470,915,1470,paint);

        canvas.drawLine(0,1760,150,1760,paint);
        canvas.drawLine(190,1760,400,1760,paint);
        canvas.drawLine(440,1760,700,1760,paint);
        canvas.drawLine(740,1760,920,1760,paint);

        paint.setColor(Color.GREEN);
        paint.setStrokeWidth(10);

        canvas.drawLine(-50,1310,120,1140,paint);
        canvas.drawLine(145,1115,365,895,paint);
        canvas.drawLine(405,855,570,690,paint);
        canvas.drawLine(610,650,745,515,paint);
        canvas.drawLine(770,490,890,370,paint);
        canvas.drawLine(925,345,1020,250,paint);
        canvas.drawLine(1050,220,1150,110,paint);

        canvas.drawLine(0,450,10,460,paint);
        canvas.drawLine(40,490,235,685,paint);
        canvas.drawLine(265,715,405,855,paint);
        canvas.drawLine(445,895,710,1160,paint);
        canvas.drawLine(740,1190,1120,1570,paint);

        canvas.drawLine(-50,-10,215,255,paint);
        canvas.drawLine(250,290,435,475,paint);
        canvas.drawLine(470,510,610,650,paint);
        canvas.drawLine(648,688,800,840,paint);
        canvas.drawLine(830,870,1150,1190,paint);

        canvas.drawLine(-50,1390,150,1190,paint);
        canvas.drawLine(190,1160,270,1080,paint);
        canvas.drawLine(290,1060,405,935,paint);
        canvas.drawLine(445,895,610,730,paint);
        canvas.drawLine(650,690,930,410,paint);
        canvas.drawLine(960,380,1150,190,paint);

        canvas.drawLine(-80,460,190,730,paint);
        canvas.drawLine(220,760,365,895,paint);
        canvas.drawLine(405,935,640,1170,paint);
        canvas.drawLine(670,1210,890,1420,paint);
        canvas.drawLine(920,1455,1120,1660,paint);

        canvas.drawLine(-50,70,175,295,paint);
        canvas.drawLine(205,325,400,520,paint);
        canvas.drawLine(430,550,570,700,paint);
        canvas.drawLine(610,740,870,1000,paint);
        canvas.drawLine(900,1030,1150,1270,paint);

        paint.setColor(Color.BLACK);
        paint.setTextSize(35);

        Path path=new Path();
        path.setLastPoint(0,500);
        path.lineTo(500,0);
        String path1Name="A      一     路";
        canvas.drawTextOnPath(path1Name,path,400,13,paint);

        Path path2=new Path();
        path2.setLastPoint(-200,700);
        path2.lineTo(500,0);
        canvas.drawTextOnPath("A  二  路",path2,375,330,paint);
        canvas.drawTextOnPath("A  三  路",path2,750,846,paint);
        canvas.drawTextOnPath("A  五  路",path2,377,1000,paint);

        Path path3=new Path();
        path3.setLastPoint(-300,800);
        path3.lineTo(500,0);
        String path3Name="A       四       路";
        canvas.drawTextOnPath(path3Name,path3,100,580,paint);
        canvas.drawTextOnPath(path3Name,path3,900,580,paint);

        Path path4=new Path();
        path4.setLastPoint(500,0);
        path4.lineTo(1500,1000);
        String path4Name="B    一   路";
        canvas.drawTextOnPath("B    一   路",path4,250,-20,paint);

        canvas.drawTextOnPath("B    二   路",path4,310,-195,paint);

        canvas.drawTextOnPath("B    三   路",path4,200,195,paint);

        canvas.drawTextOnPath("B       四       路",path4,50,430,paint);
        canvas.drawTextOnPath("B       四       路",path4,800,430,paint);

        canvas.drawTextOnPath("B       五       路",path4,160,715,paint);
        canvas.drawTextOnPath("B       五       路",path4,900,715,paint);

        Path path5=new Path();
        path5.setLastPoint(0,800);
        path5.lineTo(800,1600);
        canvas.drawTextOnPath("C       一       路",path5,650,0,paint);

        Path path6=new Path();
        path6.setLastPoint(0,1450);
        path6.lineTo(1000,1450);
        canvas.drawTextOnPath("D        一       路",path6,300,10,paint);
        canvas.drawTextOnPath("D        二       路",path6,300,300,paint);

        Path path7=new Path();
        path7.setLastPoint(450,1500);
        path7.lineTo(450,1700);
        canvas.drawTextOnPath("E    一   路",path7,0,40,paint);
        canvas.drawTextOnPath("E    二   路",path7,0,290,paint);
        canvas.drawTextOnPath("E    三   路",path7,40,-260,paint);
    }
}
package com.example.a15665851628.smarttransport.Map;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;


import com.example.a15665851628.smarttransport.R;
import com.example.a15665851628.smarttransport.Sign_In_Up.HttpUtils;
import com.example.a15665851628.smarttransport.Sign_In_Up.SignActivity;
import com.example.a15665851628.smarttransport.Sign_In_Up.SignInFragment;
import com.google.gson.Gson;

import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.FormBody;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class MapActivity extends AppCompatActivity {
    private Timer timer;

    int time_park;
    private Toolbar toolbar;
    private ImageView img_bus;
    private ImageView img_busStation;
    private ImageView img_start;
    private ImageView img_end;
    private Bus_101 bus101;
    private Bus_102 bus102;
    private Bus_103 bus103;
    private Bus_104 bus104;
  static  String bus_xs,bus_ys;
    static int bus_x,bus_y;
    private Handler handler;
    private FrameLayout layout;
    private Button bt_bus;
    private Button bt_light;
    private Button bt_stop;
    private Button bt_change;
    private Context context;
    private Map mapView;
    private int busX;
    private int busY;
    static  String  []lights=new String[20];
    String  speed_data,park_data,sumMoney_data,light_time,flag_bus1,flag_bus2,flag_bus3,flag_bus4;
    int i=0;
 static  String flag,flag1,flag2,flag3;
    @SuppressLint("ResourceAsColor")

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);
        initView();
        initToolBar();
        initButton();
        context=this;
        for(int i=0;i<12;i++){
            lights[i]="green";
        }


        handler = new Handler() {

            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
//小车移动第一两车
                    case 101:
                        if(msg.obj.equals("true")){
                            httpUrlConnction_car("busOne");
                            // FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);

                            img_bus.setX(bus_x);
                            img_bus.setY(bus_y);
                            // layout.addView(img_bus,layoutParams3);
                        }
                        break;
                    case 102:
                        if(msg.obj.equals("true")){
                            httpUrlConnction_car("busTwo");
                            // FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);

                            img_bus.setX(bus_x);
                            img_bus.setY(bus_y);
                            // layout.addView(img_bus,layoutParams3);
                        }
                        break;
                    case 103:
                        if(msg.obj.equals("true")){
                            httpUrlConnction_car("busThree");
                            // FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);

                            img_bus.setX(bus_x);
                            img_bus.setY(bus_y);
                            // layout.addView(img_bus,layoutParams3);
                        }
                        break;
                    case 104:
                        if(msg.obj.equals("true")){
                        httpUrlConnction_car("busFour");
                           // FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);

                            img_bus.setX(bus_x);
                            img_bus.setY(bus_y);
                           // layout.addView(img_bus,layoutParams3);
                        }
                        break;
                    case 04:
                        if(msg.obj.equals("true")) {
                            httpUrlConnction_LightGR("4-1", 0);
                            httpUrlConnction_LightGR("4-2", 1);
                            httpUrlConnction_LightGR("4-3", 2);
                            httpUrlConnction_LightGR("4-4", 3);
                            httpUrlConnction_LightGR("4-5", 4);
                            httpUrlConnction_LightGR("4-6", 5);
                            httpUrlConnction_LightGR("4-7", 6);
                            httpUrlConnction_LightGR("4-8", 7);
                            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(130, 60);
                            Button light1 = new Button(context);
                            light1.setX(420);
                            light1.setY(95);
                            if (lights[0].equals("green")) {
                                light1.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light1.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light2 = new Button(context);
                            light2.setX(460);
                            light2.setY(350);
                            if (lights[1].equals("green")) {
                                light2.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light2.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light3 = new Button(context);
                            light3.setX(800);
                            light3.setY(500);
                            if (lights[2].equals("green")) {
                                light3.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light3.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light4 = new Button(context);
                            light4.setX(480);
                            light4.setY(620);
                            if (lights[3].equals("green")) {
                                light4.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light4.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light5 = new Button(context);
                            light5.setX(270);
                            light5.setY(830);
                            if (lights[4].equals("green")) {
                                light5.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light5.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light6 = new Button(context);
                            light6.setX(310);
                            light6.setY(1010);
                            if (lights[5].equals("green")) {
                                light6.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light6.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light7 = new Button(context);
                            light7.setX(360);
                            light7.setY(1220);
                            if (lights[6].equals("green")) {
                                light7.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light7.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light8 = new Button(context);
                            light8.setX(650);
                            light8.setY(1120);
                            if (lights[7].equals("green")) {
                                light8.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light8.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            layout.addView(light1, params);
                            layout.addView(light2, params);
                            layout.addView(light3, params);
                            layout.addView(light4, params);
                            layout.addView(light5, params);
                            layout.addView(light6, params);
                            layout.addView(light7, params);
                            layout.addView(light8, params);
                        }
                        break;
                    case 03:
                        if(msg.obj.equals("true")){
                        httpUrlConnction_LightGR("3-1",0);
                        httpUrlConnction_LightGR("3-2",1);
                        httpUrlConnction_LightGR("3-3",2);
                        httpUrlConnction_LightGR("3-4",3);
                        httpUrlConnction_LightGR("3-5",4);
                        httpUrlConnction_LightGR("3-6",5);
                        httpUrlConnction_LightGR("3-7",6);
                        httpUrlConnction_LightGR("3-8",7);
                        httpUrlConnction_LightGR("3-9",8);
                        httpUrlConnction_LightGR("3-10",9);
                        FrameLayout.LayoutParams paramsx=new FrameLayout.LayoutParams(130,60);
                        Button light1x=new Button(context);
                        light1x.setX(630);
                        light1x.setY(220);
                        if(lights [0].equals("green")){
                            light1x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light1x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light2x=new Button(context);
                        light2x.setX(790);
                        light2x.setY(380);
                        if(lights [1].equals("green")){
                            light2x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light2x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light3x=new Button(context);
                        light3x.setX(940);
                        light3x.setY(540);
                        if(lights [2].equals("green")){
                            light3x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light3x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light4x=new Button(context);
                        light4x.setX(730);
                        light4x.setY(900);
                        if(lights [3].equals("green")){
                            light4x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light4x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light5x=new Button(context);
                        light5x.setX(630);
                        light5x.setY(620);
                        if(lights [4].equals("green")){
                            light5x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light5x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light6x=new Button(context);
                        light6x.setX(450);
                        light6x.setY(450);
                        if(lights [5].equals("green")){
                            light6x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light6x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light7x=new Button(context);
                        light7x.setX(150);
                        light7x.setY(210);
                        if(lights [6].equals("green")){
                            light7x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light7x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light8x=new Button(context);
                        light8x.setX(50);
                        light8x.setY(460);
                        if(lights [7].equals("green")){
                            light8x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light8x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light9x=new Button(context);
                        light9x.setX(250);
                        light9x.setY(660);
                        if(lights [8].equals("green")){
                            light9x.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light9x.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light10=new Button(context);
                        light10.setX(410);
                        light10.setY(820);
                        if(lights [9].equals("green")){
                            light10.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light10.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light11=new Button(context);
                        light11.setX(710);
                        light11.setY(1120);
                        light11.setBackground(getResources().getDrawable(R.drawable.light_green));
                        layout.addView(light1x,paramsx);
                        layout.addView(light2x,paramsx);
                        layout.addView(light3x,paramsx);
                        layout.addView(light4x,paramsx);
                        layout.addView(light5x,paramsx);
                        layout.addView(light6x,paramsx);
                        layout.addView(light7x,paramsx);
                        layout.addView(light8x,paramsx);
                        layout.addView(light9x,paramsx);
                        layout.addView(light10,paramsx);
                        layout.addView(light11,paramsx);}
                        break;
                    case 02:
                        if(msg.obj.equals("true")){
                        httpUrlConnction_LightGR("2-1",0);
                        httpUrlConnction_LightGR("2-2",1);
                        httpUrlConnction_LightGR("2-3",2);
                        httpUrlConnction_LightGR("2-4",3);
                        httpUrlConnction_LightGR("2-5",4);
                        httpUrlConnction_LightGR("2-6",5);
                        httpUrlConnction_LightGR("2-7",6);
                        httpUrlConnction_LightGR("2-8",7);
                        httpUrlConnction_LightGR("2-9",8);
                        FrameLayout.LayoutParams paramsh=new FrameLayout.LayoutParams(130,60);
                        Button light1h=new Button(context);
                        light1h.setX(420);
                        light1h.setY(95);
                        if(lights [0].equals("green")){
                            light1h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light1h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light2h=new Button(context);
                        light2h.setX(620);
                        light2h.setY(320);
                        if(lights [1].equals("green")){
                            light2h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light2h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light3h=new Button(context);
                        light3h.setX(440);
                        light3h.setY(520);
                        if(lights [2].equals("green")){
                            light3h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light3h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light4h=new Button(context);
                        light4h.setX(240);
                        light4h.setY(720);
                        if(lights [3].equals("green")){
                            light4h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light4h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light5h=new Button(context);
                        light5h.setX(20);
                        light5h.setY(950);
                        if(lights [4].equals("green")){
                            light5h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light5h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light6h=new Button(context);
                        light6h.setX(80);
                        light6h.setY(1170);
                        if(lights [5].equals("green")){
                            light6h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light6h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light7h=new Button(context);
                        light7h.setX(260);
                        light7h.setY(1050);
                        if(lights [6].equals("green")){
                            light7h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light7h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light8h=new Button(context);
                        light8h.setX(400);
                        light8h.setY(910);
                        if(lights [7].equals("green")){
                            light8h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light8h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light9h=new Button(context);
                        light9h.setX(600);
                        light9h.setY(710);
                        if(lights [8].equals("green")){
                            light9h.setBackground(getResources().getDrawable(R.drawable.light_green));

                        }else{
                            light9h.setBackground(getResources().getDrawable(R.drawable.light_red));
                        }
                        Button light10h=new Button(context);
                        light10h.setX(770);
                        light10h.setY(540);
                        light10h.setBackground(getResources().getDrawable(R.drawable.light_green));
                        Button light11h=new Button(context);
                        light11h.setX(920);
                        light11h.setY(390);
                        light11h.setBackground(getResources().getDrawable(R.drawable.light_green));
                        layout.addView(light1h,paramsh);
                        layout.addView(light2h,paramsh);
                        layout.addView(light3h,paramsh);
                        layout.addView(light4h,paramsh);
                        layout.addView(light5h,paramsh);
                        layout.addView(light6h,paramsh);
                        layout.addView(light7h,paramsh);
                        layout.addView(light8h,paramsh);
                        layout.addView(light9h,paramsh);
                        layout.addView(light10h,paramsh);
                        layout.addView(light11h,paramsh);}
                        break;
                    case 01:
                        if(msg.obj.equals("true")) {
                            httpUrlConnction_LightGR("1-1", 0);
                            httpUrlConnction_LightGR("1-2", 1);
                            httpUrlConnction_LightGR("1-3", 2);
                            httpUrlConnction_LightGR("1-4", 3);
                            httpUrlConnction_LightGR("1-5", 4);
                            httpUrlConnction_LightGR("1-6", 5);
                            httpUrlConnction_LightGR("1-7", 6);


                            FrameLayout.LayoutParams params1 = new FrameLayout.LayoutParams(130, 60);


                            Button light111 = new Button(context);
                            light111.setX(400);
                            light111.setY(110);
                            if (lights[0].equals("green")) {
                                light111.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light111.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light112 = new Button(context);
                            light112.setX(200);
                            light112.setY(310);

                            if (lights[1].equals("green")) {
                                light112.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light112.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light113 = new Button(context);
                            light113.setX(50);
                            light113.setY(450);
                            if (lights[2].equals("green")) {
                                light113.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light113.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light114 = new Button(context);
                            light114.setX(240);
                            light114.setY(650);
                            if (lights[3].equals("green")) {
                                light114.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light114.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light115 = new Button(context);
                            light115.setX(430);
                            light115.setY(850);
                            if (lights[4].equals("green")) {
                                light115.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light115.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light116 = new Button(context);
                            light116.setX(280);
                            light116.setY(1040);
                            if (lights[5].equals("green")) {
                                light116.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light116.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            Button light117 = new Button(context);
                            light117.setX(15);
                            light117.setY(1100);
                            if (lights[6].equals("green")) {
                                light117.setBackground(getResources().getDrawable(R.drawable.light_green));

                            } else {
                                light117.setBackground(getResources().getDrawable(R.drawable.light_red));
                            }
                            layout.addView(light111, params1);
                            layout.addView(light112, params1);
                            layout.addView(light113, params1);
                            layout.addView(light114, params1);
                            layout.addView(light115, params1);
                            layout.addView(light116, params1);
                            layout.addView(light117, params1);

                        }
                        break;

                    default:
                        break;
                }
            }

        };
    }

    private void stop(){
        AlertDialog.Builder builder=new AlertDialog.Builder(MapActivity.this);
        View view1= LayoutInflater.from(MapActivity.this).inflate(R.layout.dialog_stop,null);
        builder.setView(view1);
        final AlertDialog dialog=builder.create();
        dialog.show();
        Button bt_cancel=view1.findViewById(R.id.bt_cancel);
        Button bt_search_money=view1.findViewById(R.id.bt_search_money);
        EditText ed_hour=view1.findViewById(R.id.ed_hour);
        EditText ed_min=view1.findViewById(R.id.ed_min);
        TextView  ed_summoney=view1.findViewById(R.id.tx_stop_money);

        bt_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.cancel();
            }
        });
        bt_search_money.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String timeS=ed_hour.getText().toString();
                if(timeS.equals("")){
                    time_park=0;
                }else{
                    time_park=Integer.parseInt(timeS);
                }
                httpUrlConnction_parkFee();
            ed_summoney.setText(sumMoney_data);
            }
        });
    }
    private void bus(){
        AlertDialog.Builder builder=new AlertDialog.Builder(MapActivity.this);
        View view= LayoutInflater.from(MapActivity.this).inflate(R.layout.dialog_bus,null);
        builder.setView(view);
        final AlertDialog dialog=builder.create();
        dialog.show();

        Button bus_101=view.findViewById(R.id.bt_bus101);
        Button bus_102=view.findViewById(R.id.bt_bus102);
        Button bus_103=view.findViewById(R.id.bt_bus103);
        Button bus_104=view.findViewById(R.id.bt_bus104);
        bus_101.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("NewApi")
            @Override
            public void onClick(View v) {
                layout.removeAllViews();
                addView();
                FrameLayout.LayoutParams layoutParams0=new FrameLayout.LayoutParams(140,140);
                Button button1=new Button(context);
                flag_bus1="true"; timer=new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        // (1) 使用handler发送消息

                        Message messagehh=new Message();
                        messagehh.what=101;  messagehh.obj=flag_bus1;
                        handler.sendMessage(messagehh);
                    }
                },0,1000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行




                button1.setText("查看路况");
                button1.setTextSize(10);
                button1.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button1.setX(920);
                button1.setY(50);
                layout.addView(button1,layoutParams0);
                Button button2=new Button(context);
                button2.setText("取消导航");
                button2.setTextSize(10);
                button2.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button2.setX(920);
                button2.setY(200);
                layout.addView(button2,layoutParams0);
                button1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        flag1="true";
                        timer=new Timer();
                        timer.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                // (1) 使用handler发送消息
                                Message message=new Message();
                                message.what=01;
message.obj=flag1;
                                handler.sendMessage(message);
                            }
                        },0,30000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行

                    }
                });
                button2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                       flag1="false";flag_bus1="true";
                        layout.removeAllViews();
                        addView();
                    }
                });

                layout.addView(bus101);

                FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);
                img_start.setX(420);
                img_start.setY(0);
                layout.addView(img_start,layoutParams3);
                img_end.setX(130);
                img_end.setY(1350);
                layout.addView(img_end,layoutParams3);

                FrameLayout.LayoutParams layoutParams=new FrameLayout.LayoutParams(80,80);
               /*  img_bus.setX(busX);
                img_bus.setY(busY);*/
                layout.addView(img_bus,layoutParams);

                dialog.cancel();
            }
        });
        bus_102.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("NewApi")
            @Override
            public void onClick(View v) {
                layout.removeAllViews();
                addView();
                layout.addView(bus102);
                FrameLayout.LayoutParams layoutParams0=new FrameLayout.LayoutParams(140,140);
                Button button1=new Button(context);

                flag_bus2="true"; timer=new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        // (1) 使用handler发送消息

                        Message messagehh=new Message();
                        messagehh.what=102;  messagehh.obj=flag_bus2;
                        handler.sendMessage(messagehh);
                    }
                },0,1000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行


                button1.setText("查看路况");
                button1.setTextSize(10);
                button1.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button1.setX(920);
                button1.setY(700);
                layout.addView(button1,layoutParams0);
                Button button2=new Button(context);
                button2.setText("取消导航");
                button2.setTextSize(10);
                button2.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button2.setX(920);
                button2.setY(850);
                layout.addView(button2,layoutParams0);
                button1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        flag2="true";
                        timer=new Timer();
                        timer.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                // (1) 使用handler发送消息
                                Message message=new Message();
                                message.what=02;
                                message.obj=flag2;

                                handler.sendMessage(message);
                            }
                        },0,30000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行


                    }
                });
                button2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                       flag2="flase";flag_bus2="false";
                        layout.removeAllViews();
                        addView();
                    }
                });

                FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);
                img_start.setX(420);
                img_start.setY(0);
                layout.addView(img_start,layoutParams3);

                img_end.setX(950);
                img_end.setY(270);
                layout.addView(img_end,layoutParams3);

            /*    img_bus.setX(busX);
                img_bus.setY(busY);*/
                layout.addView(img_bus,layoutParams3);
                dialog.cancel();
            }
        });
        bus_103.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("NewApi")
            @Override
            public void onClick(View v) {
                layout.removeAllViews();
                addView();
                layout.addView(bus103);
                FrameLayout.LayoutParams layoutParams0=new FrameLayout.LayoutParams(140,140);
                Button button1=new Button(context);
                flag_bus3="true"; timer=new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        // (1) 使用handler发送消息

                        Message messagehh=new Message();
                        messagehh.what=103;  messagehh.obj=flag_bus3;
                        handler.sendMessage(messagehh);
                    }
                },0,1000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行


                button1.setText("查看路况");
                button1.setTextSize(10);
                button1.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button1.setX(920);
                button1.setY(50);
                layout.addView(button1,layoutParams0);
                Button button2=new Button(context);
                button2.setText("取消导航");
                button2.setTextSize(10);
                button2.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button2.setX(920);
                button2.setY(200);
                layout.addView(button2,layoutParams0);
                button1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        flag3="true";
                        timer=new Timer();
                        timer.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                // (1) 使用handler发送消息
                                Message message=new Message();
                                message.what=03;message.obj=flag3;

                                handler.sendMessage(message);
                            }
                        },0,30000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行

                    }
                });
                button2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                     flag3="false";
flag_bus3="false";
                        layout.removeAllViews();
                        addView();
                    }
                });

                FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);
                img_start.setX(540);
                img_start.setY(0);
                layout.addView(img_start,layoutParams3);
                img_end.setX(780);
                img_end.setY(1280);
                layout.addView(img_end,layoutParams3);

                FrameLayout.LayoutParams layoutParams=new FrameLayout.LayoutParams(80,80);
               /* img_bus.setX(busX);
                img_bus.setY(busY);*/
                layout.addView(img_bus,layoutParams);

                dialog.cancel();
            }
        });
        bus_104.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("NewApi")
            @Override
            public void onClick(View v) {
                layout.removeAllViews();
                addView();
                layout.addView(bus104);
                FrameLayout.LayoutParams layoutParams0=new FrameLayout.LayoutParams(140,140);
                Button button1=new Button(context);
                flag_bus4="true"; timer=new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        // (1) 使用handler发送消息

                        Message messagehh=new Message();
                        messagehh.what=104;  messagehh.obj=flag_bus4;
                        handler.sendMessage(messagehh);
                    }
                },0,1000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行



                button1.setText("查看路况");
                button1.setTextSize(10);
                button1.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button1.setX(920);
                button1.setY(50);
                layout.addView(button1,layoutParams0);
                Button button2=new Button(context);
                button2.setText("取消导航");
                button2.setTextSize(10);
                button2.setBackground(getResources().getDrawable(R.drawable.rec_button2));
                button2.setX(920);
                button2.setY(200);
                layout.addView(button2,layoutParams0);

                button1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        flag="true";
                        timer=new Timer();
                        timer.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                // (1) 使用handler发送消息

                                Message messagehh=new Message();
                                messagehh.what=04;  messagehh.obj=flag;
                                handler.sendMessage(messagehh);
                            }
                        },0,30000);//每隔一秒使用handler发送一下消息,也就是每隔一秒执行一次,一直重复执行

                    }
                });
                button2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                      flag="false";
                      flag_bus4="flase";

                        layout.removeAllViews();
                        addView();
                    }
                });

                FrameLayout.LayoutParams layoutParams3=new FrameLayout.LayoutParams(80,80);
                img_start.setX(420);
                img_start.setY(0);
                layout.addView(img_start,layoutParams3);

                img_end.setX(840);
                img_end.setY(1330);
                layout.addView(img_end,layoutParams3);

                FrameLayout.LayoutParams layoutParams=new FrameLayout.LayoutParams(80,80);

                layout.addView(img_bus,layoutParams);

                dialog.cancel();
            }
        });
    }
    private void change(){
        AlertDialog.Builder builder=new AlertDialog.Builder(MapActivity.this);
        View view1= LayoutInflater.from(MapActivity.this).inflate(R.layout.dialog_change_data,null);
        builder.setView(view1);
        final AlertDialog dialog=builder.create();
        dialog.show();
        Button bt_addtime=view1.findViewById(R.id.bt_add_time);
        Button bt_mintime=view1.findViewById(R.id.bt_minus_time);
        Button bt_addmoney=view1.findViewById(R.id.bt_add_money);
        Button bt_minmoney=view1.findViewById(R.id.bt_minus_money);
        Button bt_addSpeed=view1.findViewById(R.id.bt_add_speed);
        Button bt_minSpeed=view1.findViewById(R.id.bt_minus_speed);
        TextView tx_speed=view1.findViewById(R.id.tx_speed);
        TextView tx_time=view1.findViewById(R.id.tx_time); TextView tx_money=view1.findViewById(R.id.tx_money);
      tx_time.setText(light_time);
        tx_speed.setText(speed_data);
        tx_money.setText(park_data);


        bt_addSpeed.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speed=tx_speed.getText().toString();
                int  int_speed;

                if(speed.equals("")){
                    int_speed=0;
                }else{
                    int_speed=Integer.parseInt(speed);
                }

                tx_speed.setText(int_speed+1+"");
            }
        });
        bt_minSpeed.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speed=tx_speed.getText().toString();
                int  int_speed;
                if(speed.equals("")){
                    int_speed=0;
                }else{
                    int_speed=Integer.parseInt(speed);
                }

                if(int_speed==0){
                    tx_speed.setText("0");

                }else{
                    tx_speed.setText(int_speed-1+"");
                }

            }
        });
        bt_addtime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speed=tx_time.getText().toString();
                int  int_speed;
                if(speed.equals("")){
                    int_speed=0;
                }else{
                    int_speed=Integer.parseInt(speed);
                }
                tx_time.setText(int_speed+1+"");
            }
        });
        bt_mintime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speed=tx_time.getText().toString();
                int  int_speed;
                if(speed.equals("")){
                    int_speed=0;
                }else{
                    int_speed=Integer.parseInt(speed);
                }
                if(int_speed==0){
                    tx_time.setText("0");

                }else{
                    tx_time.setText(int_speed-1+"");
                }

            }
        });
        bt_addmoney.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speed=tx_money.getText().toString();
                int  int_speed;
                if(speed.equals("")){
                    int_speed=0;
                }else{
                    int_speed=Integer.parseInt(speed);
                }
                tx_money.setText(int_speed+1+"");
            }
        });
        bt_minmoney.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speed=tx_money.getText().toString();
                int  int_speed;
                if(speed.equals("")){
                    int_speed=0;
                }else{
                    int_speed=Integer.parseInt(speed);
                }
                if(int_speed==0){
                    tx_money.setText("0");

                }else{
                    tx_money.setText(int_speed-1+"");
                }

            }
        });

        Button bt_cancel=view1.findViewById(R.id.bt_cancel);
        Button bt_sure=view1.findViewById(R.id.bt_sure);
        bt_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.cancel();
            }
        });
        bt_sure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.cancel();
            }
        });
    }

    private void initButton() {
       bt_bus=findViewById(R.id.bt_bus);
       bt_change=findViewById(R.id.bt_change);
       bt_stop=findViewById(R.id.bt_stop);
       bt_stop.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               stop();
           }
       });
       bt_change.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               ////////////////
               ////////这里获取公交车速度 红绿灯时长  停车场价格
               httpUrlConnction_speed();
               httpUrlConnction_park();
               httpUrlConnction_light();
               change();
           }
       });
       bt_bus.setOnClickListener(new View.OnClickListener() {
           @RequiresApi(api = Build.VERSION_CODES.O)
           @Override
           public void onClick(View v) {
               bus();
           }
       });
    }

    private void initView() {
        mapView=new Map(this);

        img_bus=new ImageView(this);
        img_bus.setImageDrawable(getResources().getDrawable(R.drawable.bus));
        img_start=new ImageView(this);
        img_start.setImageDrawable(getResources().getDrawable(R.drawable.start));
        img_end=new ImageView(this);
        img_end.setImageDrawable(getResources().getDrawable(R.drawable.end));
        img_busStation=new ImageView(this);
        img_busStation.setImageDrawable(getResources().getDrawable(R.drawable.bus_station));

        bus101=new Bus_101(this);
        bus102=new Bus_102(this);
        bus103=new Bus_103(this);
        bus104=new Bus_104(this);

        layout=findViewById(R.id.mapfl);
        addView();

    }

    private void addView(){
        layout.addView(mapView);
        FrameLayout.LayoutParams layoutParams2=new FrameLayout.LayoutParams(60,60);
        img_busStation.setX(470);
        img_busStation.setY(70);
        layout.addView(img_busStation,layoutParams2);

        ImageView img_stop=new ImageView(this);
        img_stop.setImageDrawable(getResources().getDrawable(R.drawable.stop));
        img_stop.setX(310);
        img_stop.setY(685);
        layout.addView(img_stop,layoutParams2);

    }

    private void initToolBar(){
        toolbar=findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        final DrawerLayout drawerLayout=(DrawerLayout)findViewById(R.id.mapdl);
        final ActionBarDrawerToggle toggle=new ActionBarDrawerToggle(MapActivity.this,drawerLayout,toolbar, R.string.navigation_drawer_open,R.string.navigation_drawer_close);
        toggle.syncState();

        final NavigationView navigationView=findViewById(R.id.user_nav);
        View headerView = navigationView.getHeaderView(0);
        TextView tx_name=headerView.findViewById(R.id.nav_name);
        TextView tx_email=headerView.findViewById(R.id.nav_email);
        tx_name.setText("ssszzzhhh");
        tx_email.setText("1017183127@qq.com");
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()){
                    case R.id.nav_change_user:
                        finish();
                        break;
                    case R.id.nav_logout:
                        finish();
                        break;
                    case R.id.nav_bus:
                        bus();
                        drawerLayout.closeDrawers();
                        break;
                    case R.id.nav_stop:
                        stop();
                        drawerLayout.closeDrawers();
                        break;
                    case R.id.nav_change:
                        change();
                        drawerLayout.closeDrawers();
                }
                return true;
            }
        });
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id=item.getItemId();
        switch (id){
            case R.id.action_logout:
                finish();
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.user_menu,menu);
        return true;
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        timer.cancel();
    }



    public void httpUrlConnction_speed() {


        new Thread() {
            public void run() {
                try {


                    java.util.Map map = new HashMap();
                    // 成对放入多个key-value对
                    map.put("busname" , "K101");


                    //使用Gson 添加 依赖
                    Gson gson = new Gson();
                    //使用Gson将对象转换为json字符串
                    String json = gson.toJson(map);
                    //MediaType  设置Content-Type 标头中包含的媒体类型值
                    RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                            , json);

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/bus")//请求的url
                            .post(requestBody)
                            .build();
                    //创建/Call
                    Call call = SignInFragment.okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.println("nononononononononnoononnono");

                            System.out.println(responseData+"yes");
                            String back_data=responseData.substring(20,responseData.indexOf("}"));
                             speed_data=back_data.substring(0,back_data.indexOf("."));
                            System.out.println(back_data);

                         /*   System.out.println("hhhhhxxr");
                            String back_data=null;
                            if(responseData.contains("登录成功")){
                                back_data="登陆成功";
                            }else if(responseData.contains("密码错误")){
                                back_data="密码错误";
                            }else if(responseData.contains("用户名不存在")) {
                                back_data = "用户名不存在";

                            }
                            Message message = Message.obtain();
                            message.what = 400;
                            message.obj = back_data;

                            handler.sendMessage(message);*/
                        }});







                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    public void httpUrlConnction_light() {


        new Thread() {
            public void run() {
                try {


                    java.util.Map map = new HashMap();
                    // 成对放入多个key-value对
                    map.put("number" , "1-1");


                    //使用Gson 添加 依赖
                    Gson gson = new Gson();
                    //使用Gson将对象转换为json字符串
                    String json = gson.toJson(map);
                    //MediaType  设置Content-Type 标头中包含的媒体类型值
                    RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                            , json);

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/stop/time")//请求的url
                            .post(requestBody)
                            .build();
                    //创建/Call
                    Call call = SignInFragment.okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.println("nononononononononnoononnono");

                            System.out.println(responseData+"yes");
                             light_time=responseData.substring(34,responseData.indexOf("}"));

                         /*   System.out.println("hhhhhxxr");
                            String back_data=null;
                            if(responseData.contains("登录成功")){
                                back_data="登陆成功";
                            }else if(responseData.contains("密码错误")){
                                back_data="密码错误";
                            }else if(responseData.contains("用户名不存在")) {
                                back_data = "用户名不存在";

                            }
                            Message message = Message.obtain();
                            message.what = 400;
                            message.obj = back_data;

                            handler.sendMessage(message);*/
                        }});







                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    public void httpUrlConnction_parkFee() {


        new Thread() {
            public void run() {
                try {


                    java.util.Map map = new HashMap();
                    // 成对放入多个key-value对
                    map.put("parkname" , "park1");

                    map.put("parktime" , time_park);
                    //使用Gson 添加 依赖
                    Gson gson = new Gson();
                    //使用Gson将对象转换为json字符串
                    String json = gson.toJson(map);
                    //MediaType  设置Content-Type 标头中包含的媒体类型值
                    RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                            , json);

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/park/circulate")//请求的url
                            .post(requestBody)
                            .build();
                    //创建/Call
                    Call call = SignInFragment.okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.println("nononononononononnoononnono");

                            System.out.println(responseData+"yes");
                           String back_data=responseData.substring(19,responseData.indexOf("}"));
                            sumMoney_data=back_data.substring(0,back_data.indexOf("."));
                            System.out.println(back_data);

                         /*   System.out.println("hhhhhxxr");
                            String back_data=null;
                            if(responseData.contains("登录成功")){
                                back_data="登陆成功";
                            }else if(responseData.contains("密码错误")){
                                back_data="密码错误";
                            }else if(responseData.contains("用户名不存在")) {
                                back_data = "用户名不存在";

                            }
                            Message message = Message.obtain();
                            message.what = 400;
                            message.obj = back_data;

                            handler.sendMessage(message);*/
                        }});







                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    public void httpUrlConnction_park() {


        new Thread() {
            public void run() {
                try {


                    java.util.Map map = new HashMap();
                    // 成对放入多个key-value对
                    map.put("parkname" , "park1");


                    //使用Gson 添加 依赖
                    Gson gson = new Gson();
                    //使用Gson将对象转换为json字符串
                    String json = gson.toJson(map);
                    //MediaType  设置Content-Type 标头中包含的媒体类型值
                    RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                            , json);

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/park")//请求的url
                            .post(requestBody)
                            .build();
                    //创建/Call
                    Call call = SignInFragment.okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.println("nononononononononnoononnono");

                            System.out.println(responseData+"yes");
                            String back_data=responseData.substring(19,responseData.indexOf("}"));
                            park_data=back_data.substring(0,back_data.indexOf("."));
                            System.out.println(back_data);


                        }});







                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    public void httpUrlConnction_LightGR(String light,int i) {


        new Thread() {
            public void run() {
                try {


                    java.util.Map map = new HashMap();
                    // 成对放入多个key-value对
                    map.put("number" , light);


                    //使用Gson 添加 依赖
                    Gson gson = new Gson();
                    //使用Gson将对象转换为json字符串
                    String json = gson.toJson(map);
                    //MediaType  设置Content-Type 标头中包含的媒体类型值
                    RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                            , json);

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/stop")//请求的url
                            .post(requestBody)
                            .build();
                    //创建/Call
                    Call call = SignInFragment.okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.println("nononononononononnoononnono");

                            System.out.println(responseData+"yes");
                            String data=responseData.substring(24,responseData.indexOf(""}"));

                             lights[i]=data;
                            System.out.print(lights[i]+"dadadadaadadadadadaa");

                         /*   System.out.println("hhhhhxxr");
                            String back_data=null;
                            if(responseData.contains("登录成功")){
                                back_data="登陆成功";
                            }else if(responseData.contains("密码错误")){
                                back_data="密码错误";
                            }else if(responseData.contains("用户名不存在")) {
                                back_data = "用户名不存在";

                            }
                            Message message = Message.obtain();
                            message.what = 400;
                            message.obj = back_data;

                            handler.sendMessage(message);*/
                        }});







                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    public void httpUrlConnction_car(String urlll) {


        new Thread() {
            public void run() {
                try {


                    FormBody.Builder formBody = new FormBody.Builder();

                    Request request = new Request.Builder()
                            .url("http://139.199.27.66:8081/bus/"+urlll)//请求的url
                      .post(formBody.build())
                            .build();
                    //创建/Call
                    Call call = SignInFragment.okHttpClient.newCall(request);
                    //加入队列 异步操作
                    call.enqueue(new Callback() {
                        //请求错误回调方法
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("连接失败");
                        }
                        @Override
                        public void onResponse(Call call, Response response) throws IOException {

                            String responseData=response.body().string();
                            System.out.println("nononononononononnoononnono");

                            System.out.println(responseData+"yes");
                           String back_data=responseData.substring(responseData.indexOf("[")+1,responseData.indexOf("]"));
                            bus_xs=back_data.substring(0,back_data.indexOf(","));
                            bus_ys=back_data.substring(back_data.indexOf(",")+1);
                            bus_x=Integer.parseInt(bus_xs);
                            bus_y=Integer.parseInt(bus_ys);
                            System.out.println(back_data);


                        }});







                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
}
原文地址:https://www.cnblogs.com/kekexxr/p/12292034.html