Android 在mapview上精确定位当前GPS位置

Android 在mapview上精确定位当前GPS位置,android,Android,我在这里和谷歌上尝试了很多教程,但似乎没有一个教程与我相关 基本上,到目前为止,我已经能够在我的应用程序上显示地图视图,并实现SetBuilTinZoomControl。我只是不能像谷歌纬度那样让地图精确定位用户的当前位置 我想让我的应用程序检测我的当前位置,然后在我按下按钮时精确定位。 我想向大家展示我迄今为止在代码方面所做的工作,但在尝试了许多教程之后,我觉得我的代码现在太草率和不完整,无法理解 如果有任何教程,我可能已经监督,请给我的链接。如果没有,你能帮我指引正确的方向吗 谢谢大家,编码

我在这里和谷歌上尝试了很多教程,但似乎没有一个教程与我相关

基本上,到目前为止,我已经能够在我的应用程序上显示地图视图,并实现SetBuilTinZoomControl。我只是不能像谷歌纬度那样让地图精确定位用户的当前位置

我想让我的应用程序检测我的当前位置,然后在我按下按钮时精确定位。 我想向大家展示我迄今为止在代码方面所做的工作,但在尝试了许多教程之后,我觉得我的代码现在太草率和不完整,无法理解

如果有任何教程,我可能已经监督,请给我的链接。如果没有,你能帮我指引正确的方向吗


谢谢大家,编码快乐

这将创建一个新的位置覆盖,并使用默认地图标记精确定位位置:

private MyLocationOverlay mLocationOverlay = new MyLocationOverlay(getBaseContext(), mMapView);
mMapView.getController().animateTo(mLocationOverlay.getMyLocation());
要更近地放大,可以通过执行类似于
mMapView.getController().setZoom(10)的操作来设置静态缩放级别
或使用
.zoomIn()。


有许多方法可以自定义缩放行为,如果要对其进行过度自定义,最好使用Runnable。您需要在
.animateTo
调用中添加一个额外的
Runnable
参数。

使用当前版本的,您可以使用以下代码显示当前位置:

showCurrentPosition(myMap);
下面是一个代码文件,其中包含可以添加到活动类中的帮助器函数:

import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.LatLng;

import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;


private LatLng getCurrentPosition(){
    // location details
    locationManager     = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria criteria   = new Criteria();
    String bestProvider = locationManager.getBestProvider(criteria, false);

    Location location   = locationManager.getLastKnownLocation(bestProvider);
    LatLng posLatLon    = new LatLng(location.getLatitude(), location.getLongitude());
    Toast.makeText(this, "position: "+ location.getLatitude() + "," + location.getLongitude(), Toast.LENGTH_SHORT).show();
    return posLatLon;
}

private LatLng showCurrentPosition(GoogleMap map){
    LatLng posLatLon    = getCurrentPosition();
    CameraUpdate cam    = CameraUpdateFactory.newLatLngZoom(posLatLon, 12.0f);
    mMap.moveCamera(cam);
    return posLatLon;
}

我以前偶然发现了hellomapview教程。如果我错了,请纠正我的错误,但本教程是否仅基于预定义的地质点坐标设置您的位置?我要找的是一个可以(按一下按钮)检测到我的位置并在地图视图上精确定位我的位置的东西。很抱歉延迟回复。本周,我自己在更多地使用MapsAPI之后更新了我的答案。