android :geo 使用意图的位置

Posted

技术标签:

【中文标题】android :geo 使用意图的位置【英文标题】:android :geo Location using intent 【发布时间】:2017-02-26 12:36:28 【问题描述】:

我有一个 ListView,当我单击单个项目时,它会转到单个项目视图。在每个单项查看页面中都有一个位置按钮。单击位置按钮时我需要去谷歌地图

经度和纬度像这样保存在数据库中。 我想动态调用它 在每列的每个单元格中,数据都是这样存储的,


数据在解析数据库中存储为对象,而不是字符串

"lat":25.1250241,"lng":55.3752069

谁知道请告诉我如何从中获取数据?

           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);
                
            );

【问题讨论】:

表示你需要从""lat":25.1250241,"lng":55.3752069"这个String获取数据。 是的,这是一个单元格内的数据@Chetan 在下面查看我的答案 【参考方案1】:

使用Below方法解析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();
        

    

【讨论】:

嗨,谢谢,但这不是静态数据,数据结构如上,但数据是来自数据库的动态数据,类似于您昨天回答的电话号码代码..@Chetan 是的,你需要传递你的字符串来代替 jsonString 。 哦,谢谢..我可以在点击事件中使用此代码@Chetan 还有一件事,数据作为对象存储在解析数据库中,而不是字符串@Chetan 是的,您可以在点击事件中使用它。【参考方案2】:

终于找到方法了..

这是我用来获取坐标的代码

   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();
                
            
        );

【讨论】:

以上是关于android :geo 使用意图的位置的主要内容,如果未能解决你的问题,请参考以下文章

Android 12 蓝牙适配

Android 12 蓝牙适配

Android GEO位置教程[关闭]

在 Android 中获取准确的 GEO 位置,例如 lat 和 long

geo:latitude,longitude?z=zoom in android 带我到我当前的位置

Buildfire:buildfire.geo.getCurrentPosition 不适用于移动应用(android 和 ios)和 PWA