Sınırlar için veriye dayalı stili kullanmak istiyorsanız bir harita kimliği oluşturmanız gerekir. Ardından, yeni bir harita stili oluşturmanız, gerekli sınır özellik katmanlarını seçmeniz ve stili harita kimliğinizle ilişkilendirmeniz gerekir.
Harita kimliği oluşturma
mapID, bir Google Haritası örneğini temsil eden benzersiz bir tanımlayıcıdır. Google Cloud Console'da dilediğiniz zaman harita kimlikleri oluşturabilir ve bir harita kimliğiyle ilişkili stili güncelleyebilirsiniz.
Yeni harita stili oluşturma
Yeni bir harita stili oluşturmak için Harita stillerini yönetme bölümündeki talimatları uygulayın. İşlem tamamlandığında stili yeni oluşturulan harita kimliğiyle ilişkilendirin.
Özellik katmanlarını seçme
Google Cloud Console'da hangi özellik katmanlarının gösterileceğini seçebilirsiniz. Bu, haritada hangi tür sınırların (ör. yerleşim birimleri, eyaletler vb.) gösterileceğini belirler.
Özellik katmanlarını yönetme
Google Cloud Console'da Harita Stilleri sayfasına gidin.
İstenirse bir proje seçin.
Bir harita stili seçin.
Katman eklemek veya kaldırmak için Özellik katmanları açılır listesini tıklayın.
Değişikliklerinizi kaydetmek ve haritalarınızda kullanılabilir hale getirmek için Kaydet'i tıklayın.
Harita ilk başlatma kodunuzu güncelleme
Bu adımda, bir harita kimliğinin bir veya daha fazla özellik katmanı etkin olan bir stil ile ilişkilendirilmesi gerekir. Harita kimliğinizin Cloud Console'da doğru şekilde ayarlandığını doğrulamak için Haritalar Yönetimi bölümünde 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 başlatılırken mapView.featureLayer(of:)
işlevini çağırın:
Swift
let layer = mapView.featureLayer(of: .locality)
Objective-C
GMSFeatureLayer*layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];
Harita özelliklerini kontrol etme
Sınırlar için veri odaklı stil, Google Cloud Console'da etkinleştirilen ve bir harita kimliğiyle ilişkilendirilen özellikler gerektirir. Harita kimlikleri değişebileceğinden, belirli bir özelliği (ör. veri odaklı stil) çağırmadan önce kullanılabilir olup olmadığını doğrulamak için GMSMapView
üzerinde mapView.mapCapabilities
çağırabilirsiniz.
GMSViewDelegate
listesine abone olarak da harita özelliklerindeki değişiklikleri algılayabilirsiniz. Bu örnekte, veri odaklı stil gereksinimlerini 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