我正在使用谷歌地图api v2。我有一个按钮,可以将标记添加到我当前的位置。
地图可以让我的位置正确但有时(不是每次)当我想要将标记添加到该位置时,标记会远离蓝点。
我想将我的标记完全添加到蓝点上。
这是我的findMe按钮的代码:
ImageButton findMyLocation_btn = (ImageButton) findViewById(R.id.findme);
if (findMyLocation_btn != null) {
findMyLocation_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
buildAlertMessageNoGps();
} else {
currentLocation = mMap.getMyLocation();
if ( marker1 == null && currentLocation != null) {
new onMyLocationClick().execute();
}
}
}
});
和onMyLocationClick()
private class onMyLocationClick extends AsyncTask{
@Override
protected Object doInBackground(Object[] params) {
Geocoder gc = new Geocoder(MainActivity.this);
List<Address> list = null;
try {
list = gc.getFromLocation(currentLocation.getLatitude(), currentLocation.getLongitude(), 1);
} catch (Exception ex) {
ex.printStackTrace();
}
if (list != null) {
add = list.get(0);
}
try {
origin = new LatLng(add.getLatitude(),add.getLongitude());
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute (Object o){
createMarker(add.getLatitude(), add.getLongitude(), add.getLocality(), add.getSubLocality());
}
}
答案 0 :(得分:0)
基于Google Maps doc:
此方法已弃用。请改用com.google.android.gms.location.FusedLocationProviderApi。 FusedLocationProviderApi提供改进的位置查找和功率使用,并由&#34;我的位置&#34;蓝点。
获取当前位置的代码是这样的:
class CustomerSerializer(serializers.ModelSerializer):
latest_event_name = serializers.ReadOnlyField()
class Meta:
model = Customer
fields = '__all__'
要获得更高级的解决方案,您可以使用Google提到的FusedLocationProvider:https://developer.android.com/training/location/retrieve-current.html#GetLocation