0

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

4

2 回答 2

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

希望这可以帮助。我有额外的代码使地图居中并在其上插入一个大头针,但这应该能让你继续前进吗?

于 2013-07-26T16:06:42.933 回答
0

看看这个它会帮助你完成你的项目。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/location/Location.java

于 2013-07-26T15:32:21.813 回答