提问者:小点点

Android-如何在地图中设置位置


我有这张地图,我想把位置设置到我在意向性附加信息中收到的lat,lon.我怎么做呢?

public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {
    private SupportMapFragment mMapFragment;
    private GoogleMap mGoogleMap;
    private String lat;
    private String lon;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);
        lat=getIntent().getStringExtra("lat");
        lon=getIntent().getStringExtra("lon");
        mMapFragment=(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mMapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mGoogleMap=googleMap;


    }
}

共1个答案

匿名用户

将此代码放在OnMapReady

double lat = location.getLatitude();
double lng= location.getLongitude();
// set up marker and add
googleMap.addMarker(new MarkerOptions().position(new LatLng(lat , lng))
            .title("Location").icon(BitmapDescriptorFactory
                    .defaultMarker(BitmapDescriptorFactory.HUE_RED)));
// move camera to it
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 8));

总是在onmapready调用之后完成所有与地图相关的功能,比如绘制多边形,添加标记,移动相机等,这样当googlemap时就不会是null。并且请记住,即使它每次都为您调用--在某些循环中,它可能不会在某些设备上被激发,并且每个googlemap.someMethod()调用(例如,在onclick)都将抛出NullPointerException。对此做好准备