Получить направление карты Google от текущего местоположения до пункта назначения

Я использую API направления карты Google, чтобы получить направление json, но моя проблема в том, что я не могу передать текущее местоположение параметру источника. Есть какой-либо способ сделать это?

http://maps.google.com/maps/api/directions/json?origin=41.393529,-72.811514&destination=41.311725,-72.740211

person asok Buzz    schedule 04.11.2015    source источник
comment
Формат URL выглядит хорошо, он возвращает результаты. в чем именно проблема?:   -  person Daniel Nugent    schedule 04.11.2015
comment
Я хочу текущее местоположение для источника   -  person asok Buzz    schedule 04.11.2015
comment
Для получения текущего местоположения взгляните на этот ответ: stackoverflow.com/a/30255219/4409409   -  person Daniel Nugent    schedule 04.11.2015


Ответы (2)


Ознакомьтесь с документацией. Похоже, вы используете неверный URL. В документации, например, перечислены https://maps.googleapis.com/maps/api/directions/json?origin=Brooklyn&destination=Queens в качестве подходящего API. Так что, может быть, изменить maps.google.com на maps.googleapis.com?

РЕДАКТИРОВАТЬ:

Ах, теперь я понимаю проблему. Похоже, это не предусмотрено API Карт Google. Думаю, лучший способ — использовать диспетчер местоположений на вашем телефоне Android, чтобы получить широту и долготу и отформатировать их в URL-адресе.

person Pieter van der Heijden    schedule 04.11.2015

если вы используете API карт Google, вы должны использовать googleapiclient в своем приложении. если нет, то сделайте это.

используя клиент Google API-

googleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .enableAutoManage(this, 0, this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .addApi(Places.GEO_DATA_API)
            .addApi(Places.PLACE_DETECTION_API)
            .build();

@Override
protected void onStart() {
    googleApiClient.connect();
    super.onStart();
}

@Override
protected void onStop() {
    if (googleApiClient != null && googleApiClient.isConnected()) {
        googleApiClient.disconnect();
    }
    super.onStop();
}

затем после подключения к клиенту google ai вам нужно будет реализовать методы, а внутри метода onConnected() (вам придется переопределить этот метод) вы можете получить текущее местоположение.

получение текущего местоположения внутри onConnected-

Location loc = LocationServices
            .FusedLocationApi
            .getLastLocation(googleApiClient);

объект loc является текущим местоположением, и вы можете использовать его в любой точке кода, чтобы получить местоположение в этом экземпляре, но только после подключения googleapiclient.

вы можете применить это в своем коде как

String url="http://maps.google.com/maps/api/directions/json?origin="+loc.getLatitude()+","+loc.getLongitude()+"&destination=41.311725,-72.740211";
person Sagar Nayak    schedule 01.03.2016
comment
не могли бы вы принять это как правильный ответ, если это то, что вы хотите. - person Sagar Nayak; 05.03.2016