android :geo Location using intent

2019-05-26 17:46发布

问题:

I have a ListView and when i click a single item it goes to single item view . in each single item view page there is a location button .I need to go to google map when click the location button

longtitute and latitudes are saved in database like this . I want to call this dynamically in EACH CELL OF THE COLUMN , data is stored like this,


the data is stored as object inside parse database, not as strings

{"lat":25.1250241,"lng":55.3752069}

anyone knows please tell how can i get data from this?

           btn = (Button) findViewById(R.id.button5) ;
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    btn = (Button) findViewById(R.id.button56) ;
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    String data = String.format("geo:%s,%s", latitude, longitude);

                    intent.setData(Uri.parse(data));
                    startActivity(intent);
                }
            });

回答1:

Use Below method to parse your data from String you need pass one paramaeter in below method when I passes string.

private void parseJsonData(){
        try {
            String jsonString = "{\"lat\":25.1250241,\"lng\":55.3752069}";
            Object object = new JSONTokener(jsonString).nextValue();
            if (object instanceof JSONObject) {
                JSONObject jsonObject = (JSONObject) object;
                double lat = Double.parseDouble(jsonObject.optString("lat"));
                double lng = Double.parseDouble(jsonObject.optString("lat"));

                Log.i(getClass().getSimpleName(),"lat="+lat);
                Log.i(getClass().getSimpleName(),"lng="+lng);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }


回答2:

finally found way ..

this is the code i use to get only the coordinates

   showCorporate = (Button) findViewById(R.id.individualEmail);
        showCorporate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String[] location = corporateLocation.split(",");
                double lat, lng;
                try{
                    lat = fetchDouble(location[0], true);
                    lng = fetchDouble(location[1], false);
                    Log.d("Co-Ordinates",""+lat+", "+lng);
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    String data = String.format("geo:%s,%s", lat, lng);
                    intent.setData(Uri.parse(data));
                    startActivity(intent);
                }catch (NullPointerException npe){
                    Toast.makeText(SingleCorporate.this, "Sorry No Location Available!", Toast.LENGTH_SHORT).show();
                }
            }
        });