【发布时间】:2015-10-05 16:52:42
【问题描述】:
我想使用onInfoWindowClick 中用户的当前位置。我在onLocationChangend 中获得了职位,但是当我单击信息窗口时应用程序崩溃了,我不确定在onInfoWindowClick 中以正确的方式引用当前位置。
@Override
public void onMapReady (GoogleMap map) {
googleMap = map;
setUpMap();
}
private void setUpMap() {
/*....*/
googleMap.setInfoWindowAdapter(new UserInfoWindowAdapter(getLayoutInflater()));
googleMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
LatLng markerPosition = marker.getPosition();
Location myLocation;
myLocation.setLatitude(myposition.latitude);
myLocation.setLongitude(myposition.longitude);
Location markerLoc = new Location("marker");
markerLoc.setLatitude(markerPosition.latitude);
markerLoc.setLongitude(markerPosition.longitude);
float meters = myLocation.distanceTo(markerLoc);
if (meters < 200) {
/*...*/
} else {
/*...*/
}
}
});
}
@Override
public void onLocationChanged(Location location) {
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
myposition = new LatLng(location.getLatitude(), location.getLongitude());
CameraPosition cameraPosition = new CameraPosition.Builder().target(myposition).zoom(14).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
我得到的错误是:
Attempt to invoke virtual method 'void android.location.Location.setLatitude(double)' on a null object reference
【问题讨论】:
-
我的位置?尝试:myLocation = new Location(); ,然后为其设置经纬度
标签: android google-maps location google-maps-android-api-2