Başlangıç

Platform seçin: Android iOS JavaScript

Sınırlar için veri odaklı stil özelliğini 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, Google Haritalar'ın tek bir ö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.

Google Cloud Console'un ekran görüntüsü

Yeni bir 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 yerleri, eyaletler vb.) görüneceğini belirler.

Özellik katmanlarını yönetme

  1. Google Cloud Console'da Harita Stilleri sayfasına gidin.

  2. İstenirse bir proje seçin.

  3. Harita stili seçin.

  4. Katman eklemek veya kaldırmak için Özellik katmanları açılır menüsünü tıklayın.

  5. Değişikliklerinizi kaydetmek ve haritalarınızda kullanılabilir hale getirmek için Kaydet'i tıklayın.

Açılır menüyü gösteren ekran görüntüsü.

Harita başlatma kodunuzu güncelleme

Bu adımda, bir veya daha fazla özellik katmanı etkinleştirilmiş bir stille ilişkilendirilmiş bir harita kimliği gerekir. Harita kimliğinizin Cloud Console'da doğru şekilde ayarlandığını doğrulamak için Harita 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 camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
let options = GMSMapViewOptions()
options.camera = camera
options.mapID = mapID
let mapView = GMSMapView(options: options)

Objective-C

// A map ID using a style with one or more feature layers enabled

GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
options.mapID = mapID;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Haritaya özellik katmanları ekleme

Haritanızdaki bir özellik katmanına referans almak için harita başlatıldığında mapView.featureLayer(of:) yöntemini ç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ğin (ör. veri odaklı stil) kullanılabilir olup olmadığını doğrulamak için GMSMapView üzerinde mapView.mapCapabilities yöntemini çağırabilirsiniz.

GMSViewDelegate'na abone olarak harita özelliklerindeki değişiklikleri de tespit edebilirsiniz. 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 = {
    let options = GMSMapViewOptions()
    options.mapID = GMSMapID(identifier: "YOUR_MAP_ID")
    options.camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
    return GMSMapView(options: options)
  }()

  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 {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  options.mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.delegate = 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