Başlarken

Platform seçin: iOS JavaScript

Sınırlar için veriye dayalı stil kullanmak istiyorsanız harita kimliği oluşturmanız gerekir. Ardından, yeni bir harita stili oluşturmanız, gerekli sınır özelliği katmanlarını seçmeniz ve stili harita kimliğinizle ilişkilendirmeniz gerekir.

Harita kimliği oluşturun

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.

Google Cloud konsolunun ekran görüntüsü,

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çin

Google Cloud Console'da hangi özellik katmanlarının gösterileceğini seçebilirsiniz. Bu işlem, harita üzerinde ne tür sınırların (ör. şehirler, eyaletler vb.) gösterileceğini belirler.

Özellik katmanlarını yönetin

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

  2. İstenirse bir proje seçin.

  3. Bir harita stili seçin.

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

  5. Yaptığınız değişiklikleri kaydetmek ve haritalarınızda kullanılabilir hale getirmek için Kaydet'i tıklayın.

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

Harita ilk kullanıma hazırlama 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 bölümünde harita kimliğinin 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ının referansını almak için, harita ilk kullanıma hazırlandığında mapView.featureLayer(of:) çağrısı yapı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şkilendirilen özellikler gerektirir. Harita kimlikleri değişebileceğinden, belirli bir özelliği (örneğin, veriye dayalı stil) çağırmadan önce kullanılabilir olup olmadığını doğrulamak için GMSMapView üzerinde mapView.mapCapabilities yöntemini çağırabilirsiniz.

Ayrıca, GMSViewDelegate'e abone olarak harita özelliklerindeki değişiklikleri tespit edebilirsiniz. Bu örnek, veriye dayalı stil koşullarını kontrol etmek için protokolün nasıl kullanılacağını gösterir.

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