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ı eklemeyle ilgili ayrıntılar için Harita ekleme başlıklı makaleyi inceleyin.
İlk harita ayarları şunları içerir:
- Konum, yakınlaştırma, yön ve yatırma dahil olmak üzere kamera konumu. Kamera konumlandırmasıyla ilgili ayrıntılar için Kamera ve Görünüm bölümünü inceleyin.
- Harita 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ü ilk kullanıma hazırlarken, yapılandırma seçenekleri GMSMapViewOptions
ile ayarlanır. Seçenek özellikleri arasında frame
, camera
, mapID
veya backgroundColor
bulunur.
Harita Seçenekleri | |
---|---|
çerçeve | Değer:
CGRect Harita çerçevesi. Varsayılan olarak CGRectZero'ya ayarlanır.
|
kamera | Değer:
GMSCameraPosition Varsayılan harita kamera 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ırın
Kendi seçenek özelliklerinizi ayarlayabilir veya varsayılan değerleri içeren örnek bir GMSMapViewOptions
öğesini doğrudan GMSMapView
değerine aktarabilirsiniz.
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
nesnesinin doğrudan GMSMapView
öğesine geçirilmesiyle ilgili bir örneği burada 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ır
Koyu modda çalışırken veya harita görünümleri arasında geçiş yaparken, varsayılan harita arka plan renginin geçersiz kılınması yararlı olabilir. Bunu, harita seçenekleri backgroundColor
özelliği
ayarlayarak yapabilirsiniz.
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
Çeşitli harita türlerinden biriyle haritanızı özelleştirebilirsiniz. Bir haritanın türü, haritanın genel temsilini belirler. Örneğin, atlas genellikle sınırları göstermeye odaklanan politik haritalar ve bir şehir veya bölgeye ait 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ı, 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 durumdadır.
|
Hibrit | Değer:
kGMSTypeHybrid Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik etiketleri de gösterilir. |
Uydu | Değer:
kGMSTypeSatellite Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünmez.
|
Arazi | Değer:
kGMSTypeTerrain Topografik veriler. Haritada renkler, kontur çizgileri, etiketler ve perspektif gölgelendirmesi gibi özellikler bulunur. Bazı yollar ve etiketler de gösterilir.
|
Yok | Değer:
kGMSTypeNone Harita bölmesi yok. Temel harita desenleri oluşturulmayacak. Bu mod, parça
katmanlarla birlikte kullanıldığında 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 haritanın türünü ayarlamak için GMSMapView.mapType
özelliğine yeni bir değer atayın. Örneğin, bir 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ı konuma ait 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ı mekanlar için kat planlarını gösterir. İç mekan kat planları, "normal" harita türü (kGMSTypeNormal
) için varsayılan harita döşemelerine entegre edilir. Kullanıcı haritayı yakınlaştırdığında otomatik olarak etkinleştirilir, harita uzaklaştırıldığında ise kaybolur.
GMSMapView
öğesinin 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 planları ekleme
Kat planları belirli yerlerde kullanılabilir. Uygulamanızda vurgulamak istediğiniz bir bina için kat planı verileri yoksa şunları yapabilirsiniz:
- Doğrudan Google Haritalar'a kat planlarını ekleyin. Bu sayede planlarınız tüm Google Haritalar kullanıcılarına sunulur.
- Bir kat planını Zemin Yer Paylaşımı olarak görüntüleyin. Bu sayede kat planlarınızı yalnızca uygulamanızın kullanıcıları görebilir.
Trafik katmanı
Kullanıcılarınıza, harita üzerine trafik yoğunluğu bilgileri yerleştirilmiş olarak haritayı görüntüleme olanağı verebilirsiniz. Bu rapor, yerel trafik durumlarının
görsel bir özetini sunar. trafficEnabled
yöntemini çağırarak trafik katmanını açıp kapatabilirsiniz. Aşağıdaki örnek, trafik katmanının bir haritada nasıl görünebileceğini göstermektedir.
Erişilebilirlik
Varsayılan olarak, haritadaki erişilebilirlik öğeleri gizlenir. GMSMapView
öğesinin accessibilityElementsHidden
özelliğini NO
olarak ayarlayarak erişilebilirliği etkinleştirebilirsiniz. Bu, yer paylaşımlı nesneler (GMSMarker
ve bilgi pencereleri, GMSPolyline
vb. gibi) için erişilebilirlik öğelerinin oluşturulmasına neden olur.
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
iOS için Haritalar SDK'sındaki varsayılan değerin YES
olması dışında bu tesis, resmi olmayan UIAccessibility
protokolüne göredir.
Konumum
Varsayılan olarak, haritada konum verileri gösterilmez. Mavi "Konumum" noktasını ve pusula yönünü, GMSMapView
üzerine myLocationEnabled
ayarlayarak etkinleştirebilirsiniz.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Bu özellik etkinleştirildiğinde, kullanıcının geçerli konumu myLocation
mülkü üzerinden sağlanır. Bu özellik, örneğin kullanıcıdan iOS tarafından bu verilere erişim izni verilmesi istenirse hemen kullanılamayabilir. Bu durumda nil
.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
3D binalar
Yakından bakıldığında birçok şehirde 3D binalar görünür olacaktır. Bu binalar, aşağıdaki Seattle, Washington resminde de görülebilmektedir.
3D binaları aşağıda gösterildiği gibi Swift veya Objective-C'de ilgili GMSMapView
mülkünü ayarlayarak devre dışı bırakabilirsiniz:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Harita dolgusu
Google Haritası, GMSMapView
ile tanımlanan tüm bölgeyi dolduracak şekilde tasarlanmıştır.
Haritanın görünüşü ve davranışıyla ilgili birçok unsur görünümün boyutlarıyla tanımlanır:
- Kameranın hedefi, dolgulu bölgenin merkezini yansıtır.
- 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 denetim konumu, harita hareketleri ve kamera hareketleri, daha küçük bir alana yerleştirilmiş gibi çalışır. Bu durum, aşağıdaki değişikliklere yol açar:
- API çağrıları veya düğmelere basma kullanılarak yapılan kamera hareketleri (ör. pusula, konumum) dolgulu bölgeye göre belirlenir.
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ına göre belirli bir uzaklıkta oluşturulur.
Dolgu, haritanın bir kısmıyla örtüşen kullanıcı arayüzleri tasarlarken yararlı olabilir. Örneğin, resimde, harita üst ve sağ kenarlara yerleştirilmiştir. Bölgenin kenarlarında yeşil renkle işaretlenmiş görünür harita denetimleri ve yasal metin görüntülenir. Diğer yandan, harita mavi renkle gösterilen kapsayıcının tamamını doldurmaya devam eder. Bu örnekte, harita kontrollerini gizlemeden bir menüyü haritanın sağ tarafında gezdirebilirsiniz.
Haritanıza dolgu eklemek için bir UIEdgeInsets
nesnesi oluşturup GMSMapView
nesnesine geçirin.padding
özelliği.
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;