我知道之前已经问过这个问题,但我没有得到解决方案。我的Android应用程序开始显示我在非洲的位置,然后相机移动到我当前的位置。任何人都可以帮助理解这种行为,并为我提供一些解决方案来解决这个问题。
下面的是我的代码的一部分
//ON CONNECTION SUCCESSFUL USING GOOGLECLIENTAPI
@Override
public void onConnected(Bundle bundle) {
checkPermission();
Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
if (location != null) {
pointUserCurrentLocationOnMap(location);
userLocation = location;
saveLocationIfDoesNotExistInSqliteAndBackend();
} else {
checkSettingIsProper();
}
}
public void pointUserCurrentLocationOnMap(Location lastknownLocation) {
mMap.clear();
enableUserLocationButton(true);
userLocation = lastknownLocation;
currentLocation = new LatLng(lastknownLocation.getLatitude(), lastknownLocation.getLongitude());
MarkerOptions markerOptions = new MarkerOptions().position(currentLocation).title("You");
Marker marker = mMap.addMarker(markerOptions);
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_person_pin_circle_black_24dp));
marker.showInfoWindow();
//bounds= latlngbound which is initialize when user search some thing
if (bounds != null) {
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, (int) JobSmithApplication.convertPixelsToDp(50f, this)));
} else {
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLocation, 14f));
}
mMap.setOnMarkerClickListener(this);
mMap.setOnMyLocationButtonClickListener(this);
}
我的代码有问题吗?
答案 0 :(得分:1)
当应用程序首先加载..打开lat lon 0,0这是我们赤道的中心点。然后触发了更改...你的新lat长位置得到更新...所以相机移动到你的当前位置..希望这有帮助
答案 1 :(得分:0)
检查你的lastKnownLocation在logcat中的纬度和经度,看看你得到了什么
答案 2 :(得分:0)
在配置中或全局设置应用程序特定位置。初始化Google地图时,请将视图设置为指定位置。
GoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Configuration.DEFAULT_LAT, Configuration.DEFAULT_LONG), 14.0f));
每当您打开应用程序时,代码会将您的应用程序的地图视图更改为您配置的位置,并在您的位置更改时执行其余操作。