我怎么能得到我的位置? [机器人]

时间:2016-05-03 17:27:12

标签: android google-maps geolocation android-mapview

我找到了这段代码

    private void centerMapOnMyLocation() {

    map.setMyLocationEnabled(true);

    location = map.getMyLocation();

    if (location != null) {
        myLocation = new LatLng(location.getLatitude(),
                location.getLongitude());
    }
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(myLocation,
            Constants.MAP_ZOOM));
}

但getMyLocation()已被删除。 我如何确定我的位置并首先在我的地图上显示。

我的代码现在是:

public class FragmentMap extends Fragment implements OnMapReadyCallback {

    MapView mapView;
    GoogleMap map;
    TextView t1, t2;
    private Marker marker;

    public FragmentMap() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_map, container, false);
        t1 = (TextView) v.findViewById(R.id.textView);
        t2 = (TextView) v.findViewById(R.id.textView2);
        mapView = (MapView) v.findViewById(R.id.mapview);
        mapView.onCreate(savedInstanceState);
        mapView.getMapAsync(this); 

        return v;
    }


    @Override
    public void onMapReady(GoogleMap googleMap) {
        map = googleMap;
        map.getUiSettings().setZoomControlsEnabled(true);
        map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        map.setMyLocationEnabled(true);
        map.setOnMyLocationButtonClickListener(myLocationButtonClickListener);

    }



    private GoogleMap.OnMyLocationButtonClickListener myLocationButtonClickListener = new GoogleMap.OnMyLocationButtonClickListener() {
        @Override
        public boolean onMyLocationButtonClick() {
            Location location = map.getMyLocation();
            LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
            t1.setText(valueOf(location.getLatitude()));
            t2.setText(valueOf(location.getLongitude()));
            marker = map.addMarker(new MarkerOptions().position(loc));
            if(map != null){
                map.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 16.0f));
            }
            return false;
        }
    };

我读过developers.android.com但没有找到答案。 我只需要在地图上显示我当前的位置。 Noghing更多

2 个答案:

答案 0 :(得分:0)

以下行将为您提供当前的lat和lng。

        double current_lat = mLastLocation.getLatitude();
        double current_longi = mLastLocation.getLongitude();


     it worked for me to get current location.Please follow this link for more details.

https://github.com/abhishekujjain/BasicMapsDemo

答案 1 :(得分:0)

这个tutorial可以帮助您在android中学习基于位置的服务。您可以选择两种类型的位置提供商,即GPS和NETWORK位置提供商。

以下是在Android中获取位置的步骤:

  1. 在清单文件中提供用于接收位置更新的权限

  2. 创建LocationManager实例作为对位置服务的引用

  3. LocationManager

  4. 请求位置
  5. LocationListener获取有关位置更改的位置更新

  6. 有关更多信息和示例代码,请按照tutorial上的步骤进行操作。

    另请查看此SO question,我认为它可以为您提供帮助。