Android映射Json解析后单击按钮上的多个标记

时间:2017-07-05 00:31:01

标签: java android

我想绘制我在这里得到的纬度和经度值的坐标

  

字符串longitude = c.getString("long"); String latitude = c.getString("lat");

并将其附在按钮上。

b.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(getActivity(), g.getLatitude() + " " + g.getLongitude(), Toast.LENGTH_SHORT).show();
    }
});

以下是完整的代码:tifffile.py

public class MapFragment extends Fragment implements OnMapReadyCallback {

    SnailTrail st;
    GoogleMap map, map2;
    PopupWindow popupWindow;
    LocationManager mLocationManager;

    Button b;

    private ProgressDialog pDialog;
    private ListView lv;
    // URL to get contacts JSON
    private static String url = "http://mark.journeytech.com.ph/json/2.json";

    ArrayList<HashMap<String, String>> contactList;
    SnailTrail g = new SnailTrail();
    TextView tv;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_contact_us, container, false);
//        new GetCoordinates(getActivity()).getCoordinates();
        b = (Button) v.findViewById(R.id.b1);
        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(getActivity(), g.getLatitude() + " " + g.getLongitude(), Toast.LENGTH_SHORT).show();
            }
        });
        return v;
    }


    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map1);
        mapFragment.getMapAsync(this);

        new GetVehicles().execute();
    }

    private class GetVehicles extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // Showing progress dialog
            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Please wait...");
            pDialog.setCancelable(false);
            pDialog.show();

        }

        @Override
        protected Void doInBackground(Void... arg0) {
            HttpHandler sh = new HttpHandler();

            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(url);

            if (jsonStr != null) {
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);

                    // Getting JSON Array node
                    JSONArray contacts = jsonObj.getJSONArray("snailtrail_data");

                    // looping through All Contacts
                    for (int i = 0; i < contacts.length(); i++) {
                        JSONObject c = contacts.getJSONObject(i);
                        String account = c.getString("account");
                        String trxdate = c.getString("trxdate");
                        String trxtime = c.getString("trxtime");
                        String longitude = c.getString("long");
                        String latitude = c.getString("lat");
                        String location = c.getString("location");
                        String direction = c.getString("direction");
                        String compass = c.getString("compass");
                        String id = c.getString("id");
                        String remarks = c.getString("remarks");
                        String status = c.getString("status");
                        String kmrun = c.getString("kmrun");
                        String speed = c.getString("speed");
                        String totalkm = c.getString("totalkm");
                        String engine = c.getString("engine");
                        String plateno = c.getString("plateno");

                        /*// tmp hash map for single contact
                        HashMap<String, String> contact = new HashMap<>();

                        // adding each child node to HashMap key => value
                        contact.put("account", account);
                        contact.put("trxdate", trxdate);
                        contact.put("trxtime", trxtime);
                        contact.put("longitude", longitude);
                        contact.put("latitude", latitude);
                        contact.put("location", location);
                        contact.put("direction", direction);
                        contact.put("compass", compass);
                        contact.put("id", id);
                        contact.put("remarks", remarks);
                        contact.put("status", status);
                        contact.put("kmrun", kmrun);
                        contact.put("speed", speed);
                        contact.put("totalkm", totalkm);
                        contact.put("engine", engine);
                        contact.put("plateno", plateno);

                        // adding contact to contact list
                        contactList.add(contact);*/
                    }
                } catch (final JSONException e) {

                }
            } else {

            }

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            // Dismiss the progress dialog
            if (pDialog.isShowing())
                pDialog.dismiss();


        }

    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        MarkerOptions option = new MarkerOptions();
        g.setLocation("3rd Floor Sky Freight Building\n" +
                "Ninoy Aquino Avenue,Paranque City\n" +
                "1704 Philippines\n" +
                "Tel. No: +639.2.852-8410 \n" +
                "Fax. No: +639.2.851-8745 ");
        map = googleMap;

        String lat1 =  "-34.8799074";
        String long1 = "174.7565664";
        double latitude = Double.parseDouble(lat1);
        double longitude = Double.parseDouble(long1);

/*        String[] latlong =  "-34.8799074,174.7565664".split(",");
        double latitude = Double.parseDouble(latlong[0]);
        double longitude = Double.parseDouble(latlong[1]);*/

        LatLng pp = new LatLng(latitude, longitude);

        map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
            @Override
            public View getInfoWindow(Marker arg0) {
                return null;
            }
            @Override
            public View getInfoContents(Marker marker) {
                LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(LAYOUT_INFLATER_SERVICE);
                View myContentView = inflater.inflate(R.layout.marker_popup, null);
                TextView loc = ((TextView) myContentView
                        .findViewById(R.id.textView2));
                loc.setText(marker.getTitle());

                TextView plate_num = ((TextView) myContentView
                        .findViewById(R.id.textView4));
                plate_num.setText(marker.getSnippet());
/*                Button btnDismiss = (Button) myContentView.findViewById(R.id.dismissbtn);
                btnDismiss.setOnClickListener(new Button.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        popupWindow.dismiss();
                    }
                });*/
                return myContentView;
            }
        });

//        map.moveCamera(CameraUpdateFactory.newLatLngZoom(pp, 8));

        map.addMarker(new MarkerOptions()
                .position(pp)
                .title(g.getLocation())
                .snippet("SkyFreight")
                .icon(BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)));

        map.addMarker(new MarkerOptions()
                .title("India")
                .snippet("New Delhi")
                .position(new LatLng(20.59, 78.96))
                .icon(BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_CYAN)));

        map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {

            @Override
            public void onInfoWindowClick(Marker arg0) {
                Toast.makeText(getActivity(), "TOOOAST", Toast.LENGTH_LONG);
            }
        });

    };


}`

0 个答案:

没有答案