Bu makalede, iOS için Haritalar SDK'sı kullanılarak iOS uygulamasına eklenmiş bir haritanın nasıl yapılandırılacağı açıklanmaktadır.
Genel bakış
Uygulamanıza bir harita ekledikten sonra haritanın ilk ve çalışma zamanı ayarlarını yapılandırabilirsiniz. Harita kapsayıcı ekleme hakkında ayrıntılı bilgi için Harita ekleme başlıklı makaleyi inceleyin.
İlk harita ayarları aşağıdakileri içerir:
- Kamera konumu (konum, yakınlaştırma, dayanma ve eğim dahil). Kamera konumlandırmayla ilgili ayrıntılar için Kamera ve Görünüm bölümüne bakın.
- Harita türü.
- Görüntülenecek yakınlaştırma düğmeleri ve pusula gibi 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 türleri
Haritanızı, çeşitli harita türlerinden biriyle özelleştirebilirsiniz. Bir haritanın türü, haritanın tümünü temsil eder. Örneğin, bir atlas genellikle sınırları göstermeye odaklanan politik haritaları, bir şehrin veya bölgenin tüm yollarını gösteren yol haritalarını içerir. iOS için Haritalar SDK'sı aşağıdaki harita türlerini sunar:
Harita Türü | |
---|---|
Normal | Değer:
kGMSTypeNormal Normal yol haritası. Yolları, insanların inşa ettiği bazı özellikleri ve nehirler gibi önemli doğal özellikleri gösterir. Yol ve özellik etiketleri de görülebilir.
|
Hibrit | Değer:
kGMSTypeHybrid Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik etiketleri de görülebilir. |
Uydu | Değer:
kGMSTypeSatellite Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünmez.
|
Arazi | Değer:
kGMSTypeTerrain Topografik veriler. Harita; renkler, kontur çizgileri, etiketler ve perspektif gölgelendirmesi içerir. Bazı yollar ve etiketler de görünür durumdadır.
|
Yok | Değer:
kGMSTypeNone Harita kutusu yok. Temel harita desenleri oluşturulmaz. Bu mod, karo katmanları ile birlikte yararlıdır. Harita türü yok değerine ayarlandığında trafik verilerinin gösterilmesi devre dışı bırakılır. |
Harita türünü değiştirme
Bir harita türünü ayarlamak için, GMSMapView.mapType
özelliğine yeni bir değer atayın. Örneğin, bir uydu eşleme türünü görüntülemek için:
Swift
let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.mapType = .satellite
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.mapType = kGMSTypeSatellite;
Aşağıdaki seçici, aynı konum için arazi, normal ve karma haritaların karşılaştırmasını gösterir:
İç Mekan Haritaları
iOS için Haritalar SDK'sı yüksek yakınlaştırma düzeylerinde; havaalanları, alışveriş merkezleri, büyük mağazalar ve toplu taşıma istasyonları gibi iç mekanlar için inşaat planlarını gösterir. İç mekan kat planları "normal" harita türü (kGMSTypeNormal
) için varsayılan harita karolarına entegre edilmiştir ve kullanıcı yakınlaştırdığında otomatik olarak etkinleştirilir ve harita uzaklaştırıldığında yavaş yavaş devre dışı kalır.
GMSMapView
için 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 konumlarda kullanılabilir. Uygulamanızda öne çıkarmak istediğiniz bir binanın kat planı verileri yoksa şunları yapabilirsiniz:
- Doğrudan Google Haritalar'a kat planları ekleyin. Bu sayede, planlarınız tüm Google Haritalar kullanıcılarına sunulur.
- Bir kat planını Yer Paylaşımı olarak görüntüleyin. Bu sayede sadece uygulamanızın kullanıcıları kat planlarınızı görüntüleyebilir.
Trafik katmanı
Kullanıcılarınıza, üzerine trafik yoğunluğu bilgileri eklenerek haritayı görüntüleme imkanı sağlayabilirsiniz. Bu, yerel trafik durumlarının
görsel bir özetini sağlar. Trafik katmanını etkinleştirmek için trafficEnabled
yöntemini çağırabilirsiniz. Aşağıdaki örnekte, trafik katmanının bir haritada nasıl görünebileceği gösterilmektedir.
Erişilebilirlik
Varsayılan olarak, haritadaki erişilebilirlik öğeleri gizlenir. Erişilebilirlik özelliğini etkinleştirmek için GMSMapView
öğesinin accessibilityElementsHidden
özelliğini
NO
olarak ayarlayabilirsiniz. Bu, yer paylaşımlı nesneler (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 mülk, resmi olmayan UIAccessibility
protokolüne göre hazırlanmıştır. Ancak iOS için Haritalar SDK'sının varsayılan değeri YES
olur.
Konumum
Varsayılan olarak, haritada konum verisi gösterilmez. Mavi "Konumum" noktasını ve pusula yönünü GMSMapView
üzerindeki myLocationEnabled
ile ayarlayabilirsiniz.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Bu özellik etkinleştirildiğinde myLocation
özelliği aracılığıyla kullanıcının geçerli konumu da sağlanır. Bu özellik hemen kullanılamayabilir (örneğin, kullanıcıdan iOS'te bu verilere erişim izni vermesi isteniyorsa). Bu durumda hiç değer yok.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
3D binaları
Yakından görüntülendiğinde, birçok şehir aşağıdaki 3D binaları görülebilecektir. Aşağıdaki Seattle, Washington görüntüsünde görülebilir.

Swift veya Objective-C'de ilgili GMSMapView
mülkünü aşağıda gösterildiği gibi ayarlayarak 3D binaları devre dışı bırakabilirsiniz:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Harita dolgusu
Google Haritası, GMSMapView
tarafından tanımlanan tüm bölgeyi dolduracak şekilde tasarlanmıştır. Haritanın görünümü ve davranışıyla ilgili çeşitli özellikler görünümün boyutlarına göre tanımlanır:
- Kameranın hedefi, dolgulu bölgenin merkezini yansıtacak.
- Harita denetimleri, 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
kullanarak haritanın kenarlarına dolgu ekleyebilirsiniz.padding
mülkü. Harita, tüm kapsayıcıyı doldurmaya devam eder ancak metin ve kontrol konumlandırması, harita hareketleri ve kamera hareketleri daha dar bir alana yerleştirilmiş gibi davranır. Bu durum aşağıdaki değişikliklere neden olur:
- API çağrıları veya düğme basışları (ör. pusula, konumum) üzerinden yapılan kamera hareketleri, dolgulu bölgeye göre yapılır.
GMSMapView
.projection
, yalnızca doldurulmuş alanı içeren bir projeksiyon döndürür.- Kullanıcı arayüzü kontrolleri, kapsayıcının kenarından belirtilen sayıda nokta kadar uzanacak.
Dolgu, haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, aşağıdaki resimde harita, üst ve sağ kenarlar boyunca doldurulmuştur. Görünür harita kontrolleri ve yasal metin, dolgulu bölgenin kenarları boyunca yeşil renkte gösterilir. Harita ise maviyle gösterilen tüm kapsayıcıyı doldurmaya devam eder. Bu örnekte, harita denetimlerini gizlemeden menünün sağ tarafında bir menü görüntüleyebilirsiniz.
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;