Harita yapılandırma

Platform seçin: Android iOS

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

Genel bakış

Uygulamanıza harita ekledikten sonra, haritanın ilk seçeneklerini ve çalışma zamanı ayarlarını yapılandırabilirsiniz. Harita kapsayıcısı eklemeyle ilgili ayrıntılar için Harita ekleme başlıklı makaleyi inceleyin.

İlk harita ayarları şunları içerir:

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

Harita seçenekleri

Harita görünümünü ilk kullanıma hazırlarken, yapılandırma seçenekleri GMSMapViewOptions ile ayarlanır. Seçenek özellikleri arasında frame, camera, mapID veya backgroundColor bulunur.

Harita Seçenekleri
çerçeve
Değer: CGRect
Harita çerçevesi. Varsayılan olarak CGRectZero'ya ayarlanır.
kamera
Değer: GMSCameraPosition
Varsayılan harita kamera konumu.
mapID
Değer: GMSMapID
Google harita kimliği. İsteğe bağlı parametre.
backgroundColor
Değer: UIColor
Varsayılan olarak UIColor.lightGray değerine ayarlanır

Harita seçeneklerini yapılandırın

Kendi seçenek özelliklerinizi ayarlayabilir veya varsayılan değerleri içeren örnek bir GMSMapViewOptions öğesini doğrudan GMSMapView değerine aktarabilirsiniz.

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Varsayılan değerlere sahip bir GMSMapViewOptions nesnesinin doğrudan GMSMapView öğesine geçirilmesiyle ilgili bir örneği burada bulabilirsiniz.

Swift

let options = GMSMapViewOptions()
let mapView = GMSMapView(options:options) //initialized with default values

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values

Arka plan rengini yapılandır

Koyu modda çalışırken veya harita görünümleri arasında geçiş yaparken, varsayılan harita arka plan renginin geçersiz kılınması yararlı olabilir. Bunu, harita seçenekleri backgroundColor özelliği ayarlayarak yapabilirsiniz.

Swift

let options = GMSMapViewOptions()
options.backgroundColor = UIColor.yellowColor
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.backgroundColor = UIColor.yellowColor;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Harita türleri

Çeşitli harita türlerinden biriyle haritanızı özelleştirebilirsiniz. Bir haritanın türü, haritanın genel temsilini belirler. Örneğin, atlas genellikle sınırları göstermeye odaklanan politik haritalar ve bir şehir veya bölgeye ait tüm yolları gösteren yol haritaları içerir. iOS için Haritalar SDK'sı aşağıdaki harita türlerini sunar:

Harita Türü
Normal
Değer: kGMSTypeNormal
Tipik yol haritası. Yolları, insanlar tarafından inşa edilen bazı özellikleri ve nehirler gibi önemli doğal özellikleri gösterir. Yol ve özellik etiketleri de görünür durumdadır.
Hibrit
Değer: kGMSTypeHybrid
Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik etiketleri de gösterilir.
Uydu
Değer: kGMSTypeSatellite
Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünmez.
Arazi
Değer: kGMSTypeTerrain
Topografik veriler. Haritada renkler, kontur çizgileri, etiketler ve perspektif gölgelendirmesi gibi özellikler bulunur. Bazı yollar ve etiketler de gösterilir.
Yok
Değer: kGMSTypeNone
Harita bölmesi yok. Temel harita desenleri oluşturulmayacak. Bu mod, parça katmanlarla birlikte kullanıldığında 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 haritanın türünü ayarlamak için GMSMapView.mapType özelliğine yeni bir değer atayın. Örneğin, bir uydu haritası türünü görüntülemek için:

Swift

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

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                  longitude:151.2086
                                                        zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
mapView.mapType = kGMSTypeSatellite;

Aşağıdaki seçicide, aynı konuma ait arazi, normal ve karma haritaların karşılaştırması gösterilmektedir:

İç Mekan Haritaları

iOS için Haritalar SDK'sı, yüksek yakınlaştırma düzeylerinde havaalanları, alışveriş merkezleri, büyük perakende mağazaları ve toplu taşıma istasyonları gibi kapalı mekanlar için kat planlarını gösterir. İç mekan kat planları, "normal" harita türü (kGMSTypeNormal) için varsayılan harita döşemelerine entegre edilir. Kullanıcı haritayı yakınlaştırdığında otomatik olarak etkinleştirilir, harita uzaklaştırıldığında ise kaybolur.

GMSMapView öğesinin 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 planları ekleme

Kat planları belirli yerlerde kullanılabilir. Uygulamanızda vurgulamak istediğiniz bir bina için kat planı verileri yoksa şunları yapabilirsiniz:

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

Trafik katmanı

Kullanıcılarınıza, harita üzerine trafik yoğunluğu bilgileri yerleştirilmiş olarak haritayı görüntüleme olanağı verebilirsiniz. Bu rapor, yerel trafik durumlarının görsel bir özetini sunar. trafficEnabled yöntemini çağırarak trafik katmanını açıp kapatabilirsiniz. Aşağıdaki örnek, trafik katmanının bir haritada nasıl görünebileceğini göstermektedir.

Bu trafik katmanını gösteren
bir Google haritası.

Erişilebilirlik

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

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

iOS için Haritalar SDK'sındaki varsayılan değerin YES olması dışında bu tesis, resmi olmayan UIAccessibility protokolüne göredir.

Konumum

Varsayılan olarak, haritada konum verileri gösterilmez. Mavi "Konumum" noktasını ve pusula yönünü, GMSMapView üzerine myLocationEnabled ayarlayarak etkinleştirebilirsiniz.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Bu özellik etkinleştirildiğinde, kullanıcının geçerli konumu myLocation mülkü üzerinden sağlanır. Bu özellik, örneğin kullanıcıdan iOS tarafından bu verilere erişim izni verilmesi istenirse hemen kullanılamayabilir. Bu durumda nil.

Swift

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

Objective-C

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

3D binalar

Yakından bakıldığında birçok şehirde 3D binalar görünür olacaktır. Bu binalar, aşağıdaki Seattle, Washington resminde de görülebilmektedir.

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

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

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

Harita dolgusu

Google Haritası, GMSMapView ile tanımlanan tüm bölgeyi dolduracak şekilde tasarlanmıştır. Haritanın görünüşü ve davranışıyla ilgili birçok unsur görünümün boyutlarıyla tanımlanır:

  • Kameranın hedefi, dolgulu bölgenin merkezini yansıtır.
  • 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 denetim konumu, harita hareketleri ve kamera hareketleri, daha küçük bir alana yerleştirilmiş gibi çalışır. Bu durum, aşağıdaki değişikliklere yol açar:

  • API çağrıları veya düğmelere basma kullanılarak yapılan kamera hareketleri (ör. pusula, konumum) dolgulu bölgeye göre belirlenir.
  • GMSMapView.projection, yalnızca dolgulu bölgeyi içeren bir projeksiyon döndürür.
  • Kullanıcı arayüzü kontrolleri, kapsayıcının kenarından belirtilen nokta sayısına göre belirli bir uzaklıkta oluşturulur.

Dolgu, haritanın bir kısmıyla örtüşen kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, resimde, harita üst ve sağ kenarlara yerleştirilmiştir. Bölgenin kenarlarında yeşil renkle işaretlenmiş görünür harita denetimleri ve yasal metin görüntülenir. Diğer yandan, harita mavi renkle gösterilen kapsayıcının tamamını doldurmaya devam eder. Bu örnekte, harita kontrollerini gizlemeden bir menüyü haritanın sağ tarafında gezdirebilirsiniz.

Harita Dolgusu

Haritanıza dolgu eklemek için bir UIEdgeInsets nesnesi oluşturup GMSMapView nesnesine geçirin.padding özelliği.

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;