CodeBlanks Logo Icon CodeBlanks

Geocoding

Geocoding ve reverse geocoding öğrenirsin.

Geocoding

Geocoding, bir adresi coğrafi koordinatlara çevirir. expo-location paketi Location.geocodeAsync işlevini sunar. Bu işlev bir adres dizesi alır ve bir dizi konum nesnesi döndürür; her nesnenin latitude ve longitude alanları vardır.

Ters işlem reverse geocoding'dir: koordinatı adrese çevirir. Location.reverseGeocodeAsync({ latitude, longitude }) bir dizi adres nesnesi döndürür; city, street, country gibi alanlar taşır. Bu iki işlev birlikte harita uygulamalarında arama ve etiketleme yapar. Her ikisi de asenkron olduğundan await ile beklenir.

reverse geocoding

Ters işlem Location.reverseGeocodeAsync ile yapılır. İşlev bir nesne alır: { latitude, longitude }. Bir dizi adres nesnesi döndürür; ilk eleman genellikle en uygun adrestir. Her adres nesnesi city, street, region, country gibi alanlar taşır.

Örnek: const addresses = await Location.reverseGeocodeAsync({ latitude: 41.0082, longitude: 28.9784 }). addresses[0].city şehir adını verir. Bu kalıp, kullanıcının konumunu okunabilir bir adrese çevirir. Örneğin 'İstanbul' veya 'Kadıköy' gibi etiketler oluşturulur. Hata toleransı için dizi boş olabilir; bu yüzden ilk elemanı almadan önce uzunluk kontrolü yapılır.

Uygulama Adresten koordinat al

geocodeAddress işlevini tamamla. const results = await Location.geocodeAsync(address) çağır. return results[0] ile ilk sonuçu döndür.

Başlangıç kodu

App.js
import * as Location from 'expo-location';

export async function geocodeAddress(address) {
  // adresi koordinata çevir ve ilk sonuçu döndür
}

Örnek çözüm

App.js
const results = await Location.geocodeAsync(address);
return results[0];

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Geocoding işlevini yaz

Soru
const results = await Location.____('İstanbul');
Cevap
const results = await Location.geocodeAsync('İstanbul');

Açıklama: geocodeAsync adresi koordinata çevirir.

2 Hangi işlev koordinatı adrese çevirir?

App.js
const addresses = await Location.??({ latitude, longitude })
  • geocodeAsync
  • decodeAsync
  • addressAsync
  • reverseGeocodeAsync Doğru cevap

Açıklama: reverseGeocodeAsync koordinatı adrese çevirir.

3 İşlevi amacına eşle

Kavram Anlamı
geocodeAsync Adresten koordinata
reverseGeocodeAsync Koordinattan adrese
getCurrentPositionAsync Anlık konum
watchPositionAsync Sürekli izleme

İleri seviye bölümündeki tüm dersler