Hy, я новичок в Android, и я узнал о картах Google Android. Я хотел бы отслеживать движение пользователя и рисовать путь полилинии на картах Android в реальном времени, может ли кто-нибудь помочь мне с примером? Я могу получить интервал отслеживания местоположения, но до сих пор не знаю, как применить его в полилинии и сохранить данные LatLng в массиве.
Вам нужно добавить эту/связанную g.play службу virsion в вашем gradle, если вы этого не сделали.
compile 'com.google.android.gms:play-services-maps:8.4.0'
Как официальный документ говорит, используйте этот код.
GoogleMap map;
// ... get a map.
// Add a thin red line from London to New York.
Polyline line = map.addPolyline(new PolylineOptions()
.add(new LatLng(51.5, -0.1), new LatLng(40.7, -74.0))
.width(5)
.color(Color.RED));
Примечание. Методы, которые изменяют полилинию, должны вызываться в основном потоке. Если нет, исключение IllegalStateException будет выведено во время выполнения.
Ради того, что я знаю, что вы можете найти этот код, так вот моя небольшая логика
Latlng
переменных (startLatlng
, endLatlng
)startLatlng
= новые данные Latlng, которые вы получили, когда пользователь перемещается/после периода времени;startLatlng
= endLatlng
(используйте условие с boolian и измените его значение после его вызова)startLatlng
и endLatlng
)endLatlng
= startLatlng
(см. только после того, как вы вызываете, что метод draw задает начальное значение для конечного значения)Примечание
Если это запутывает, используйте реальные значения и попытайтесь понять, что я объяснил.
Первый раз оба они одинаковы.
Это точка, потому что оба находятся в одном и том же месте. (Думаю) Теперь startLatlng
и endLatlng
оба имеют одно и то же значение.
Второе время новое местоположение приходит startLatlng
changes.Then, он не может перейти к этому логическому, если метод, потому что он только в первый раз.
Теперь он вызывает этот метод для рисования линии (новый startLatlng
и старый endLatlng). Только после вызова метода рисования ваш endLatlng
получит новое значение startLatlng
.
Но в следующий раз, когда ваша полная логика снова будет вызвана с очень новыми данными, новые данные присваиваются startLatlng
.
Таким образом, он может нарисовать линию между startLatlng
(новое поле) до endLatlng
(oldPossition).