Harita yapılandırma

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Platform seçin: Android iOS

Bu makalede, iOS için Haritalar SDK'sı kullanılarak iOS uygulamasına eklenmiş bir haritanın nasıl yapılandırılacağı açıklanmaktadır.

Genel bakış

Uygulamanıza bir harita ekledikten sonra haritanın ilk ve çalışma zamanı ayarlarını yapılandırabilirsiniz. Harita kapsayıcı ekleme hakkında ayrıntılı bilgi için Harita ekleme başlıklı makaleyi inceleyin.

İlk harita ayarları aşağıdakileri içerir:

Çalışma zamanında, GMSMapView nesnesini güncelleyerek bu ayarları ve bazı ek ayarları yapılandırabilirsiniz.

Harita türleri

Haritanızı, çeşitli harita türlerinden biriyle özelleştirebilirsiniz. Bir haritanın türü, haritanın tümünü temsil eder. Örneğin, bir atlas genellikle sınırları göstermeye odaklanan politik haritaları, bir şehrin veya bölgenin tüm yollarını gösteren yol haritalarını içerir. iOS için Haritalar SDK'sı aşağıdaki harita türlerini sunar:

Harita Türü
Normal
Değer: kGMSTypeNormal
Normal yol haritası. Yolları, insanların inşa ettiği bazı özellikleri ve nehirler gibi önemli doğal özellikleri gösterir. Yol ve özellik etiketleri de görülebilir.
Hibrit
Değer: kGMSTypeHybrid
Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik etiketleri de görülebilir.
Uydu
Değer: kGMSTypeSatellite
Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünmez.
Arazi
Değer: kGMSTypeTerrain
Topografik veriler. Harita; renkler, kontur çizgileri, etiketler ve perspektif gölgelendirmesi içerir. Bazı yollar ve etiketler de görünür durumdadır.
Yok
Değer: kGMSTypeNone
Harita kutusu yok. Temel harita desenleri oluşturulmaz. Bu mod, karo katmanları ile birlikte yararlıdır. Harita türü yok değerine ayarlandığında trafik verilerinin gösterilmesi devre dışı bırakılır.

Harita türünü değiştirme

Bir harita türünü ayarlamak için, GMSMapView.mapType özelliğine yeni bir değer atayın. Örneğin, bir uydu eşleme türünü görüntülemek için:

Swift

let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
mapView.mapType = .satellite
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.mapType = kGMSTypeSatellite;
      

Aşağıdaki seçici, aynı konum için arazi, normal ve karma haritaların karşılaştırmasını gösterir:

İç Mekan Haritaları

iOS için Haritalar SDK'sı yüksek yakınlaştırma düzeylerinde; havaalanları, alışveriş merkezleri, büyük mağazalar ve toplu taşıma istasyonları gibi iç mekanlar için inşaat planlarını gösterir. İç mekan kat planları "normal" harita türü (kGMSTypeNormal) için varsayılan harita karolarına entegre edilmiştir ve kullanıcı yakınlaştırdığında otomatik olarak etkinleştirilir ve harita uzaklaştırıldığında yavaş yavaş devre dışı kalır.

GMSMapView için indoorEnabled özelliğini NO olarak ayarlayarak iç mekan haritalarını devre dışı bırakabilirsiniz.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Alternatif olarak, yalnızca Kat Seçici kontrolünü devre dışı bırakabilirsiniz.

Kat planı ekleme

Kat planları belirli konumlarda kullanılabilir. Uygulamanızda öne çıkarmak istediğiniz bir binanın kat planı verileri yoksa şunları yapabilirsiniz:

  • Doğrudan Google Haritalar'a kat planları ekleyin. Bu sayede, planlarınız tüm Google Haritalar kullanıcılarına sunulur.
  • Bir kat planını Yer Paylaşımı olarak görüntüleyin. Bu sayede sadece uygulamanızın kullanıcıları kat planlarınızı görüntüleyebilir.

Trafik katmanı

Kullanıcılarınıza, üzerine trafik yoğunluğu bilgileri eklenerek haritayı görüntüleme imkanı sağlayabilirsiniz. Bu, yerel trafik durumlarının görsel bir özetini sağlar. Trafik katmanını etkinleştirmek için trafficEnabled yöntemini çağırabilirsiniz. Aşağıdaki örnekte, trafik katmanının bir haritada nasıl görünebileceği gösterilmektedir.

Trafik katmanını gösteren Google haritası

Erişilebilirlik

Varsayılan olarak, haritadaki erişilebilirlik öğeleri gizlenir. Erişilebilirlik özelliğini etkinleştirmek için GMSMapView öğesinin accessibilityElementsHidden özelliğini NO olarak ayarlayabilirsiniz. Bu, yer paylaşımlı nesneler (GMSMarker ve bilgi pencereleri, GMSPolyline vb.) için erişilebilirlik öğelerinin oluşturulmasına neden olur.

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

Bu mülk, resmi olmayan UIAccessibility protokolüne göre hazırlanmıştır. Ancak iOS için Haritalar SDK'sının varsayılan değeri YES olur.

Konumum

Varsayılan olarak, haritada konum verisi gösterilmez. Mavi "Konumum" noktasını ve pusula yönünü GMSMapView üzerindeki myLocationEnabled ile ayarlayabilirsiniz.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Bu özellik etkinleştirildiğinde myLocation özelliği aracılığıyla kullanıcının geçerli konumu da sağlanır. Bu özellik hemen kullanılamayabilir (örneğin, kullanıcıdan iOS'te bu verilere erişim izni vermesi isteniyorsa). Bu durumda hiç değer yok.

Swift

print("User's location: \(String(describing: mapView.myLocation))")
      

Objective-C

NSLog(@"User's location: %@", mapView.myLocation);
      

3D binaları

Yakından görüntülendiğinde, birçok şehir aşağıdaki 3D binaları görülebilecektir. Aşağıdaki Seattle, Washington görüntüsünde görülebilir.

Seattle, Washington'da binaların 3D haritası.

Swift veya Objective-C'de ilgili GMSMapView mülkünü aşağıda gösterildiği gibi ayarlayarak 3D binaları devre dışı bırakabilirsiniz:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

Harita dolgusu

Google Haritası, GMSMapView tarafından tanımlanan tüm bölgeyi dolduracak şekilde tasarlanmıştır. Haritanın görünümü ve davranışıyla ilgili çeşitli özellikler görünümün boyutlarına göre tanımlanır:

  • Kameranın hedefi, dolgulu bölgenin merkezini yansıtacak.
  • Harita denetimleri, haritanın kenarlarına göre konumlandırılır.
  • Telif hakkı beyanları veya Google logosu gibi yasal bilgiler, haritanın alt kenarında görünür.

GMSMapView kullanarak haritanın kenarlarına dolgu ekleyebilirsiniz.padding mülkü. Harita, tüm kapsayıcıyı doldurmaya devam eder ancak metin ve kontrol konumlandırması, harita hareketleri ve kamera hareketleri daha dar bir alana yerleştirilmiş gibi davranır. Bu durum aşağıdaki değişikliklere neden olur:

  • API çağrıları veya düğme basışları (ör. pusula, konumum) üzerinden yapılan kamera hareketleri, dolgulu bölgeye göre yapılır.
  • GMSMapView.projection, yalnızca doldurulmuş alanı içeren bir projeksiyon döndürür.
  • Kullanıcı arayüzü kontrolleri, kapsayıcının kenarından belirtilen sayıda nokta kadar uzanacak.

Dolgu, haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, aşağıdaki resimde harita, üst ve sağ kenarlar boyunca doldurulmuştur. Görünür harita kontrolleri ve yasal metin, dolgulu bölgenin kenarları boyunca yeşil renkte gösterilir. Harita ise maviyle gösterilen tüm kapsayıcıyı doldurmaya devam eder. Bu örnekte, harita denetimlerini gizlemeden menünün sağ tarafında bir menü görüntüleyebilirsiniz.

Harita Dolgusu

Haritanıza dolgu eklemek için bir UIEdgeInsets nesnesi oluşturun ve bunu GMSMapView öğesine iletin.padding mülkü.

Swift

// Insets are specified in this order: top, left, bottom, right
let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
mapView.padding = mapInsets
      

Objective-C

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;