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:
- Konum, yakınlaştırma, yön ve yatırma dahil olmak üzere kamera konumu. Kamera konumlandırması hakkında ayrıntılı bilgi için Kamera ve Görüntü bölümüne bakın.
- Haritanın arka plan rengi.
- Harita türü.
- Yakınlaştırma düğmeleri ve pusula gibi görüntülenecek kullanıcı arayüzü bileşenleri.
- Etkinleştirilecek hareketler.
Ç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, atlaslar 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 edilmiş 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 kontrolünü 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.
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. myLocationEnabled
'ü GMSMapView
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.
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üntüsü 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 yerleşimi, 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.
Haritanıza dolgu eklemek için bir UIEdgeInsets
nesnesi oluşturun ve bunu GMSMapView
'e 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;