如何在Android中显示我在谷歌地图中的当前位置?

时间:2013-07-26 15:29:54

标签: android google-maps

在我的应用程序中,我使用的是Google map API v2。我使用map.setMyLocationEnabled(false);禁用了“我的位置”按钮,我想添加新按钮来执行相同的工作。如何使用其他按钮以与“我的位置”按钮相同的方式显示当前位置? 的原因:  在我的应用程序中,我想使用原始地图应用程序中的操作栏叠加。但当我这样做时,我的位置按钮位于操作栏下方。所以我不得不删除默认的我的位置按钮,并把我自己的。现在,当我点击新按钮时,我不知道如何将地图移动到我当前的位置。 请帮忙。我是谷歌地图的新手。提前谢谢。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

也是我自己做的,但是创建我自己的标题栏并添加一个新按钮。以下代码可能有所帮助(没有附加XML,您可以自己排序)。在您的活动中添加此方法:

public GeoPoint where(ArrayList<String> coordinates) {
    double lat = Double.parseDouble((String) coordinates.get(0));
    double lng = Double.parseDouble((String) coordinates.get(1));
    GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    return p;
}

然后,在onCreate中,添加这样的东西,你已经在其中实例化了locationManager等:

final Button phoneLocButton = (Button) findViewById(R.id.HomeButtonG);
    phoneLocButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            try {
                locationManager = (LocationManager) getSystemService(context);
                bestProvider = locationManager.getBestProvider(c, true);
                loc = locationManager.getLastKnownLocation(bestProvider);
                if (loc != null) {
                    coords.clear();
                    coords.add("" + loc.getLatitude());
                    coords.add("" + loc.getLongitude());
                }
                mc.animateTo(where(coords));
            } catch (java.lang.IllegalStateException ill) {
                Toast.makeText(getBaseContext(),
                        "Waiting for location fix...", Toast.LENGTH_SHORT)
                        .show();
            }
        }
    });

希望这会有所帮助。我有额外的代码使地图居中并在其上插入一个引脚,但这应该让你去?