谷歌地图开始显示我在非洲的当前位置,然后将相机移动到我当前的位置

时间:2017-02-01 12:03:55

标签: android geolocation google-maps-android-api-2

我知道之前已经问过这个问题,但我没有得到解决方案。我的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);

}

我的代码有问题吗?

3 个答案:

答案 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));

每当您打开应用程序时,代码会将您的应用程序的地图视图更改为您配置的位置,并在您的位置更改时执行其余操作。