Я хочу создать такую функциональность, как Google Maps. Я хочу обновить свой маркер местоположения всякий раз, когда человек начинает ходить/водить. Я думаю использовать метод onLocationChange для LocationListner, но я не уверен. Мне также нравится рисовать путь с обновлением местоположения на Картах Google.Обновить местоположение Маркер и рисовать маршрут на Картах Google при ходьбе/вождении в Android
Все предложения приветствуются.
ItemizedOverlay: -
public class LocationOverlay extends ItemizedOverlay<OverlayItem>{
private List<OverlayItem> myOverlays;
Path path;
static int cnt = -1;
public LocationOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
System.out.println("Normal...");
myOverlays = new ArrayList<OverlayItem>();
}
public void addOverlay(OverlayItem overlay) {
System.out.println("Add Overlay called");
myOverlays.add(overlay);
populate();
cnt++;
}
@Override
protected OverlayItem createItem(int i) {
return myOverlays.get(i);
}
public void removeItem(int i) {
myOverlays.remove(i);
populate();
}
@Override
public int size() {
return myOverlays.size();
}
@Override
public void draw(Canvas canvas, final MapView mapView, boolean shadow) {
if (shadow) {
paint.setDither(true);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStrokeWidth(4);
path = new Path();
Point point1 = new Point();
Projection projection = mapView.getProjection();
if (myOverlays.size() > 1) {
System.out.println(">>>>>>>>>>>");
for (int i = 0, j=i; i < myOverlays.size(); i++) {
Point point1 = new Point();
Point point2 = new Point();
projection.toPixels(myOverlays.get(i).getPoint(), point1);
System.out.println(">>>>>>>>>>>");
projection.toPixels(myOverlays.get(j++).getPoint(), point2);
System.out.println("Point == " + j);
path.moveTo(point2.x, point2.y);
path.lineTo(point1.x, point1.y);
canvas.drawPath(path, paint);
super.draw(canvas, mapView, shadow);
}
}
}
canvas.drawPath(path, paint);
super.draw(canvas, mapView, shadow);
}
}
Примечание - метод рисования вызывается множественным время для одного LocationChanged.
EDIT: -
Я могу нарисовать маршрут, когда есть любое место изменился огнь события, но я столкнулся с небольшой проблемой там. Его также тянет путь от корня каждый раз. Я хочу, чтобы с последнего места он должен начать рисовать путь (например, соединение от последнего к следующему местоположению). Я использую одно изображение для лучшего понимания.
Из образа вы можете увидеть, что начальная точка также соединена с последней точкой. Я не хочу этого. Любая идея по этому поводу.
Точка местоположения по умолчанию будет нарисована автоматически и будет обновлена, как только вы перейдете бу как она будет обновлена? Я знаю, что, реализуя LocationListner, это делается, но я хочу знать, как его обновление? Это основано на requestUpdateLocation LocationManager? А во время обновления его обращение к методу onLocationChange прямо? – Scorpion
внутренне - да. Он использует GPS или сеть для получения последнего известного местоположения и при обновлении местоположения - onLocationChanged срабатывает обратный вызов –
Хорошо. Спасибо за сообщение. Я попробую это ... – Scorpion