android - 如何在 android 的谷歌地图上显示我的位置

标签 android google-maps

我有一个谷歌地图应用程序,它获取一系列点并将它们放在 map 上。我想添加随着用户四处移动而移动的小蓝点。我还没有找到任何关于如何执行此操作的教程。这是我需要的例子

enter image description here

请注意,蓝点还有一个蓝色环,它会在您开始行走时脉动并跟随您。

谢谢

编辑 我找到了 drawMyLocation 函数,但我不知道将它放在哪里。这是我的 map Activity 和逐项叠加层(我正在使用气球逐项叠加层来创建弹出对话框效果)

            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);
            }

上面的部分将所有图钉添加到 map ,下一部分是我尝试添加 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);

关于android - 如何在 android 的谷歌地图上显示我的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262304/

相关文章:

android - Gradle 生成未签名的发布 apk

android - 如何将经度和纬度发送到 map 应用程序以在 map 上显示特定坐标?

Android:如何加载 KML

javascript - 使用 XML/SQL 标记将集群添加到 Google Map

postgresql - 如何在谷歌地图上绘制 Postgis Shortest_path 线?

android - 在单个 Activity 中使用多个 ViewModel.observe 是个好主意吗?

Android - 相机权限在没有提示的情况下被拒绝

android - 如何以编程方式在 Android 上截屏?

google-maps - Google Places API 与 Google Maps 结果

google-maps - 如何获得经纬度左上角和右下角谷歌地图javascript api v3