Как я могу показать свое местоположение на Google Maps в Android

1

У меня есть приложение Google Maps, которое берет массив точек и помещает их на карту. Я хочу добавить маленькую голубую точку, которая движется по мере перемещения пользователя. Я не нашел учебников о том, как это сделать. Вот пример того, что мне нужно

Изображение 174551

Обратите внимание, что синяя точка также имеет синее кольцо, которое пульсирует, и оно следует за вами, когда вы начинаете ходить.

благодаря

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 не отображает синюю точку.

  • 0
    Проверьте это сообщение: stackoverflow.com/questions/1513485/… Там я считаю, что вы можете найти все, что вы хотите!
Теги:
google-maps

1 ответ

6
Лучший ответ

Возможно, вы захотите увидеть MyLocationOverlay и посмотреть, может ли это соответствовать вашему требованию

Пример иллюстрации ниже:


    List overlaysoverlays = mapView.getOverlays();
    // "this" refers to your activity
    MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);
    myLocationOverlay.enableMyLocation();
    overlays.add(myLocationOverlay);
  • 0
    где я могу сжать MyLocationOverlay? В моем классе карты я уже расширяю MapActivity.
  • 0
    MyLocation - это наложение, которое вы добавляете в существующий MapView.
Показать ещё 6 комментариев

Ещё вопросы

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