Harita yapılandırma

Platform seçin: Android iOS

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

Genel Bakış

Uygulamanıza harita ekledikten sonra ilk seçenekleri ve çalışma zamanını yapılandırabilirsiniz. ve Google Haritalar'ı tıklayın. Harita kapsayıcısı eklemeyle ilgili ayrıntılar için bkz. haritası ekleyin.

İlk harita ayarları şunlardır:

Çalışma zamanında bu ayarları ve bazı ek ayarları şu şekilde yapılandırabilirsiniz: " GMSMapView nesnesini tanımlayın.

Harita seçenekleri

Harita görünümünüz başlatılırken, yapılandırma seçenekleri GMSMapViewOptions Seçenek özellikleri frame, camera, mapID veya backgroundColor içerir.

Harita Seçenekleri
kutuyu sürükleyin
Değer: CGRect
Harita çerçevesi. Varsayılan olarak CGRectZero değerine ayarlanır.
kamera
Değer: GMSCameraPosition
Varsayılan harita kamerası 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ırma

Kendi seçenek özelliklerinizi ayarlayabilir veya örneklenmiş bir GMSMapViewOptions değerini doğrudan GMSMapView öğesine varsayılan değerlerle uygular.

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];

Aşağıda, varsayılan değerlere sahip bir GMSMapViewOptions nesnesini iletmeyle ilgili örnek verilmiştir doğrudan GMSMapView adlı kullanıcıya gönderilir.

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 rengini geçersiz kılın. Bu, harita seçenekleri backgroundColor mülkü.

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

Haritanızı çeşitli harita türlerinden birini kullanarak özelleştirebilirsiniz. Bir haritanın türü haritanın genel temsilidir. Örneğin, bir atlas genellikle Sınırları göstermeye odaklanan siyasi haritalar ve aşağıdakileri gösteren yol haritaları bir şehir veya bölgenin tüm yolları. iOS için Haritalar SDK'sı şu harita türleri vardır:

Harita Türü
Normal
Değer: kGMSTypeNormal
Tipik yol haritası. Yolları, Google'ın geliştirdiği bazı özellikleri gösterir insanlar ve nehirler gibi önemli doğal özellikler. Yol ve özellik etiketleri görünür. Harita renk şemasını koyu, açık veya sistem ayarlarına göre ayarlama desteği sunar.
Karma
Değer: kGMSTypeHybrid
Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik Etiketler de görünür durumda.
Uydu
Değer: kGMSTypeSatellite
Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünür.
Arazi
Değer: kGMSTypeTerrain
Topoğrafik veriler. Harita renkler, kontur çizgileri ve etiketler içerir, perspektif gölgelendirmesini kullanın. Bazı yollar ve etiketler de görünür. Destekler harita renk şemasını koyu veya açık olarak ayarlayabilir ya da sistem ayarlarına uyarlayabilirsiniz.
Yok
Değer: kGMSTypeNone
Harita parçası yok. Temel harita parçaları oluşturulmayacak. Bu mod kutuyla birlikte kullanışlıdır katmanları arasından seçim yapabilirsiniz. Trafik verilerinin görüntülenmesi, harita türü şu durumlarda devre dışıdır: hiçbirini yok olarak ayarlayabilirsiniz.

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

Harita türünü ayarlamak için GMSMapView.mapType öğesine 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çici, Google Haritalar'daki arazi, normal ve karma haritaların aynı konum:

İç Mekan Haritaları

Yüksek yakınlaştırma düzeylerinde, iOS için Haritalar SDK'sı şunun için kat planlarını gösterir: havalimanları, alışveriş merkezleri, büyük mağazalar ve toplu taşıma gibi iç mekan alanları istasyonlar. İç mekan kat planları, her bir konum için varsayılan harita döşemelerine entegre edilmiştir. "normal" [normal] harita türü (kGMSTypeNormal) vardır ve Harita uzaklaştırıldığında kullanıcı görüntüyü yakınlaştırır ve uzaklaşır.

Şu öğenin indoorEnabled özelliğini ayarlayarak iç mekan haritalarını devre dışı bırakabilirsiniz: GMSMapView - NO.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Alternatif olarak, sadece Taban Seçici kontrolü.

Kat planları ekleniyor

Kat planları belirli konumları için de ekleyebilirsiniz. Yapmak istediğiniz binanın kat planı verileri mevcut değilse aşağıdaki işlemleri yapabilirsiniz:

  • Kat ekle planlar Google Haritalar'a gönderebilirsiniz. Bu sayede, planlarınız şuradaki tüm kullanıcılara sunulur: Google Haritalar.
  • Bir kat planını Yer Yerleşimi olarak görüntüleyin. Bu durumda yalnızca kat planlarınızı görüntülemeleri için reklamları görüntüler.

Trafik katmanı

Kullanıcılarınıza haritayı trafik yoğunluğuyla birlikte görüntüleme imkanı sunabilirsiniz bindirilmiş bilgi içerir. Bu sayede yerel trafik durumuna dair görsel bir özet elde edebilirsiniz. Trafik katmanını açmak ve kapatmak için "the" trafficEnabled yöntemidir. Aşağıdaki örnekte, trafik katmanının bir harita üzerinde nasıl görünebileceği gösterilmektedir.

Trafik katmanını gösteren bir Google haritası

Erişilebilirlik

Haritadaki erişilebilirlik öğeleri varsayılan olarak gizlenir. GMSMapView mülkündeki accessibilityElementsHidden özelliğini NO olarak ayarlayarak erişilebilirliği etkinleştirebilirsiniz. Bu durumda, yer paylaşımlı nesneler (ör. GMSMarker ve bilgi pencereleri, GMSPolyline vb.)

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

Bu özellik, resmi olmayan UIAccessibility protokolüne göredir, ancak iOS için Haritalar SDK'sında varsayılan değer YES değeridir.

Konumum

Varsayılan olarak haritada konum verisi gösterilmez. Bu düğmeyi tıklayarak mavi renkli "My Konum" myLocationEnabled özelliğini açarak nokta ve pusula yönü GMSMapView.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Bu özellik etkinleştirildiğinde, kullanıcının myLocation mülk. Bu mülk hemen kullanılamıyor olabilir - için örneğin, iOS tarafından kullanıcıdan bu verilere erişim izni vermesi istenir. Evet 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 ve böylelikle aşağıdaki Seattle, Washington resminde.

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

3D binaları devre dışı bırakmak için ilgili binayı GMSMapView mülkü olan Swift veya Objective-C'de bulabilirsiniz:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

Harita dolgusu

Google Haritası, GMSMapView tarafından belirlenen tüm bölgeyi dolduracak şekilde tasarlanmıştır. Haritanın görünümü ve davranışının birçok yönü boyutlarla tanımlanır görünüm:

  • Kameranın hedefi, dolgulu bölgenin ortasını yansıtır.
  • Harita denetimleri haritanın kenarlarına göre konumlandırılır.
  • Telif hakkı beyannameleri veya Google logosu gibi yasal bilgiler, bir düğme ekleyin.

Haritanın kenarlarına dolgu eklemek için GMSMapViewpadding mülkünü seçin. Harita doldurulmaya devam ediyor Ancak, metin ve konumlandırmayı, harita hareketlerini ve kamerayı kontrol etme hareketler daha küçük bir alana yerleştirilmiş gibi davranır. Bu durum, aşağıdaki değişiklikler yapılır:

  • API çağrıları veya düğmelere basılan kamera hareketleri (ör. pusula, durumu) dolgulu bölgeye göre belirlenir.
  • GMSMapView.projection, yalnızca dolgulu bölge.
  • Kullanıcı arayüzü kontrolleri, kapsayıcı kenarından belirtilen sayıda nokta kadar kaydırılır.

Boşluk, haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, resimde, harita üst ve sağ kenarlar boyunca doldurulur. Görünür harita denetimleri ve yasal metin, dolgu malzemesinin kenarlarında görüntülenir harita tüm kapsayıcıyı doldurmaya devam ederken yeşil renkte mavi renkte gösterilir. Bu örnekte, harita denetimlerini gizlemeden haritanın sağ tarafına bir menü yerleştirebilirsiniz.

Harita Dolgusu

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

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;
      

Harita renk şeması

Normal ve arazi türündeki haritalar için harita renk şemasını koyu, açık veya mevcut sistem ayarlarını kullanacak şekilde ayarlayabilirsiniz. Örneğin, renkleri koyulaştırabilir veya günün saatine veya iç ya da dış mekan kullanımına göre harita renk şemasını açar ekleyebilirsiniz.

GMSMapView overrideUserInterfaceStyle: kullanın renk şemasını ayarlamak ve güncellemek için.

Swift

let options = GMSMapViewOptions()
// Map is init to use light mode by default.
let mapView = GMSMapView(options: options)
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = .dark
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = .light
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = .unspecified

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
// Map is init to always use light mode.
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;