Получить расстояние и нарисовать линию между двумя местоположениями Android-карты Google - PullRequest
0 голосов
/ 09 сентября 2018

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

это три глобальные переменные

 Location myLocation;
 LatLng onmaplongclicklastlatlng;
 private GoogleMap mMap;

mylocation назначается LocationListener, а onmaplongclicklastlatlng назначается, когда я долго нажимаю на любое место на карте.

Размещение маркера в обоих местах завершено. У меня уже есть две точки, на которых я хочу нарисовать линию.

мне просто нужно нарисовать линию между этими двумя местоположениями (мое текущее местоположение периодически обновляется в переменной myLocation )

и onmaplongclicklastlatlng менялись всякий раз, когда я долго нажимал на карту.

весь код готов, и у меня есть button, который я хочу использовать для draw строки так как я могу получить доступ к двум местоположениям variables из этого button метода, другой код не нужно изменять.

public void getLine(View view) {

    // need to draw a line here from user gps posiution to the marker location    
}

Я перепробовал много уроков, но по какой-то причине они не работают, любая помощь будет очень признательна.

о, и последнее, но не менее важное

onmaplongclicklastlatlng

является LatLng и

myLocation

Местоположение

но их можно поменять местами для соответствия цели

ex. Location maplocation = new Location(onmaplongclicklastlatlng
.latitude, onmaplongclicklastlatlng.longitude);

и

Latlng myLatLng = new LatLng(myLocation.getLatitude(), myLocation.getLongitude());

Как я уже сказал, любая помощь будет очень признательна. И дайте мне знать, если что-нибудь еще понадобится, я отредактирую вопрос.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Чтобы рассчитать точное расстояние между двумя локаторами, вы должны использовать Google Map Distance Matrix API . Создайте свой URL, как показано ниже.

https://maps.googleapis.com/maps/api/distancematrix/json?" +"origin=" + origin.latitude + "," + origin.longitude+ "&" +"destination=" + dest.latitude + "," + dest.longitude +"&sensor=false&units=metric&mode=driving" + "&" + key=YOUR_API_KEY

И чтобы нарисовать линию между двумя точками, сначала вы должны использовать Направление карты Google Api , создайте свой URL, как показано ниже

https://maps.googleapis.com/maps/api/directions/json?" +"origin=" + origin.latitude + "," + origin.longitude+ "&" +"destination=" + dest.latitude + "," + dest.longitude +"&sensor=false&units=metric&mode=driving" + "&" + key=YOUR_API_KEY

выше вызова API вернуть список значений, добавить список в полилинии

 Polyline polyline1 = googleMap.addPolyline(new PolylineOptions()
                .clickable(true)
                .addAll(latlngList));

надеюсь, это поможет.

0 голосов
/ 12 сентября 2018

Как насчет этих:

https://github.com/zhenyanghua/MeasureTool-GoogleMaps-V3 http://zhenyanghua.github.io/google-maps/measure-tool/

Привет

PS: я не являюсь автором программного обеспечения.

...