Huawei Harita Servisi (Türkçe Kaynak)

Huawei Map Servisi Kullanımı

 

Nedir?

Huawei Map Servisi yazılımcılar için Huawei tarafından sağlanan bir harita servisidir. Tıpkı Google Maps, Yandex Map ya da Tomtom Map servisi gibi size bir dünya haritası ve bu harita üzerinde yapılabilecek pin ekleme, yol tarifi alma, rota çizme vb. gibi işlemleri sağlar.

 

Ücretli Midir?

Hayır. HMS (Huawei Mobile Services) şu an için tamamen ücretsizdir.

 

 

Nasıl Kullanılır?

 

Geliştirici Olarak Kayıt Olmak

Her şeyden önce Huawei mobil servislerini kullanabilmek için doğal olarak bir geliştirici hesabı açmak gerekiyor.

Kayıt Linki: https://id5.cloud.huawei.com/CAS/portal/userRegister/regbyemail.html?reqClientType=89&loginChannel=89000000&countryCode=tr

Geliştirici hesabı açarken sizden istenen bilgileri eksiksiz ve doğru şekilde girmeniz çok önemli. Sizden kimliğinizin ve bir banka hesabın ait kartınızın fotoğraflarını isteyecek. Bu servislerin doğru kişilere ulaşması için yani aslında biz geliştiricilere daha iyi hizmet verebilmek için alınan bir önlem. Fakat kimlik ve banka kartı üzerinde ki bütün bilgileri paylaşmanıza gerek yok. Size tarif edildiği gibi bazı kısımlarını basit bir görsel düzenleme programı ile kapatarak gönderebilirsiniz. Hesabınızın onaylanması bir kaç saat sürebildiği gibi bazı dönemlerde yoğunluk sebebiyle bir-iki günü de bulabilmektedir.

 

Uygulama Eklemek

Hesabınız onaylandıktan sonra Huawei Developer hesabına giriş yapıp sisteme uygulama eklemeniz gerekmektedir. Bu işlemleri hem deneme uygulamaları oluştururken hem de uygulamanızı AppGallery’de yayınlarken yapacaksınız. Bu aşamada uygulamanız hakkında paket adı, uygulama adı vb. gibi bazı bilgileri girmeniz gerekmektedir.

 

Servisleri Aktif Hale Getirmek

Developer konsola giriş yaptıktan sonra oluşturduğunuz uygulamanızı seçmeniz gerekiyor. Sonra karşınıza uygulamanızda kullanabileceğiniz servisleri yönetebileceğinzi, analitik bilgilerine ulaşabileceğiniz ekranlar göreceksiniz.

 

Harita Servisini aktif hale getirelim;

Develop sekmesine tıkladığınız zaman sol menüde en yukarıda bulunan Overview linkine tıklamanız ve yanda açılan kutucukta Manage APIs linkine tıklamanız gerekmektedir. Bu ekranda listenen servisleri aktif ya da pasif hale getirebilirsiniz.

 

Uygulamamızı Oluşturalım

Burada dikkat etmemiz gereken bir konu var; Minimum API Level değerini 19 olarak seçmelisiniz.

 

Uygulamamıza Gerekli Eklemeleri Yapalım

Projenin anadizininde bulunan build.gradle dosyasında bazı ayarları yapmamız gerekiyor. Bu ayarlar Huawei mobil servislerine ulaşmak için gerekiyor.

buildscript {

repositories {

google()

jcenter()

maven { url ‘http://developer.huawei.com/repo/’ }

}

dependencies {

classpath ‘com.huawei.agconnect:agcp:1.2.1.301’

}

}

allprojects {

repositories {

google()

jcenter()

maven {

url ‘http://developer.huawei.com/repo/’

}

}

}

 

Mobil servislere ulaşmak için gerekli işlemleri yaptığımıza göre artık harita için gereken işlemlere başlayabiliriz. Bunun için yapmamız gereken ilk işlem harita servisini app klasörü içerisinde bulunan build.gradle dosyasına eklemek.

dependencies {

implementation ‘com.huawei.hms:maps: 4.0.1.301’

}

 

Aynı dosya içerisinde en üste, apply plugin: ‘com.android.application’ satırından hemen sonra eklememiz gereken bir satır daha var;

apply plugin: ‘com.huawei.agconnect’

 

 

Uygulamamızın İçinde Gerekli İzinleri Tanımlayalım

Malumunuz ki eğer bir yerde bir harita varsa konum, lokasyon ve internet erişimi gibi izinlere ihtiyacımız var demektir. Eğer bu izinleri vermezsek internet olmadığı için harita yüklenemez, konum erişimi izni olmadığı içinde harita üzerinde konum ile ilgili işlemleri yapayız.

Dolayısıyla AndroidManifest.xml dosyası içerisine şu izinleri ekliyoruz;

 

<uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION”/>

<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION”/>

<uses-permission android:name=”android.permission.INTERNET”/>

<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>

 

 

Ekranımıza Harita Aracını Ekleyelim

Buraya kadar her şey tamamsa artık uygulamamızda ilgili ekrana harita aracını ekleyebiliriz. Bu kısımda da yapacağımız işlem çok basit ekranımızın xml dosyasını açıp aşağıdaki kodu ekliyoruz;

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android:layout_width=”match_parent”

android:layout_height=”match_parent”

android:orientation=”vertical”>

 

      <com.huawei.hms.maps.MapView xmlns:android=”http://schemas.android.com/apk/res/android”

             xmlns:map=”http://schemas.android.com/apk/res-auto”

             android:id=”@+id/mapView”

             android:layout_width=”match_parent”

             android:layout_height=”match_parent” />

</LinearLayout>

 

 

Kodlama aşamasına geçmeden harita aracı üzerinde bazı işlemler yapabilirsiniz. Örneğin harita yüklendikten sonra otomatik olarak bir konum başlangıcı vermek için;

             map:cameraTargetLat=”51″

             map:cameraTargetLng=”10″

 

Ya da harita görüntülenme tipini seçmek için;

             map:mapType=”normal”

 

Ya da varsayılan bir yakınlaşma değeri belirmek için;

             map:cameraZoom=”8.5″

 

Ve kullanıcı arayüzü kısmında mesela yakınlaştırma butonları gibi kontrolleri aktifleştirmek için;

             map:uiCompass=”true”

             map:uiZoomControls=”true”

 

komutlarını aracın içerisine ekleyebilirsiniz.

 

 

Harita Yönetimi İçin Kodlama

Şimdi haritamızı yönetebilmek için ilgili ekranın Java dosyasına giderek yapmamız gereken bir kaç işlem ile devam edelim. Öncelikle Activity’imize OnMapReadyCallback sınıfını dahil etmemiz gerekiyor. Böylece haritanın hazır olma durumunu tespit edebilir ve işlemlerimizi yapabiliriz.

 

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback

 

Bu işlemi yaptıktan sonra Java dosyamız içerisine eklememiz gereken bir Override methodumuz var. Onu da şu şekilde onCreate methodunun bittiği yerin altına ekleyebilirsiniz;

@Override

public void onMapReady(HuaweiMap map) {

Log.d(TAG, “onMapReady: “);

}

 

Şimdi gerekli değişkenleri oluşturup bu değişkenleri tanımlayarak devam edelim. Ekranın tasarım kısmında eklediğimiz harita aracını MapView sınıfından kalıtarak tanımlayalım. Daha sonra haritayı harita aracımızın içerisinde göstere bilmek için HuaweiMap sınıfından kalıtarak tanımlayalım. Bir tanede String sınıfından kalıtarak MAPVIEW_BUNDLE_KEY isimli bir değişken oluşturalım. Bu aşamada yazmanız gereken kodlar şu şekilde;

 

private HuaweiMap hMap;

private MapView mMapView;

private static final String MAPVIEW_BUNDLE_KEY = “MapViewBundleKey”;

 

Değişkenlerimizi oluşturduktan sonra sıra geldi bunları onCreate methodu içerisinde tanımlamaya;

 

mMapView = findViewById(R.id.mapView);

Bundle mapViewBundle = null;

if (savedInstanceState != null) {

mapViewBundle = savedInstanceState.getBundle(MAPVIEW_BUNDLE_KEY);

}

mMapView.onCreate(mapViewBundle);

mMapView.getMapAsync(this);

 

Buraya kadar her şey güzel. Şimdi en basit şekilde harita işlemlerini bitirmek için tek bir adımımız kaldı. Az önce oluşturduğumuz onMapReadyCallback sınıfının içerisine hazır olduğu zaman haritamızı eşitlemek;

@Override

public void onMapReady(HuaweiMap map) {

Log.d(TAG, “onMapReady: “);

hMap = map;

}

Ve işte bu kadar! En basit haliyle Huawei Map Kit’ini uygulamamıza entegre ettik ve kullanılabilir hale getirdik.

 

Dikkat Edilmesi Gereken Bazı Noktalar

  • Eğer uygulama içerisinde kullanıcıya konum iznini bir uyarı olarak gösterip izini onaylatmadıysanız uygulamanızda harita kullanıcının konumunu bulamayacaktır.
  • Huawei harita servisi şu anda sadece Uydu Görünümü sağlamaktadır. Arazi görünümü vb. gibi görünümler iş bu dokümanın yazıldığı tarih için (Nisan 2020) desteklenmemektedir.

 

 

Linkler

Huawei Map Kit: https://developer.huawei.com/consumer/en/hms/huawei-MapKit

Detaylı Doküman: https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-v4-abouttheservice

Codelab: https://developer.huawei.com/consumer/en/codelab/HMSMapKit/index.html#0

Bir cevap yazın