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 bir 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 varsayılan değerlere sahip bir GMSMapViewOptions
sınıfını doğrudan GMSMapView
'e 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 aktarma ö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ılmanız 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 belirler. Ö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
|
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ğrafi veriler. Harita renk, kontur çizgileri, etiketler 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
|
Yok | Değer:
kGMSTypeNone Harita karoları yok. Temel harita karoları oluşturulmaz. Bu mod, karo katmanlarıyla birlikte kullanıldığında kullanışlıdır. Harita türü "yok" olarak ayarlandığında trafik verilerinin gösterilmesi 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
mülkünün 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 zemin 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üleyin. 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 veya devre dışı bırakabilirsiniz. Aşağıdaki örnekte, trafik katmanının haritada nasıl görünebileceği gösterilmektedir.
Erişilebilirlik
Haritada erişilebilirlik öğeleri varsayılan olarak gizlidir. GMSMapView
mülkünün accessibilityElementsHidden
özelliğini NO
olarak ayarlayarak erişilebilirliği 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 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. Örneğin, iOS kullanıcıdan bu verilere erişime izin vermesi istenirse. Bu durumda nil
.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
3D binalar
Birçok şehir, yakınlaştırıldığında 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ünümü ve davranışının çeşitli yönleri, görünümün boyutlarına göre belirlenir:
- 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 durum aşağıdaki değişikliklere neden olur:
- 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 kaydırılır.
Boşluk, haritanın bir kısmıyla örtüşen kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, resimde harita üst ve sağ kenarlara doğru doldurulmuştur. Yeşil renkli dolgulu bölgenin kenarlarında görünür harita kontrolleri ve yasal metin 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
'a iletin.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ünde 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 kapalı ya da açık alanda kullanımına göre harita renk şemasını koyulaştırmak ya da açmak
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;