Hızlı Başlangıç: Azure Haritalar ile Android uygulaması oluşturma

Bu makalede, bir Android uygulamasına Azure Haritalar nasıl ekleneceği gösterilmektedir. Aşağıdaki temel adımlarda size yol gösterilir:

  • Geliştirme ortamınızı ayarlayın.
  • Kendi Azure Haritalar hesabınızı oluşturun.
  • Uygulamada kullanmak üzere birincil Azure Haritalar anahtarınızı alın.
  • Projeden Azure Haritalar kitaplıklarına başvurun.
  • Uygulamaya bir Azure Haritalar denetimi ekleyin.

Not

Android SDK'sı kullanımdan kaldırılmasını Azure Haritalar

Android için Azure Haritalar Yerel SDK artık kullanım dışıdır ve 31/3/25 tarihinde kullanımdan kaldırılacaktır. Hizmet kesintilerini önlemek için 31.03.25'e kadar Azure Haritalar Web SDK'sına geçin. Daha fazla bilgi için bkz. Android SDK geçiş kılavuzu Azure Haritalar.

Önkoşullar

  1. Microsoft Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

  2. Android Studio. Android Studio'nuz yoksa Google'dan ücretsiz olarak edinebilirsiniz.

Not

Bu hızlı başlangıçtaki yönergelerin çoğu Android Studio Arctic Fox (2020.3.1) kullanılarak oluşturulmuştur. Android Studio'nun farklı bir sürümünü kullanıyorsanız, Android Studio'ya özgü adımlar farklılık gösterebilir.

Azure Haritalar hesabı oluşturma

Aşağıdaki adımları kullanarak yeni bir Azure Haritalar hesabı oluşturun:

  1. Azure portalının sol üst köşesinde Kaynak oluştur'u seçin.

  2. Markette Ara kutusuna Azure Haritalar yazın ve arama sonuçlarından Azure Haritalar seçin.

  3. Oluştur düğmesini seçin.

  4. Haritalar Hesabı Oluştur sayfasında aşağıdaki değerleri girin:

    • Bu hesap için kullanmak istediğiniz Abonelik.
    • Bu hesap için Kaynak grubu adı. Kaynak grubu için Yeni oluştur veya Mevcut olanı kullan seçeneğini belirleyebilirsiniz.
    • Yeni hesabınıza verilen Ad.
    • Bu hesabın Fiyatlandırma katmanı . 2. Nesil'i seçin.
    • Koşulları okuyun ve Lisans ve Gizlilik Bildirimi'ni okuduğunuzdan ve kabul ettiğinizi onaylamak için onay kutusunu işaretleyin.
    • Gözden geçir + oluştur düğmesini seçin.
    • Gözden Geçir ve oluştur sayfasında her şeyin doğru olduğundan emin olduktan sonra Oluştur düğmesini seçin.

    Azure portalında Haritalar hesabı oluştur bölmesini gösteren ekran görüntüsü.

Hesabınızın abonelik anahtarını alma

Azure Haritalar hesabınız başarıyla oluşturulduktan sonra, Haritalar API'lerini sorgulamanızı sağlayan abonelik anahtarını alın.

  1. portalda Azure Haritalar hesabınızı açın.
  2. Sol bölmede Kimlik Doğrulaması'nı seçin.
  3. Birincil Anahtarı kopyalayın ve bu öğreticinin devamında kullanmak üzere yerel olarak kaydedin.

Not

Güvenlik amacıyla, birincil ve ikincil anahtarlarınız arasında döndürmeniz önerilir. Anahtarları döndürmek için uygulamanızı ikincil anahtarı kullanacak şekilde güncelleştirin, dağıtın ve ardından birincil anahtarın yanındaki döngü/yenileme düğmesine basarak yeni bir birincil anahtar oluşturun. Eski birincil anahtar devre dışı bırakılır. Anahtar döndürme hakkında daha fazla bilgi için bkz . Azure Key Vault'un anahtar döndürme ve denetim ile ayarlanması.

Azure portalında Azure Haritalar abonelik anahtarınızı gösteren ekran görüntüsü.

Android Studio'da proje oluşturma

Android Studio'da boş bir etkinlikle yeni bir proje oluşturmak için aşağıdaki adımları tamamlayın:

  1. Android Studio'yu başlatın ve Dosya menüsünden Yeni'yi ve ardından Yeni Proje... öğesini seçin.

  2. Yeni Proje ekranında, ekranın sol tarafındaki Şablonlar listesinden Telefon ve Tablet'i seçin.

    Android Studio'da Yeni Proje ekranını gösteren ekran görüntüsü.

  3. Şablon listesinden Boş Etkinlik'i ve ardından İleri'yi seçin.

    Android Studio'da Boş Etkinlik Oluştur ekranını gösteren ekran görüntüsü.

  4. Boş Etkinlik ekranında, aşağıdaki alanların değerlerini girin:

    • Adı. Azure Haritalar App girin.
    • Paket adı. Varsayılan com.example.azuremapsapp kullanın.
    • Konumu kaydet'i seçin. Proje dosyalarınızı kaydetmek için varsayılan konumu kullanın veya yeni bir konum seçin. NDK araçlarıyla ilgili olası sorunlar nedeniyle yol veya dosya adında boşluk kullanmaktan kaçının.
    • Dil. Kotlin veya Java'ya tıklayın.
    • En düşük SDK. En düşük SDK olarak seçin API 21: Android 5.0.0 (Lollipop) . Azure Haritalar Android SDK tarafından desteklenen en eski sürümdür.
  5. Yeni projenizi oluşturmak için Son'u seçin.

Android Studio'yu yükleme ve yeni proje oluşturma konusunda daha fazla yardım için Android Studio belgelerine bakın.

Sanal cihaz ayarlama

Android Studio, bilgisayarınızda sanal bir Android cihazı ayarlamanıza olanak tanır. Bunu yapmak, geliştirme sırasında uygulamanızı test etmenize yardımcı olabilir.

Android Sanal Cihazı (AVD) ayarlamak için:

  1. Araçlar menüsünde AVD Yöneticisi'ni seçin.
  2. Android Sanal Aygıt Yöneticisi görüntülenir. Sanal Cihaz Oluştur'u seçin.
  3. Telefon kategorisinde Nexus 5X'i ve ardından İleri'yi seçin.

AVD ayarlama hakkında daha fazla bilgi için Android Studio belgelerindeki Sanal cihaz oluşturma ve yönetme makalesine bakın.

Yeni bir Sanal Cihaz oluştururken Android Sanal Aygıt Yöneticisi Donanım Seç ekranını gösteren ekran görüntüsü.

Azure Haritalar Android SDK'sını yükleme

Uygulamanızı oluşturmanın bir sonraki adımı, Azure Haritalar Android SDK'sını yüklemektir. SDK'yı yüklemek için şu adımları tamamlayın:

  1. Settings.gradle proje ayarları dosyasını açın ve depolar bölümüne aşağıdaki kodu ekleyin:

    maven {url "https://atlas.microsoft.com/sdk/android"}
    
  2. Aynı proje ayarları dosya settings.gradle içinde, depolarıMode PREFER_SETTINGSolarak değiştirin:

    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    

    Proje ayarları dosyanız artık aşağıdaki gibi görünmelidir:

    Android Studio'daki proje ayarları dosyasının ekran görüntüsü.

  3. Projenin gradle.properties dosyasını açın, ve android.enableJetifier her ikisinin de olarak trueayarlandığını android.useAndroidX doğrulayın.

    gradle.properties dosyası ve android.enableJetifieriçermiyorsaandroid.useAndroidX, dosyanın sonuna sonraki iki satırı ekleyin:

    android.useAndroidX=true
    android.enableJetifier=true
    
  4. application build.gradle dosyasını açın ve aşağıdakileri yapın:

    1. Projenizin minSdk dosyasının 21 veya daha yüksek olduğunu doğrulayın.

    2. bölümünde aşağıdaki compileOptionsAndroid gibi olduğundan emin olun:

      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
      }
      
    3. Bağımlılıklar bloğunuzu güncelleştirin ve en son Azure Haritalar Android SDK'sı için yeni bir uygulama bağımlılığı ekleyin:

      implementation 'com.azure.android:azure-maps-control:1.+'
      
    4. Dosya menüsünden Projeyi Gradle Dosyalarıyla Eşitle'yi seçin.

    Android Studio'da uygulama derleme noktalı gradle dosyasını gösteren ekran görüntüsü.

  5. Ana etkinliğe bir harita parçası ekleyin:

    <com.azure.android.maps.control.MapControl
        android:id="@+id/mapcontrol"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
    

    Ana etkinliği güncelleştirmek için Proje gezgininde uygulama > res > düzeni >activity_main.xml seçin:

    Android Studio'daki Proje gezgini bölmesindeki activity_main.xml dosyasını gösteren ekran görüntüsü.

  1. MainActivity.java dosyasında:

    • Azure Haritalar SDK'sı için içeri aktarmalar ekleyin.
    • Azure Haritalar kimlik doğrulama bilgilerinizi ayarlayın.
    • onCreate yönteminde harita denetimi örneğini alın.

    İpucu

    veya setAadProperties yöntemlerini kullanarak setSubscriptionKey sınıftaki kimlik doğrulama bilgilerini genel olarak AzureMaps ayarlayarak, kimlik doğrulama bilgilerinizi her görünüme eklemeniz gerekmez.

    Harita denetimi, Android'in OpenGL yaşam döngüsünü yönetmek için kendi yaşam döngüsü yöntemlerini içerir. Bu yaşam döngüsü yöntemleri doğrudan içeren Etkinlik'ten çağrılmalıdır. Harita denetiminin yaşam döngüsü yöntemlerini doğru şekilde çağırmak için, eşleme denetimini içeren Etkinlik'te aşağıdaki yaşam döngüsü yöntemlerini geçersiz kılın ve ilgili harita denetimi yöntemini çağırın.

    • onCreate(Bundle)
    • onDestroy()
    • onLowMemory()
    • onPause()
    • onResume()
    • onSaveInstanceState(Bundle)
    • onStart()
    • onStop()

    MainActivity.java dosyasını aşağıdaki gibi düzenleyin:

    package com.example.azuremapsapp;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import com.azure.android.maps.control.AzureMaps;
    import com.azure.android.maps.control.MapControl;
    import com.azure.android.maps.control.layer.SymbolLayer;
    import com.azure.android.maps.control.options.MapStyle;
    import com.azure.android.maps.control.source.DataSource;
    
    public class MainActivity extends AppCompatActivity {
    
    static {
        AzureMaps.setSubscriptionKey("<Your-Azure-Maps-Primary-Subscription-Key>");
    
        //Alternatively use Azure Active Directory authenticate.
        //AzureMaps.setAadProperties("<Your-AAD-clientId>", "<Your-AAD-appId>", "<Your-AAD-tenant>");
    }
    
    MapControl mapControl;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mapControl = findViewById(R.id.mapcontrol);
    
        mapControl.onCreate(savedInstanceState);
    
        //Wait until the map resources are ready.
        mapControl.onReady(map -> {
    
            //Add your post map load code here.
    
        });
    }
    
    @Override
    public void onResume() {
        super.onResume();
        mapControl.onResume();
    }
    
    @Override
    protected void onStart(){
        super.onStart();
        mapControl.onStart();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        mapControl.onPause();
    }
    
    @Override
    public void onStop() {
        super.onStop();
        mapControl.onStop();
    }
    
    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapControl.onLowMemory();
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapControl.onDestroy();
    }
    
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapControl.onSaveInstanceState(outState);
    }}
    
  1. MainActivity.kt dosyasında:

    • Azure Haritalar SDK'sı için içeri aktarma ekleme
    • Azure Haritalar kimlik doğrulama bilgilerinizi ayarlama
    • onCreate yönteminde harita denetimi örneğini alma

    İpucu

    veya setAadProperties yöntemlerini kullanarak setSubscriptionKey sınıftaki kimlik doğrulama bilgilerini genel olarak AzureMaps ayarlayarak, kimlik doğrulama bilgilerinizi her görünüme eklemeniz gerekmez.

    Harita denetimi, Android'in OpenGL yaşam döngüsünü yönetmek için kendi yaşam döngüsü yöntemlerini içerir. Bu yaşam döngüsü yöntemleri doğrudan içeren Etkinlik'ten çağrılmalıdır. Harita denetiminin yaşam döngüsü yöntemlerini doğru şekilde çağırmak için, eşleme denetimini içeren Etkinlik'te aşağıdaki yaşam döngüsü yöntemlerini geçersiz kılın. Ayrıca, ilgili harita denetimi yöntemini çağırmanız gerekir.

    • onCreate(Bundle)
    • onDestroy()
    • onLowMemory()
    • onPause()
    • onResume()
    • onSaveInstanceState(Bundle)
    • onStart()
    • onStop()

    MainActivity.kt dosyasını aşağıdaki gibi düzenleyin:

    package com.example.azuremapsapp;
    
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import com.azure.android.maps.control.AzureMap
    import com.azure.android.maps.control.AzureMaps
    import com.azure.android.maps.control.MapControl
    import com.azure.android.maps.control.events.OnReady
    
    class MainActivity : AppCompatActivity() {
    
        companion object {
            init {
                AzureMaps.setSubscriptionKey("<Your-Azure-Maps-Primary-Subscription-Key>");
    
                //Alternatively use Azure Active Directory authenticate.
                //AzureMaps.setAadProperties("<Your-AAD-clientId>", "<Your-AAD-appId>", "<Your-AAD-tenant>");
            }
        }
    
        var mapControl: MapControl? = null
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            mapControl = findViewById(R.id.mapcontrol)
    
            mapControl?.onCreate(savedInstanceState)
    
            //Wait until the map resources are ready.
            mapControl?.onReady(OnReady { map: AzureMap -> })
        }
    
        public override fun onStart() {
            super.onStart()
            mapControl?.onStart()
        }
    
        public override fun onResume() {
            super.onResume()
            mapControl?.onResume()
        }
    
        public override fun onPause() {
            mapControl?.onPause()
            super.onPause()
        }
    
        public override fun onStop() {
            mapControl?.onStop()
            super.onStop()
        }
    
        override fun onLowMemory() {
            mapControl?.onLowMemory()
            super.onLowMemory()
        }
    
        override fun onDestroy() {
            mapControl?.onDestroy()
            super.onDestroy()
        }
    
        override fun onSaveInstanceState(outState: Bundle) {
            super.onSaveInstanceState(outState)
            mapControl?.onSaveInstanceState(outState)
        }
    }
    
  1. Uygulamanızı derlemek için aşağıdaki görüntüde gösterildiği gibi araç çubuğundan çalıştır düğmesini seçin (veya Mac'e basın Control + R ).

    Android Studio'da çalıştır düğmesini gösteren ekran görüntüsü.

Android Studio'yu oluşturmak birkaç saniye sürer. Derleme tamamlandıktan sonra, öykünmüş Android cihazında uygulamanızı test edebilirsiniz. Şuna benzer bir harita görmeniz gerekir:

Android uygulamasında Azure Haritalar gösteren ekran görüntüsü.

İpucu

Varsayılan olarak, yönlendirme değiştiğinde veya klavye gizlendiğinde Android etkinliği yeniden yükler. Bu, eşleme durumunun sıfırlanmasıyla sonuçlanır (görünümü sıfırlayan ve verileri ilk duruma yeniden yükleyen haritayı yeniden yükleyin). Bunun olmasını önlemek için mainfest'e aşağıdakileri ekleyin: android:configChanges="orientation|keyboardHidden". Bu, etkinliğin yeniden yüklenmesini durdurur ve bunun yerine yönlendirme değiştiğinde veya klavye gizlendiğinde çağrır onConfigurationChanged() .

Kaynakları temizleme

Uyarı

Sonraki Adımlar bölümünde listelenen öğreticilerde hesabınızla Azure Haritalar kullanma ve yapılandırma işlemleri ayrıntılı olarak anlatılır. Öğreticilere devam etmek istiyorsanız bu hızlı başlangıçta oluşturulan kaynakları temizlemeyin.

Öğreticilere devam etmek istemiyorsanız, kaynakları temizlemek için şu adımları izleyin:

  1. Android Studio'yu kapatın ve oluşturduğunuz uygulamayı silin.
  2. Uygulamayı bir dış cihazda test ettiyseniz, uygulamayı bu cihazdan kaldırın.

Azure Haritalar Android SDK ile geliştirmeye devam etmek istemiyorsanız:

  1. Azure portalı sayfasına gidin. Ana portal sayfasından Tüm kaynaklar'ı seçin.
  2. Azure Haritalar hesabınızı seçin. Sayfanın üst kısmından Sil’i seçin.
  3. İsteğe bağlı olarak, Android uygulamaları geliştirmeye devam etmek istemiyorsanız Android Studio'yu kaldırın.

Daha fazla kod örneği için şu kılavuzlara bakın:

Sonraki adımlar

Bu hızlı başlangıçta, Azure Haritalar hesabınızı oluşturdunuz ve bir tanıtım uygulaması oluşturdunuz. Azure Haritalar hakkında daha fazla bilgi edinmek için aşağıdaki öğreticiye göz atın: