Harita yapılandırma

Platform seçin: Android iOS

Bu genel bakış, iOS için Haritalar SDK'sını kullanarak 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ı şunlardır:

Ç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üz başlatılırken yapılandırma seçenekleri GMSMapViewOptions ile ayarlanır. Seçenek özellikleri frame, camera, mapID veya backgroundColor içerir.

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 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 doğrudan GMSMapView öğesine varsayılan değerlerle birlikte oluşturulmuş bir GMSMapViewOptions 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'e iletme örneğini aşağıda görebilirsiniz.

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 yararlı olabilir. Bu, harita seçenekleri backgroundColor mülkü 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 temsilini yönetir. Örneğin, bir atlas genellikle sınırları göstermeye odaklanan siyasi haritalar ve bir şehir veya bölgenin tüm yollarını 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 bir 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. Harita renk şemasını koyu, açık veya sistem ayarlarına göre ayarlama desteği sunar.
Karma
Değer: kGMSTypeHybrid
Yol haritalarının eklendiği 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. Harita renk, kontur çizgisi, etiket ve perspektif gölgelendirme içerir. Bazı yollar ve etiketler de görünür. Harita renk şemasını koyu, açık veya sistem ayarlarına göre ayarlama desteği
Yok
Değer: kGMSTypeNone
Harita karoları yok. Temel harita karoları oluşturulmaz. Bu mod, karo katmanlarıyla birlikte kullanıldığında faydalıdır. Harita türü "yok" olarak ayarlandığında trafik verilerinin görüntülenmesi devre dışı bırakılır.

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

Bir haritanın türünü ayarlamak için GMSMapView.mapType mülküne 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 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ı alanların kat planlarını gösterir. İç mekan kat planları, "normal" harita türü (kGMSTypeNormal) için varsayılan harita karolarına entegre edilir. Kullanıcı yakınlaştırdığında otomatik olarak etkinleştirilir ve harita uzaklaştırıldığında kaybolur.

GMSMapView özelliğinin indoorEnabled özelliğini NO olarak ayarlayarak kapalı mekan haritalarını devre dışı bırakabilirsiniz.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Alternatif olarak yalnızca Kat Seçici denetimini devre dışı bırakabilirsiniz.

Kat planları ekleme

Kat planları belirli konumlarda kullanılabilir. Başvurunuzda öne çıkarmak istediğiniz bir bina için kat planı verileri yoksa şunları yapabilirsiniz:

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

Trafik katmanı

Kullanıcılarınıza, haritayı üzerine trafik yoğunluğu bilgilerinin yerleştirildiği şekilde görüntüleme olanağı sunabilirsiniz. Bu sayede yerel trafik durumuna dair görsel bir özet elde edebilirsiniz. trafficEnabled yöntemini çağırarak trafik katmanını etkinleştirebilir ve devre dışı bırakabilirsiniz. Aşağıdaki örnekte, trafik katmanının bir haritada 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 gizlidir. GMSMapView mülkündeki accessibilityElementsHidden özelliğini NO olarak ayarlayarak erişilebilirliği etkinleştirebilirsiniz. Bu, yer paylaşımı nesneleri (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 verisi gösterilmez. myLocationEnabledGMSMapView olarak ayarlayarak mavi "Konumum" noktasını ve pusula yönünü etkinleştirebilirsiniz.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Bu özelliği etkinleştirmek, myLocation mülkü aracılığıyla kullanıcının mevcut konumunu sağlar. Bu özellik hemen kullanılamayabilir (ör. iOS kullanıcıdan bu verilere erişim izni ister). Bu durumda nil değerini alır.

Swift

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

Objective-C

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

3D binalar

Birçok şehir, yakın planda görüntülendiğinde 3D binalar gösterir. Aşağıdaki Seattle, Washington resminde bu binaları görebilirsiniz.

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

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

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

Harita alan ayarlaması

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

  • Kameranın hedefi, dolgulu bölgenin ortasını 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ında görünür.

GMSMapView simgesini kullanarak haritanın kenarlarına dolgu ekleyebilirsiniz.padding mülkünü seçin. Harita, kapsayıcının tamamını doldurmaya devam eder ancak metin ve kontrol konumlandırması, harita hareketleri ve kamera hareketleri daha küçük bir alana yerleştirilmiş gibi davranır. Bu güncelleme sonucunda şu değişiklikler yapıldı:

  • API çağrıları veya düğme basma işlemlerini kullanan kamera hareketleri (ör. pusula, konumum), dolgulu bölgeye göredir.
  • GMSMapView.projection yalnızca doldurulmuş bölgeyi içeren bir projeksiyon döndürür.
  • 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ında doldurulmuştur. Görünür harita kontrolleri ve yasal metin, yeşil renkli dolgulu bölgenin kenarlarında gösterilir. Harita ise mavi renkli kapsayıcının tamamını doldurmaya devam eder. Bu örnekte, harita denetimlerini gizlemeden haritanın sağ tarafına bir menü yerleştirebilirsiniz.

Harita Alan Ayarlaması

Haritanıza dolgu eklemek için bir UIEdgeInsets nesnesi oluşturun ve bunu GMSMapView'a 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ç veya dış mekanda kullanılmasına göre harita renk şemasını koyulaştırmak ya da açmak için bu ayarı kullanabilirsiniz.

Harita renk şemasını ayarlamak ve güncellemek için GMSMapView overrideUserInterfaceStyle: simgesini 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;