[]
Android Java Map Api Lokasyon Sorunu ?
Merhaba uygulamam açıldığında harita geliyor ben haritada telefonun konumu görülsün istiyorum fakat yapmadım.
Ben buttona tıklanınca konumu alabilen bir kod yazdım ama onu uygulama ilk açıldığında çalıştıramıyorum.
Ne yapmalıyım onMapReady methodunun içine el ile enlem boylam girildiğinde oluyor fakat telefonun konumunu onMapReady içine alamıyorum.
`public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
FusedLocationProviderClient fusedLocationProviderClient;
private static final int REQUEST_CODE = 101;
private int izinKontrol;
private Button btn;
private TextView textone,texttwo;
private String konumSaglayici = "gps";
private LocationManager locationManager;
private GoogleMap mMap;
private double d, e;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ff();
}
});
Log.e("ccc", "ccc");
textone = findViewById(R.id.r);
texttwo = findViewById(R.id.t);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
public void ff(){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(izinKontrol != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MapsActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},100);
}else{
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 100){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(getApplicationContext(), "Kayıt Başarılı", Toast.LENGTH_LONG).show();
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}else{
Toast.makeText(getApplicationContext(), "olumsuz", Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onLocationChanged(Location location) {
double enlem = location.getLatitude();
double boylam = location.getLongitude();
textone.setText("Boylam :"+enlem);
texttwo.setText("Enlem :"+boylam);
LatLng sydneya = new LatLng(enlem, boylam);
mMap.addMarker(new MarkerOptions().position(sydneya).title("QAROCOsss"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydneya));
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
mMap.animateCamera(CameraUpdateFactory.zoomTo(16.0f));
}
}
`
Ben buttona tıklanınca konumu alabilen bir kod yazdım ama onu uygulama ilk açıldığında çalıştıramıyorum.
Ne yapmalıyım onMapReady methodunun içine el ile enlem boylam girildiğinde oluyor fakat telefonun konumunu onMapReady içine alamıyorum.
`public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
FusedLocationProviderClient fusedLocationProviderClient;
private static final int REQUEST_CODE = 101;
private int izinKontrol;
private Button btn;
private TextView textone,texttwo;
private String konumSaglayici = "gps";
private LocationManager locationManager;
private GoogleMap mMap;
private double d, e;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ff();
}
});
Log.e("ccc", "ccc");
textone = findViewById(R.id.r);
texttwo = findViewById(R.id.t);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
public void ff(){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(izinKontrol != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MapsActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},100);
}else{
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 100){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(getApplicationContext(), "Kayıt Başarılı", Toast.LENGTH_LONG).show();
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}else{
Toast.makeText(getApplicationContext(), "olumsuz", Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onLocationChanged(Location location) {
double enlem = location.getLatitude();
double boylam = location.getLongitude();
textone.setText("Boylam :"+enlem);
texttwo.setText("Enlem :"+boylam);
LatLng sydneya = new LatLng(enlem, boylam);
mMap.addMarker(new MarkerOptions().position(sydneya).title("QAROCOsss"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydneya));
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
mMap.animateCamera(CameraUpdateFactory.zoomTo(16.0f));
}
}
`
Map kullaniyorsan, mevcut konumu LocationServices'ten almana gerek yok. hatta yapmamalisin. GoogleMap bunu senin yerine herhangi bir izin istemeden yapiyor zaten. GoogleMap'i ilk initialize ederken map.setMyLocationEnabled() methodunu kullanarak, mevcut konumunu haritada gosterebilirsin.
- crucio (02.01.20 13:38:20 ~ 13:39:09)
Merhaba efendim yapamadım nasıl yapacağımı anlatırmısın kısaca lütfen ?
onMapReady methodunun içine
mMap.setMyLocationEnabled(true);
şeklinde koydum.Fakat olmadı.
onMapReady methodunun içine
mMap.setMyLocationEnabled(true);
şeklinde koydum.Fakat olmadı.
- aristotelesin berberi (02.01.20 16:19:50)
1