【问题标题】:Android-How to set location in mapAndroid-如何在地图中设置位置
【发布时间】:2020-09-07 14:52:55
【问题描述】:

我有这张地图,我想将位置设置为我在 Intent extras 中收到的 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;


    }
}

【问题讨论】:

    标签: android google-maps android-activity


    【解决方案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。做好准备

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 2016-01-16
      • 2016-03-13
      • 2014-10-23
      • 1970-01-01
      相关资源
      最近更新 更多