我如何在谷歌地图API V2我的当前位置(How do I get my current locat

2019-08-07 15:54发布

我创建了用户需要看到getMyLocation()他/她的地理位置的应用程序,但这返回null。 对此有任何解决方案,是因为我读的是getMyLocation()方法总是返回null。 我是新来的谷歌地图,因此任何帮助将不胜感激!

码:

GoogleMap map = ((SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
map.setMyLocationEnabled(true);
Location myLocation = map.getMyLocation();

if( myLocation != null ){
    helper.showToast( "Latitude: " + myLocation.getLatitude() + "\nLongitude: " + myLocation.getLongitude() );
}

Answer 1:

请检查的示例代码Google Maps Android API v2 ,使用此您将解决你的问题。

示例代码



Answer 2:

private void setUpMapIfNeeded() {
        // Do a null check to confirm that we have not already instantiated the map.
        if (mMap == null) {
            // Try to obtain the map from the SupportMapFragment.
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();
            mMap.setMyLocationEnabled(true);
            // Check if we were successful in obtaining the map.
            if (mMap != null) {


             mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {

           @Override
           public void onMyLocationChange(Location arg0) {
            // TODO Auto-generated method stub

             mMap.addMarker(new MarkerOptions().position(new LatLng(arg0.getLatitude(), arg0.getLongitude())).title("It's Me!"));
           }
          });

            }
        }
    }

在调用这个函数上创建功能



Answer 3:

我不喜欢他们的有限和缺陷的,因为新的谷歌地图API。 你的情况,我认为最好的办法就是使用的LocationManager和LocationListener的类。 你会得到的位置,当你的手机会找到卫星,那么你就可以在地图上添加标记。 您也可以使用getLastKnownLocation()如果你需要快速获得定位方法。 我认为,谷歌地图getMyLocation()方法返回null,因为手机没有太多的时间去了解它的位置,当应用程序启动。 而在谷歌地图API V2没有某种onLocationChanged()方法。 我不喜欢这个API。



Answer 4:

我已经做了这种方式:

private GoogleMap mGoogleMap;
private SupportMapFragment mMapFragment;

的onCreate():

mMapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map);
mGoogleMap = mMapFragment.getMap();

mGoogleMap.setOnMyLocationChangeListener(myLocationChangeListener);

现在添加MyLocationChangeListener:

private GoogleMap.OnMyLocationChangeListener myLocationChangeListener = new GoogleMap.OnMyLocationChangeListener() {
    @Override
    public void onMyLocationChange(Location location) {
      Log.i(TAG, "Latitude: "+String.valueOf(location.getLatitude())+" - Longitude: "+String.valueOf(location.getLongitude()));
   }
};

希望这会帮助你。



Answer 5:

map.getMyLocation() return null becouse有上没有位置onCreate();

第一次在地图获得位置是第一onCameraChange()事件之后。

所以使用

map.setOnCameraChangeListener( new ...)

在你的地图,做你的执行发生后的第一时间



文章来源: How do I get my current location in Google Maps API V2