0

我有一个获取纬度和经度坐标的应用程序。

我想,什么时候按下按钮开始导航到那个位置。

现在,我将经纬度存储在数据库中。

所以,我想先提取位置。当我按下按钮导航时,我会打开一个警报对话框,然后在“是”中执行以下操作:

public void navigation(final View v){



     AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
        alt_bld.setMessage("Do you want to navigate to the saved position?")
                .setCancelable(false)
                .setPositiveButton("Navigate",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {

                        // Action for 'Yes' Button

                        String query = "SELECT latitude,longitude FROM MEMORIES ";
                        Cursor c1 = sqlHandler.selectQuery(query);

                        if (c1 != null && c1.getCount() != 0) {
                            if (c1.moveToFirst()) {
                                do {                
        String mylatitude=c1.getString(c1.getColumnIndex("latitude"));
        String mylongitude=c1.getString(c1.getColumnIndex("longitude"));

        Double lat=Double.parseDouble(mylatitude);
        Double lon=Double.parseDouble(mylongitude); 


                                    } while (c1.moveToNext());
                                }
                            }

                            c1.close();


            Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
                    Uri.parse("http://maps.google.com/maps?saddr=" + 
                    gps.getLocation().getLatitude() + "," + 
                    gps.getLocation().getLongitude() + "&daddr=" + mylatitude + "," + mylongitude ));
                    startActivity(intent);


                            }
                        })
                .setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // Action for 'NO' Button
                                dialog.cancel();
                            }
                        });
        AlertDialog alert = alt_bld.create();
        // Title for AlertDialog
        alert.setTitle("Navigation");
        alert.show();

 }

我存储了位置(纬度和经度),我想开始导航到该位置。我怎样才能做到这一点?

谢谢!

- - - - - - - - - - -更新 - - - - - - - - - - - - - - ---------

如果我这样做:

    String mylat="";
String mylon="";


@Override
protected void onCreate(Bundle savedInstanceState) {
...
...
public void navigation(final View v){
....
String mylatitude=c1.getString(c1.getColumnIndex("latitude"));
String mylongitude=c1.getString(c1.getColumnIndex("longitude"));


mylat=mylatitude;//stored coordinates from database 
mylon=mylongitude;

String f="45.08" //current location (start points)
String s="23.3";

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr=" + 
f + "," + 
s + "&daddr=" + mylat + "," + mylon ));
startActivity(intent);

意图开始,我在地图应用程序中,起点是我在上面定义的“f”和“s”,但目标点是 0.0 , 0.0 ;

所以,我有两个问题:

1)如何将我存储的位置(我的纬度,我的经度(我复制到 mylat,mylon)放到目的地点

2)如何获取当前位置(初始点),因为我的 gps 类对此不起作用。

4

3 回答 3

1

在以这种方式存储经纬度时...

String mylocation=latitude + ":" + longitude;

在检索它的同时

String latitude = mylocation.subString(0, myLocation.indexOf(":") -  1 );
String longitude = mylocation.subString(myLocation.indexOf(":"));

并将其传递为

j.putExtra("lon", longitude);
j.putExtra("lat", latitude);
于 2013-05-15T10:03:17.483 回答
1

一种可能的方法是将您的latitudelongitude值存储在共享偏好中。

- 要存储您可以使用的值

 SharedPreferences sp = getSharedPreferences("MyPrefs", MODE_PRIVATE);

        Editor editor = sp.edit();
        editor.putString("mytext", text);
        editor.commit();

- 并检索您可以使用的那些值

String value = prefs.getString("MyPrefs, "mytext");

在您的代码中,您将纬度和经度存储在 double 中,不要忘记将它们转换为toString()...

希望这可以帮助

于 2013-05-17T18:59:24.833 回答
1

在下面的示例中ImplLocationService是我的应用程序中的一个类/服务,它提供设备内当前位置的纬度和经度坐标。该类Location类似于 Android 的产品,但略有不同,它提供目的地纬度和经度坐标。如果您要从数据库中提取这些值,则下面的方法是相同的。

        Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
               Uri.parse("http://maps.google.com/maps?saddr=" + 
               ImplLocationService.getCurrentLocation().getLatitude() + "," + 
               ImplLocationService.getCurrentLocation().getLongitude() + "&daddr=" + 
               location.getPoint().latitude + "," + location.getPoint().longitude));
        startActivity(intent);
于 2013-05-20T14:18:22.623 回答