Bu genel bakışta, iOS için Haritalar SDK'sı kullanılarak bir iOS uygulamasına eklenmiş haritaları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ılı bilgi için Harita ekleme bölümüne bakın.
İlk harita ayarları şunları içerir:
- Konum, yakınlaştırma, yönlendirme ve yatırma gibi kamera konumu. Kamera konumlandırması ile ilgili ayrıntılar için Kamera ve Görünüm bölümüne bakın.
- Harita arka plan rengi.
- Eşleme 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 bu ayarları ve bazı ek ayarları GMSMapView
nesnesini güncelleyerek 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 arasında frame
, camera
, mapID
veya backgroundColor
bulunur.
Harita Seçenekleri | |
---|---|
kutuyu sürükleyin | Değer:
CGRect Harita çerçevesi. Varsayılan olarak CGRectZero'dur.
|
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 örneklendirilmiş 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];
Aşağıda, varsayılan değerlere sahip bir GMSMapViewOptions
nesnesinin doğrudan GMSMapView
öğesine geçirilmesiyle ilgili bir örnek verilmiştir.
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 rengini geçersiz kılmak faydalı olabilir. Bu, eşleme seçenekleri backgroundColor
özelliği ayarlanarak elde edilebilir.
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 birini kullanarak özelleştirebilirsiniz. Bir haritanın türü, haritanın genel temsilini belirler. Örneğin bir atlas genellikle sınırları göstermeye odaklanan politik haritalar ve bir şehrin 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 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ünür durumdadır. Harita renk şemasının koyu, açık veya sistem ayarlarına uygun olarak ayarlanmasını destekler.
|
Hibrit | Değer:
kGMSTypeHybrid Yol haritaları eklenmiş uydu fotoğrafı verileri. Yol ve özellik etiketleri de görünür durumdadır. |
Uydu | Değer:
kGMSTypeSatellite Uydu fotoğrafı verileri. Yol ve özellik etiketleri görünmez.
|
Arazi | Değer:
kGMSTypeTerrain Topoğrafik veriler. Harita renkler, kontur çizgileri ve etiketler ile perspektif gölgelendirmesini içerir. Bazı yollar ve etiketler de görünür durumdadır. Harita renk şemasının koyu, açık veya sistem ayarlarına uygun olarak ayarlanmasını destekler.
|
Yok | Değer:
kGMSTypeNone Harita parçası yok. Temel harita parçaları oluşturulmayacak. Bu mod, karo katmanlarıyla birlikte kullanıldığında kullanışlı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
ö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çici, aynı konum için arazi, normal ve karma haritaların bir 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 perakende mağazaları ve toplu taşıma istasyonları gibi iç mekan planlarını gösterir. İç mekan kat planları, "normal" harita türü (kGMSTypeNormal
) için varsayılan harita desenlerine entegre edilir ve kullanıcı görüntüyü yakınlaştırdığında otomatik olarak etkinleştirilir ve harita uzaklaştığında 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 Zemin Seçici kontrolünü devre dışı bırakabilirsiniz.
Kat planları ekleniyor
Kat planları belirli bölgelerde sunulmaktadır. Uygulamanızda vurgulamak 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 tüm Google Haritalar kullanıcılarına sunulur.
- Bir kat planını Yer Yerleşimi olarak görüntüleyin. Bu şekilde, 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ş halde haritayı görüntüleme imkanı sunabilirsiniz. Bu, kullanıcıların yerel trafik durumlarının
görsel bir özetini sağlar. trafficEnabled
yöntemini çağırarak trafik katmanını açıp kapatabilirsiniz. Aşağıdaki örnekte, trafik katmanının bir harita üzerinde nasıl görünebileceği gösterilmektedir.
Erişilebilirlik
Haritadaki erişilebilirlik öğeleri varsayılan olarak 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.) 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öredir. Tek fark, iOS için Haritalar SDK'sındaki varsayılan değerin YES
olmasıdır.
Konumum
Varsayılan olarak, haritada konum verisi gösterilmez. GMSMapView
üzerinde myLocationEnabled
ayarlayarak mavi "Konumum"
noktasını ve pusula yönünü etkinleştirebilirsiniz.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Bu özellik etkinleştirildiğinde, myLocation
özelliği aracılığıyla kullanıcının mevcut konumu gösterilir. Bu özellik hemen kullanılamayabilir (örneğin, kullanıcıdan iOS tarafından bu verilere erişime izin vermesi istenirse). 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ından bakıldığında, aşağıdaki Seattle, Washington şehrinde görülen 3D binalarla karşılaşır.
Swift veya Objective-C'de ilgili GMSMapView
özelliğini 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 belirlenen tüm bölgeyi dolduracak şekilde tasarlanmıştır.
Haritanın görünümü ve davranışı birçok açıdan 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
işaretini kullanarak haritanın kenarlarına dolgu ekleyebilirsiniz.padding
mülkündeki her mülk. 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 çalışır. Bu durum aşağıdaki değişikliklere yol açar:
- API çağrıları veya düğmeye basılan düğmeler (ör. pusula, konumum) kullanılarak yapılan kamera hareketleri, dolgulu bölgeye göre belirlenir.
GMSMapView
.projection
, yalnızca doldurulmuş bölgeyi içeren bir projeksiyon döndürür.- Kullanıcı arayüzü kontrolleri, kapsayıcının kenarından belirtilen sayıda noktayla uzaklaştırılır.
Haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken dolgu yararlı olabilir. Örneğin, resimde, harita üst ve sağ kenarlar boyunca doldurulur. Görünür harita denetimleri ve yasal metin, dolgulu bölgenin kenarlarında gösterilir. Yeşil renkle gösterilirken, harita mavi renkle tüm kapsayıcıyı doldurmaya devam eder. Bu örnekte, harita kontrollerini gizlemeden bir menüyü haritanın sağ üzerinde kaydırabilirsiniz.
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;
Harita renk şeması
Normal ve arazi türündeki haritalar için harita renk şemasını koyu, açık veya geçerli sistem ayarlarını kullanacak şekilde ayarlayabilirsiniz. Örneğin, günün saatine veya cihazın iç ya da dış mekan kullanımına göre haritanın renk şemasını koyulaştırabilir veya açıklayabilirsiniz.
Harita renk şemasını ayarlamak ve güncellemek için GMSMapView
overrideUserInterfaceStyle:
aracını 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;