在我的应用程序中,我使用的是 Google 地图 API v2。我禁用了我的位置按钮map.setMyLocationEnabled(false);
,我想添加新按钮来做同样的工作。如何使用另一个按钮以与“我的位置”按钮相同的方式显示我的当前位置?
原因:在我的应用程序中,我想像在原始地图应用程序中一样使用操作栏覆盖。但是当我这样做时,我的位置按钮位于操作栏下方。所以我不得不删除默认的我的位置按钮并放上我自己的。现在,当我单击新按钮时,我不知道如何将地图移动到当前位置。请帮忙。我是谷歌地图的新手。提前致谢。
user2623122
问问题
5953 次
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
看看这个它会帮助你完成你的项目。
于 2013-07-26T15:32:21.813 回答