Нарисуйте ломаную линию в Google Google Maps по мере перемещения пользователя

1

Hy, я новичок в Android, и я узнал о картах Google Android. Я хотел бы отслеживать движение пользователя и рисовать путь полилинии на картах Android в реальном времени, может ли кто-нибудь помочь мне с примером? Я могу получить интервал отслеживания местоположения, но до сих пор не знаю, как применить его в полилинии и сохранить данные LatLng в массиве.

  • 0
    спасибо за помощь, но я хотел бы нарисовать траекторию полилинии при перемещении пользователя и показать ее на устройстве в режиме реального времени.
Показать ещё 2 комментария
Теги:
google-maps
polyline

1 ответ

1

Вам нужно добавить эту/связанную 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 и измените его значение после его вызова)
  • вызовите ваш метод для рисования линии Polyline с помощью (startLatlng и endLatlng)
  • endLatlng= startLatlng (см. только после того, как вы вызываете, что метод draw задает начальное значение для конечного значения)

Примечание

Если это запутывает, используйте реальные значения и попытайтесь понять, что я объяснил. Первый раз оба они одинаковы. Это точка, потому что оба находятся в одном и том же месте. (Думаю) Теперь startLatlng и endLatlng оба имеют одно и то же значение.

Второе время новое местоположение приходит startLatlng changes.Then, он не может перейти к этому логическому, если метод, потому что он только в первый раз.

Теперь он вызывает этот метод для рисования линии (новый startLatlng и старый endLatlng). Только после вызова метода рисования ваш endLatlng получит новое значение startLatlng.

Но в следующий раз, когда ваша полная логика снова будет вызвана с очень новыми данными, новые данные присваиваются startLatlng.

Таким образом, он может нарисовать линию между startLatlng (новое поле) до endLatlng (oldPossition).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню