GPS - 获取距离,时间运行时和行走距离、时间、GPS

由网友(油炸小可爱)分享简介:我有一个情况我需要使用GPS技术。i have a situation where i need to use GPS technique.我需要找到两个点之间的距离,当该人是步行i need to find the distance between two points when the person is w...

我有一个情况我需要使用GPS技术。

i have a situation where i need to use GPS technique.

我需要找到两个点之间的距离,当该人是步行

i need to find the distance between two points when the person is walking.

在人开始走,他会点击启动按钮,当他停下,他点击停止按钮

When the person starts walking he will click on Start button and when he stops he clicks on stop button

在这之后它应该告诉他

1.时间采取 2.Distance在公里行驶。 3.从哪里到哪里(地方名),例如:a到b

1.time taken 2.Distance travelled in Kms. 3.from where to where(places name) eg: a to b

我是否需要有谷歌地图吗?

Do i need to have google maps for this?

我看到了code这里的链接获取当前位置,让我经纬度。

I saw the code here link to get the current location which gives me latitude longitude.

请帮忙如何去与这个

**

**

这是在code我使用

private EditText editTextShowLocation;
    private Button buttonGetLocation;
    private ProgressBar progress;

    private LocationManager locManager;
    private LocationListener locListener = new MyLocationListener();

    private boolean gps_enabled = false;
    private boolean network_enabled = false;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        editTextShowLocation = (EditText) findViewById(R.id.editTextShowLocation);

        progress = (ProgressBar) findViewById(R.id.progressBar1);
        progress.setVisibility(View.GONE);

        buttonGetLocation = (Button) findViewById(R.id.buttonGetLocation);
        buttonGetLocation.setOnClickListener(this);

        locManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    }

    @Override
    public void onClick(View v) {
        progress.setVisibility(View.VISIBLE);
        // exceptions will be thrown if provider is not permitted.
        try {
            gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        } catch (Exception ex) {
        }
        try {
            network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        } catch (Exception ex) {
        }

        // don't start listeners if no provider is enabled
        if (!gps_enabled && !network_enabled) {
            AlertDialog.Builder builder = new Builder(this);
            builder.setTitle("Attention!");
            builder.setMessage("Sorry, location is not determined. Please enable location providers");
            builder.setPositiveButton("OK", this);
            builder.setNeutralButton("Cancel", this);
            builder.create().show();
            progress.setVisibility(View.GONE);
        }

        if (gps_enabled) {
            locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
        }
        if (network_enabled) {
            locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
        }
    }

    class MyLocationListener implements LocationListener {
        @Override
        public void onLocationChanged(Location location) {
            if (location != null) {
                // This needs to stop getting the location data and save the battery power.
                locManager.removeUpdates(locListener); 

                String londitude = "Londitude: " + location.getLongitude();
                String latitude = "Latitude: " + location.getLatitude();
                String altitiude = "Altitiude: " + location.getAltitude();
                String accuracy = "Accuracy: " + location.getAccuracy();
                String time = "Time: " + location.getTime();

                editTextShowLocation.setText(londitude + "n" + latitude + "n" + altitiude + "n" + accuracy + "n" + time);
                progress.setVisibility(View.GONE);
            } 
        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        if(which == DialogInterface.BUTTON_NEUTRAL){
            editTextShowLocation.setText("Sorry, location is not determined. To fix this please enable location providers");
        }else if (which == DialogInterface.BUTTON_POSITIVE) {
            startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
        }
    }

据显示Logitude纬度而我从仿真控制输入。

在此,我手动输入经纬度的细节 转到窗口 - >在仿真模拟器控制进行测试; showview->其他 - &GT 但我需要的是我有两个的EditText在那里我输入地名(A)和(B)

In this i am manually entering the details of longitude and latitude by going to window->showview->other->emulator control for testing in the emulator but what i need is i will have two edittext where i enter the place name(A) and (B)

这应该给我的距离

请帮忙

推荐答案

请尝试使用谷歌的距离矩阵阿比

try using Google Distance Matrix Api

https://developers.google.com/maps/documentation/distancematrix/

阅读全文

相关推荐

最新文章