У меня есть приложение Google Maps, которое берет массив точек и помещает их на карту. Я хочу добавить маленькую голубую точку, которая движется по мере перемещения пользователя. Я не нашел учебников о том, как это сделать. Вот пример того, что мне нужно
Обратите внимание, что синяя точка также имеет синее кольцо, которое пульсирует, и оно следует за вами, когда вы начинаете ходить.
благодаря
EDIT Я нашел функцию drawMyLocation, однако я не знаю, где ее разместить. Вот моя активность на карте и мой предметный оверлей (я использую наложенное наложение с помощью шара, чтобы создать эффект всплывающего диалогового окна)
MapView mapView = (MapView) findViewById(R.id.mapView);
List<Overlay> mapOverlays = mapView.getOverlays();
for (int i = 0; i < mList.size(); i++) {
Drawable drawable = null;
for (int k = 0; k < ImTracking.pList.size(); k++) {
if (mList.get(i).getId()
.equals(ImTracking.pList.get(k).getid())) {
mList.get(i).setName(
ImTracking.pList.get(k).getName());
if (mList.get(i).getMostRecent()) {
drawable = Maps.this.getResources()
.getDrawable(
pincolorstar[ImTracking.pList
.get(k).getPosition()]);
} else {
drawable = Maps.this
.getResources()
.getDrawable(
ImTracking.pincolors[ImTracking.pList
.get(k).getPosition()]);
}
}
}
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(
drawable, mapView);
GeoPoint myPoint = new GeoPoint((int) (mList.get(i)
.getLatitude() * 1E6), (int) (mList.get(i)
.getLongitude() * 1E6));
OverlayItem overlayitem = new OverlayItem(myPoint, mList
.get(i).getName(), mList.get(i).getTime());
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}
Вышеупомянутая часть добавляет все контакты к карте, в следующей части я пытаюсь добавить наложение mylocation
MyLocationOverlay myLocationOverlay=new MyLocationOverlay(Maps.this, mapView);
myLocationOverlay.enableMyLocation();
mapOverlays.add(myLocationOverlay);
MapController mc = mapView.getController();
mc.zoomToSpan(Math.abs(maxLat - minLat),
Math.abs(maxLon - minLon));
mc.animateTo(new GeoPoint((maxLat + minLat) / 2,
(maxLon + minLon) / 2));
} catch (Exception e) {
e.printStackTrace();
}
Просто добавление myLocationOverlay к mapOverlays не отображает синюю точку.
Возможно, вы захотите увидеть MyLocationOverlay и посмотреть, может ли это соответствовать вашему требованию
Пример иллюстрации ниже:
List overlaysoverlays = mapView.getOverlays();
// "this" refers to your activity
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);
myLocationOverlay.enableMyLocation();
overlays.add(myLocationOverlay);