Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FragmentMapsShop extends Fragment implements OnMapReadyCallback, GoogleMap.OnMyLocationClickListener, GoogleMap.OnMyLocationButtonClickListener {
- private GoogleMap map;
- MapView mapView;
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- return inflater.inflate(R.layout.fragment_shop_map, container, false);
- }
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- getActivity().setTitle("Карта");
- mapView = (MapView) view.findViewById(R.id.map);
- if (mapView != null) {
- mapView.onCreate(null);
- mapView.onResume();
- mapView.getMapAsync(this);
- }
- }
- @Override
- public void onMapReady(GoogleMap googleMap) {
- map = googleMap;
- map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
- if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
- map.setMyLocationEnabled(true);
- map.setOnMyLocationButtonClickListener(this);
- map.setOnMyLocationClickListener(this);
- UiSettings mapUiSetting = map.getUiSettings();
- mapUiSetting.setZoomControlsEnabled(true);
- mapUiSetting.setMyLocationEnabled(true);
- mapUiSetting.setMyLocationButtonEnabled(true);
- LatLng shop = new LatLng(55.805, 37.636);
- map.addMarker(new MarkerOptions().position(shop).title("Shop"));
- // map.moveCamera(CameraUpdateFactory.newLatLng(shop));
- CameraPosition liberty = CameraPosition.builder().target(shop).zoom(16).bearing(0).tilt(45).build();
- map.moveCamera(CameraUpdateFactory.newCameraPosition(liberty));
- }
- @Override
- public boolean onMyLocationButtonClick() {
- Toast.makeText(getContext(), "MyLocation button clicked", Toast.LENGTH_SHORT).show();
- return true;
- }
- @Override
- public void onMyLocationClick(@NonNull Location location) {
- Toast.makeText(getContext(), "Текущее положениеn" + location, Toast.LENGTH_LONG).show();
- }
- }
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
- <android.support.design.widget.FloatingActionButton
- android:id="@+id/myLocationButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom|right"
- android:layout_marginBottom="20dp"
- android:layout_marginRight="20dp"
- android:src="@android:drawable/ic_menu_mylocation"
- app:borderWidth="0dp"
- app:elevation="6dp"
- app:pressedTranslationZ="12dp"
- app:fabSize="normal" />
- private void userLocationFAB(){
- FloatingActionButton FAB = (FloatingActionButton) findViewById(R.id.myLocationButton);
- FAB.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(mapView.getMyLocation() != null) { // Check to ensure coordinates aren't null, probably a better way of doing this...
- mapView.setCenterCoordinate(new LatLngZoom(mapView.getMyLocation().getLatitude(), mapView.getMyLocation().getLongitude(), 20), true);
- }
- }
- });
- }
- .setMyLocationEnabled(true);
- mapUiSetting.setZoomControlsEnabled(true);
- mapUiSetting.setMyLocationEnabled(true);
- mapUiSetting.setMyLocationButtonEnabled(true);
Add Comment
Please, Sign In to add comment