我正在尝试将当前位置标记添加到Android Studio中的Android Google地图应用程序中。
我的代码:
private void setUpMap() {
Location location = null;
LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
Marker marker;
marker = mMap.addMarker(new MarkerOptions().position(new LatLng((location.getLatitude()), location.getLongitude())).title("Marker"));}
它导致我的应用程序崩溃。在下面运行我的应用程序时出现错误:
http://postimg.org/image/qrxdo9dl5/full/
(我使用postimage上传更大尺寸的屏幕截图)
在我修改代码之前,我将工作代码设置为位置0,0:
private void setUpMap() {
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
然后我尝试更改位置'0,0'以读取当前的纬度和经度并将其显示在我的Google地图上。我根据这篇文章更改了我的代码:How to get the current location in Google Maps Android API v2?
我是一名java初学者,非常感谢任何帮助。非常感谢您的帮助。
答案 0 :(得分:0)
您收到NullPointerException,因为您的Location对象设置为 null 。在链接的答案中,location对象来自位置回调。
public void onMyLocationChange(Location location) // location object here
您可以轻松地从地图参考中获取位置
Location location = mMap.getMyLocation();
但是,不推荐使用此方法,并鼓励使用位置API。要从API获取位置,您可以按照本指南进行操作:
https://developer.android.com/training/location/retrieve-current.html
您构建GoogleApiClient,连接它,然后使用它来获取位置。
Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);