Google地图看起来像一张图片

时间:2017-08-07 15:36:10

标签: android google-maps

我的应用程序中有两个Google地图,我以相同的方式实现了它。一个是工作,一个不工作。后者看起来像一个图像,我无法与它互动。我可以添加标记并移动相机,但是当我点击标记时我无法显示信息窗口,我无法移动它,放大和缩小。它看起来像一个图像,一个预览。

以下是代码:

public class MapFragment extends Fragment implements OnMapReadyCallback{

    private GoogleMap mMap;
    private static Double latitude;
    private static Double longitude;
    private static String title;

    public static MapFragment newInstance(Double mLatitude, Double mLongitude, String mTitle) {
        latitude=mLatitude;
        longitude=mLongitude;
        title=mTitle;
        MapFragment fragment = new MapFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_map, container, false);
        SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager()
                .findFragmentById(R.id.map_details);
        mapFragment.getMapAsync(this);
        return view;
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        mMap.getUiSettings().setAllGesturesEnabled(true);
        mMap.getUiSettings().setMapToolbarEnabled(false);
        mMap.addMarker(new MarkerOptions()
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.location_icon))
                .position(new LatLng(latitude, longitude))
                .title(title));
        CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(latitude,longitude)).zoom(12f).build();
        CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);
        mMap.moveCamera(cameraUpdate);
    }

    public interface OnMapFragmentInteractionListener {
        void onMapFragmentInteraction(Uri uri);
    }

    @Override
    public void onResume() {
        super.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
    }
}

2 个答案:

答案 0 :(得分:1)

你应该看看XML。有liteMode,当它设置为true时,它完全符合您的描述。

<com.google.android.gms.maps.MapView
            android:id="@+id/row_map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            map:liteMode="true"
            map:mapType="none" />

此处查看documentation

答案 1 :(得分:0)

我只是猜测,但在你发布的代码中,我发现了一个错误。当您尝试使用MapFragment时,确保必须在该位置检查导入。正如我所说,我想在一个地方,它是从谷歌pacage和你的班级另一个导入。问题是你在这里发布的MapFragment不是google MapFragment,因为你从简单的Fragment中获取它。要确保将您自己的MapFragment重命名为CustomMapFragment并尝试从MapFragment中扩展,或者只使用它而不进行自定义。