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ı ekleme hakkında ayrıntılı bilgi için Harita ekleme başlıklı makaleyi inceleyin.

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

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

Harita seçenekleri

Harita görünümünüzü başlatırken yapılandırma seçenekleri GMSMapViewOptions ile ayarlanır. Seçenek özellikleri arasında frame, camera, mapID veya backgroundColor yer alır.

Harita Seçenekleri
çerçeve
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 mapID. İ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 varsayılan değerlerle örneklendirilmiş bir GMSMapViewOptions nesnesini doğrudan GMSMapView yöntemine iletebilirsiniz.

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 nesnesini doğrudan GMSMapView'a iletme örneğini aşağıda 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ırma

Koyu modda çalışırken veya harita görünümleri arasında geçiş yaparken varsayılan harita arka plan rengini geçersiz kılmak faydalı olabilir. Bu, map optionsbackgroundColor özelliği ayarlanarak yapılabilir.

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 biriyle özelleştirebilirsiniz. Haritanın türü, haritanın genel görünümünü belirler. Örneğin, bir atlas genellikle sınırları göstermeye odaklanan siyasi haritalar ve bir şehir veya bölgedeki 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ı, insan yapımı bazı özellikleri ve nehirler gibi önemli doğal özellikleri gösterir. Yol ve özellik etiketleri de görünür. Harita renk şemasını koyu, açık veya sistem ayarlarına göre ayarlamayı destekler.
Karma
Değer: kGMSTypeHybrid
Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik etiketleri de görünür.
Uydu
Değer: kGMSTypeSatellite
Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünmez.
Arazi
Değer: kGMSTypeTerrain
Topoğrafik veriler. Haritada renkler, eş yükselti eğrileri, etiketler ve perspektif gölgelendirme bulunur. Bazı yollar ve etiketler de görünür. Harita renk şemasını koyu, açık veya sistem ayarlarını takip edecek şekilde ayarlamayı destekler.
Yok
Değer: kGMSTypeNone
Harita döşemeleri yok. Temel harita karoları oluşturulmaz. Bu mod, karolu katmanlarla birlikte kullanıldığında faydalıdır. Harita türü "yok" olarak ayarlandığında trafik verilerinin gösterimi 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, 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ı konum için arazi, normal ve hibrit haritaların karşılaştırması gösterilmektedir:

İç Mekan Haritaları

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

GMSMapView özelliğinin 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 yerlerde kullanılabilir. Uygulamanızda öne çıkarmak istediğiniz bir binanın kat planı verileri mevcut değilse şunları yapabilirsiniz:

  • Google Haritalar'a doğrudan kat planları ekleyin. Bu sayede planlarınız, Google Haritalar'ın tüm kullanıcıları tarafından kullanılabilir.
  • Kat planını zemin yer paylaşımı olarak görüntüleme Bu sayede, kat planlarınızı yalnızca uygulamanızın kullanıcıları görüntüleyebilir.

Trafik katmanı

Kullanıcılarınıza, haritayı trafik yoğunluğu bilgileriyle birlikte görüntüleme olanağı sunabilirsiniz. Bu, yerel trafik durumlarının görsel bir özetini sunar. trafficEnabled yöntemini çağırarak trafik katmanını açıp kapatabilirsiniz. Aşağıdaki örnekte, trafik katmanının haritada nasıl görünebileceği gösterilmektedir.

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

Toplu taşıma katmanı

iOS için Haritalar SDK'sı, transitEnabled yöntemini kullanarak haritanızda bir şehrin toplu taşıma ağını görüntülemenize olanak tanır. Trafik katmanı etkinleştirildiğinde ve harita, toplu taşıma bilgilerini destekleyen bir şehirde ortalandığında haritada başlıca toplu taşıma hatları kalın ve renkli çizgiler olarak gösterilir. Hattın rengi, toplu taşıma hattı operatöründen alınan bilgilere göre belirlenir. Toplu taşıma katmanını etkinleştirdiğinizde, toplu taşıma rotalarını daha iyi vurgulamak için temel haritanın stili değişir.

Şehrinizdeki toplu taşımayı denetleyen bir kamu kurumuysanız ve verilerinizin dahil edilmesini istiyorsanız daha fazla bilgi edinmek için Google Transit İş Ortağı Programı sitesini ziyaret edin.

Aşağıdaki örnekte, toplu taşıma katmanının haritada nasıl görünebileceği gösterilmektedir.

Toplu taşıma katmanını gösteren bir Google haritası

Erişilebilirlik

Varsayılan olarak, haritadaki erişilebilirlik öğeleri gizlidir. GMSMapView öğesinin accessibilityElementsHidden özelliğini NO olarak ayarlayarak erişimi etkinleştirebilirsiniz. Bu, yer paylaşımı nesneleri (ör. 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 özellik, iOS için Haritalar SDK'sındaki varsayılan değerin YES olması dışında, resmi olmayan UIAccessibility protokolüne uygundur.

Konumum

Varsayılan olarak haritada konum verileri gösterilmez. GMSMapView üzerinde myLocationEnabled ayarını yaparak mavi "Konumum" noktasını ve pusula yönünü etkinleştirebilirsiniz.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Bu özellik etkinleştirildiğinde, kullanıcının mevcut konumu myLocation özelliği aracılığıyla sağlanır. Bu özellik hemen kullanılamayabilir. Örneğin, iOS kullanıcıdan bu verilere erişim izni vermesini isterse. Bu durumda nil olur.

Swift

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

Objective-C

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

3D binalar

Birçok şehir yakından görüntülendiğinde, aşağıdaki Seattle, Washington resminde görüldüğü gibi 3D binalar görünür.

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

Swift veya Objective-C'de ilgili GMSMapView özelliğini ayarlayarak 3D binaları devre dışı bırakabilirsiniz:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

Harita dolgusu

Google Haritası, GMSMapView ile tanımlanan bölgenin tamamını dolduracak şekilde tasarlanır. Haritanın görünümü ve davranışıyla ilgili çeşitli yönler, görünümün boyutlarıyla tanımlanır:

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

GMSMapView kullanarak haritanın kenarlarına dolgu ekleyebilirsiniz.padding özelliği. Harita, kapsayıcının tamamını doldurmaya devam eder ancak metin ve kontrol konumlandırma, harita hareketleri ve kamera hareketleri daha küçük bir alana yerleştirilmiş gibi davranır. Bu değişiklikler sonucunda:

  • API çağrıları veya düğme basışları (ör. pusula, konumum) kullanılarak yapılan kamera hareketleri, dolgulu bölgeye göredir.
  • 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ı kadar kaydırılır.

Dolgu, haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, resimde haritanın üst ve sağ kenarları boyunca dolgu uygulanmıştır. Görünür harita kontrolleri ve yasal metin, yeşil renkte gösterilen dolgulu bölgenin kenarları boyunca gösterilirken harita, mavi renkte gösterilen tüm kapsayıcıyı doldurmaya devam eder. Bu örnekte, harita denetimlerini kapatmadan haritanın sağ tarafında bir menü kaydırabilirsiniz.

Harita Alan Ayarlaması

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;
      

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, günün saatine veya cihazın iç ya da dış mekanda kullanımına göre harita renk şemasını koyulaştırabilir veya açabilirsiniz.

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

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;

Haritalarınız için özel açık ve koyu stiller oluşturmak istiyorsanız bulut tabanlı harita stillerini kullanın.