Android-如何在地图中设置位置
Android-How to set location in map
我有这张地图,我想将位置设置为我在 Intent 中收到的纬度、经度 extras.How 我可以这样做吗?
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;
}
}
将此代码放入 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
调用后执行所有 map-related 功能,例如绘制多边形、添加标记、移动相机等,因此 googleMap
不会 null
。请记住,即使它每次都为您调用 - 在某些情况下,它可能不会在某些设备上触发,并且每次 googleMap.someMethod()
调用(例如在 onClick
下)都会抛出您 NullPointerException
。做好准备
我有这张地图,我想将位置设置为我在 Intent 中收到的纬度、经度 extras.How 我可以这样做吗?
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;
}
}
将此代码放入 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
调用后执行所有 map-related 功能,例如绘制多边形、添加标记、移动相机等,因此 googleMap
不会 null
。请记住,即使它每次都为您调用 - 在某些情况下,它可能不会在某些设备上触发,并且每次 googleMap.someMethod()
调用(例如在 onClick
下)都会抛出您 NullPointerException
。做好准备