Sınırlar için veriye dayalı stil kullanmak istiyorsanız harita kimliği oluşturmanız gerekir. Daha sonra, yeni bir harita stili oluşturmalı, gereken sınır özellik katmanlarını seçmeli ve stili harita kimliğinizle ilişkilendirmelisiniz.
Harita kimliği oluşturma
mapID, bir Google Haritası'nın tek bir örneğini temsil eden benzersiz bir tanımlayıcıdır. Google Cloud Console'da istediğiniz zaman harita kimlikleri oluşturabilir ve harita kimliğiyle ilişkili bir stili güncelleyebilirsiniz.
Yeni harita stili oluşturma
Yeni bir harita stili oluşturmak için, stili oluşturmak üzere Harita stillerini yönetme bölümündeki talimatları izleyin. İşlem tamamlandığında stili yeni oluşturulan harita kimliğiyle ilişkilendirin.
Özellik katmanlarını seçin
Google Cloud Console'da hangi özellik katmanlarının gösterileceğini seçebilirsiniz. Bu, harita üzerinde ne tür sınırların görüneceğini belirler (örneğin, yerler, eyaletler vb.).
Özellik katmanlarını yönetme
Google Cloud Console'da Harita Stilleri sayfasına gidin.
İstenirse proje seçin.
Harita stili seçin.
Katman eklemek veya kaldırmak için Özellik katmanları açılır menüsünü tıklayın.
Değişikliklerinizi kaydetmek ve haritalarınızda kullanılabilir hale getirmek için Kaydet'i tıklayın.
Harita başlatma kodunuzu güncelleme
Bu adım, harita kimliğinin bir veya daha fazla özellik katmanının etkinleştirildiği bir stille ilişkilendirilmesini gerektirir. Harita kimliğinizin Cloud Console'da doğru şekilde ayarlandığını doğrulamak için Haritalar Yönetimi altında nasıl yapılandırıldığını inceleyin.
Swift
// A map ID using a style with one or more feature layers enabled let mapID = GMSMapID(identifier: "YOUR_MAP_ID") let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))
Objective-C
// A map ID using a style with one or more feature layers enabled GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];
Haritaya özellik katmanları ekleme
Haritanızdaki bir özellik katmanına referans almak için harita ilk kullanıma sunulduğunda mapView.featureLayer(of:)
numaralı telefonu arayın:
Swift
let layer = mapView.featureLayer(of: .locality)
Objective-C
GMSFeatureLayer*layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];
Harita özelliklerini kontrol edin
Sınırlar için veriye dayalı stil, Google Cloud Console'da etkinleştirilen ve bir harita kimliğiyle ilişkilendirilmiş özellikler gerektirir. Harita kimlikleri değişebileceği için, belirli bir özelliğin (ör. veriye dayalı stil) çağrılmadan önce kullanılabilir olup olmadığını doğrulamak için GMSMapView
üzerinde mapView.mapCapabilities
yöntemini çağırabilirsiniz.
GMSViewDelegate
abonesi olarak da harita özelliklerindeki değişiklikleri tespit edebilirsiniz. Bu örnekte, veriye dayalı stil şartlarını kontrol etmek için protokolün nasıl kullanılacağı gösterilmektedir.
Swift
class SampleViewController: UIViewController { private lazy var mapView: GMSMapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)) override func loadView() { self.view = mapView mapView.delegate = self } } extension SampleViewController: GMSMapViewDelegate { func mapView(_ mapView: GMSMapView, didChange mapCapabilities: GMSMapCapabilityFlags) { if (!mapCapabilities.contains(.dataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } }
Objective-C
@interface SampleViewController: UIViewController <GMSMapViewDelegate> @end @implementation SampleViewController - (void)loadView { GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]]; mapView.delegete = self; self.view = mapView; } - (void)mapView:(GMSMapView *)mapView didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities { if (!(mapCapabilities & GMSMapCapabilityFlagsDataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } @end