Sınırlar için veriye dayalı stil kullanmak istiyorsanız harita kimliği oluşturmanız gerekir. Sonra, yeni bir harita stili oluşturmalı, gereken sınır özellik katmanlarını seçmeli ve stili harita kimliğinizle ilişkilendirin.
Harita kimliği oluşturma
mapID, tek bir Google Haritası örneği. Harita kimlikleri oluşturabilir ve bir stili güncelleyebilirsiniz istediğiniz zaman Google Cloud Console'da bir harita kimliğiyle ilişkilendirilmesini sağlayabilirsiniz.
Yeni harita stili oluşturma
Yeni bir harita stili oluşturmak için Haritayı yönetme stil oluşturun emin olabilirsiniz. İş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 Haritada hangi tür sınırların gösterileceğini belirler (örneğin, şehirler, eyaletler vb.) gösterilir.
Özellik katmanlarını yönetme
Google Cloud Console'da Harita Stilleri'ne gidin. sayfa
İstenirse bir 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 özelliğe sahip bir stille ilişkilendirilmiş olmasını gerektirir katmanlar etkinleştirildi. Harita kimliğinizin Cloud Console'un nasıl yapılandırıldığını Haritalar'da inceleyin. Yönetim.
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 şu numarayı arayın:
Harita ilk kullanıma sunulduğunda mapView.featureLayer(of:)
:
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,
bir harita kimliğiyle ilişkilendirildiğinden emin olun. 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.
Ayrıca,
GMSViewDelegate
. Bu örnekte,
protokolü kullanmanız gerekir.
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