2016-12-23 2 views
1

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

+0

Возможный дубликат [Как нарисовать интерактивную полилинию по маршруту google maps v2 android] (http://stackoverflow.com/questions/17425499/how-to-draw-interactive-polyline-on-route-google-maps- v2-android) –

+0

спасибо за помощь, но я бы хотел нарисовать путь полилинии по мере перемещения пользователя и показать его на устройстве в режиме реального времени. –

+0

объяснил логику –

ответ

1

Вам необходимо добавить эту/связанную службу g.play virsion в свою граду в случае, если вы этого не сделали.

compile 'com.google.android.gms:play-services-maps:8.4.0' 

Как official doc говорит, используйте этот код.

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 будет выброшен во время выполнения.

Для ради, что я знаю, вы можете найти этот код так вот моя маленькая логика

  1. Держите начальное и конечное положение Latlng переменные (startLatlng, endLatlng)
  2. Как вы можете видеть в данном примере вы не может отправлять жестко закодированные значения, передавать свои реальные значения, так что перемещайтесь по местоположению, когда пользователь перемещается или может быть по истечении определенного периода времени.
  3. Логика записи: startLatlng = новые данные Latten, которые вы получили, когда пользователь перемещался/после периода времени;
  4. только впервые startLatlng = endLatlng (использование, если условие с булевых и изменить его значение после того, как она будет называться)
  5. называют метод рисовать Поли-линию линии (startLatlng и endLatlng)
  6. endLatlng = startLatlng (см только после того, как вы называете, что метод рисования установить начальное значение на конечное значение)

Примечание

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

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

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

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

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

Смежные вопросы