Google地图Satellite View在5.0.1上显示,但未在6.0.1中显示

时间:2017-09-26 15:02:48

标签: android google-maps

在导航抽屉活动内部,我已经使用卫星视图和位置实现了Google地图。它与三星galaxy s-4(果冻豆5.0.1)配合使用,但是如果你在Marshmallow(6.0.1)上运行,它只是打开的地图(没有显示位置而没有显示卫星视图

以下是活动代码

public class NavigationDrawerPeaceNow extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
    private GoogleMap map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation_drawer_peace_now);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        //---------------Setting up map-----------//

        ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap googleMap) {
                map = googleMap;
                if (ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

                    return;
                }
                LatLng israel = new LatLng(31.0461, 34.8516);
                map.addMarker(new MarkerOptions().position(israel).title("israel"));
                map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                CameraPosition camPos = new CameraPosition.Builder().target(new LatLng(31.0461, 34.8516)).zoom(8).tilt(70).build();
                CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
                googleMap.animateCamera(camUpd3);
            }
        });

我尝试在谷歌搜索,但解决方案可用于" satelliteview"不适合这种情况。 我是android的新手

提前致谢

1 个答案:

答案 0 :(得分:0)

问题出在:

if (ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    return;
}

条件:如果未授予一个或两个权限,则执行return。尝试为您的应用授予(例如在“应用程序”菜单中)ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION权限,或将条件更改为:

if (ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(NavigationDrawerPeaceNow.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
    LatLng israel = new LatLng(31.0461, 34.8516);
    map.addMarker(new MarkerOptions().position(israel).title("israel"));
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
    CameraPosition camPos = new CameraPosition.Builder().target(new LatLng(31.0461, 34.8516)).zoom(8).tilt(70).build();
    CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
    googleMap.animateCamera(camUpd3);;
}

或者类似的东西,如果你想在获得一个许可的情况下继续。 (可能是三星galaxy s-4(果冻豆5.0.1)上的一切都很好,可能是因为您之前授予了权限并且没有卸载应用程序)。

相关问题