Android-如何在地图上设置位置 [英] Android-How to set location in map
问题描述
我有这张地图,我想将位置设置为在Intent Extras中收到的lat lon.我该怎么办?
I have this map and I want to set the location to the lat , lon that I receive in the Intent extras.How can I do it?
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
调用后执行所有与地图相关的功能,例如绘制多边形,添加标记,移动相机等,因此googleMap
不会是null
.请记住,即使每次都为您调用它-在某些情况下,它也可能不会在某些设备上触发,并且每个googleMap.someMethod()
调用(例如,在onClick
下)都将抛出您NullPointerException
.为此做好准备
always do all map-related features like drawing polygons, adding markers, moving camera etc. after onMapReady
call, so when googleMap
won't be null
. And remember that even if it gets called every time for you - in some circulumstances it may not get fired on some device and every googleMap.someMethod()
call (e.g. under onClick
) will throw you NullPointerException
. be prepared for that
这篇关于Android-如何在地图上设置位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!