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ı şunları içerir:

Ç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 şunları içerir: frame, camera, mapID veya backgroundColor.

Harita Seçenekleri
kutuyu sürükleyin
Değer: CGRect
Harita çerçevesi. Varsayılan olarak CGRectZero'dur.
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ın koyu, açık, renk veya sistem ayarlarını izlemek isteyebilirsiniz.
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 durumdadı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 yerler'e gidin. 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, görevlere ilişkin görsel bir özet sağlar yerel trafik durumuna göre değişebilir. 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.

Trafiği gösteren bir Google haritası
katman

Erişilebilirlik

Haritadaki erişilebilirlik öğeleri varsayılan olarak gizlenir. Şunları etkinleştirebilirsiniz: ve erişilebilirlik için accessibilityElementsHidden özelliğini ayarlayarak GMSMapView - NO. 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 bölümde, mavi renkteki "Bu" 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ışıyla ilgili birçok unsur, boyutlara göre tanımlanır. görünüm:

  • Kameranın hedefi, dolgulu bölgenin merkezini 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ündeki her mülk. 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ü denetimlerinin, kapsayıcının kenarından belirtilen puandır.

Haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken dolgu 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, bir menüyü ekranın sağ üst tarafına harita kontrollerini kullanabilirsiniz.

Harita Dolgusu

Haritanıza dolgu eklemek için bir UIEdgeInsets nesnesi oluşturun ve bunu GMSMapView.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;
      

Harita renk şeması

Normal ve arazi türündeki haritalarda, harita renk şemasını koyu, ışığı veya mevcut sistem ayarlarını kullanmayı seçebilirsiniz. Ö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;