diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-11 17:35:18 +0100 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-11 17:35:18 +0100 |
commit | e21758eb8c5b0aa42a09186d0971f1da1b048edd (patch) | |
tree | de82b04f626867661a7153a324baacf19f3ef341 | |
parent | a7f8b44a4a45c30c4d966ea10f411543b314f798 (diff) |
Dodata myLocation na mapi i map scalebar,compass, i provera permisija.
-rw-r--r-- | Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt index c71e6d6..1c5b36e 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt @@ -1,17 +1,28 @@ package com.example.brzodolokacije.Fragments +import android.Manifest import android.content.Context +import android.content.pm.PackageManager +import android.location.Geocoder import android.os.Bundle import android.preference.PreferenceManager +import android.util.DisplayMetrics +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.example.brzodolokacije.R import org.osmdroid.config.Configuration import org.osmdroid.tileprovider.tilesource.TileSourceFactory import org.osmdroid.util.GeoPoint import org.osmdroid.views.MapView +import org.osmdroid.views.overlay.ScaleBarOverlay +import org.osmdroid.views.overlay.compass.CompassOverlay +import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider import org.osmdroid.views.overlay.gestures.RotationGestureOverlay import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay @@ -21,6 +32,9 @@ class FragmentBrowse : Fragment(R.layout.fragment_browse) { var map: MapView? = null var mLocationOverlay:MyLocationNewOverlay?=null + var mRotationGestureOverlay:RotationGestureOverlay?=null + var mScaleBarOverlay: ScaleBarOverlay?=null + var mCompassOverlay:CompassOverlay?=null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -54,9 +68,50 @@ class FragmentBrowse : Fragment(R.layout.fragment_browse) { map!!.setMultiTouchControls(true); val mapController = map!!.controller mapController.setZoom(15) - val startPoint = GeoPoint(44.0073, 20.9227) + + + //my location + //checkLocPerm() + mLocationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(context), map) + mLocationOverlay!!.enableMyLocation() + map!!.getOverlays().add(this.mLocationOverlay) + //var res=Geocoder(requireContext()).getFromLocationName("Paris",1) + //Log.d("Main",res.toString()) + //start point + val startPoint = GeoPoint(44.0107,20.9181)//dodati nasu lokaciju TODO mapController.setCenter(startPoint) - + + //rotation gestures + mRotationGestureOverlay = RotationGestureOverlay(context, map) + mRotationGestureOverlay!!.setEnabled(true) + map!!.setMultiTouchControls(true) + map!!.getOverlays().add(this.mRotationGestureOverlay) + //Map scale bar + val dm:DisplayMetrics=requireContext().resources.displayMetrics + mScaleBarOverlay = ScaleBarOverlay(map); + mScaleBarOverlay!!.setCentred(true); + mScaleBarOverlay!!.setScaleBarOffset(dm.widthPixels / 2, 10); + map!!.getOverlays().add(this.mScaleBarOverlay); + + //Compass + this.mCompassOverlay = + CompassOverlay(context, InternalCompassOrientationProvider(context), map) + mCompassOverlay!!.enableCompass() + map!!.getOverlays().add(this.mCompassOverlay) + } + fun checkLocPerm(){ + if (ContextCompat.checkSelfPermission( + requireContext(), + Manifest.permission.ACCESS_FINE_LOCATION + ) + != PackageManager.PERMISSION_GRANTED + ) { + ActivityCompat.requestPermissions( + requireActivity(), + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), + 101 + ) + } } |