Haritaya veri kümesi ekleme

Platform seçin: Android iOS JavaScript

FeatureStyleFunction, bir veri kümesindeki özellikleri seçerek biçimlendirmek için mantığı tanımladığınız yerdir. Bu mantıka göre FeatureStyleOptions döndürür. Stil mantığı gerekli değilse stilleri doğrudan ayarlamak için FeatureStyleOptions öğesini kullanabilirsiniz. Bu sayfada, bir haritaya veri kümesi ekleme ve stil uygulama işlemleri gösterilmektedir.

Ön koşullar

Devam etmeden önce bir harita kimliğiniz, harita stiliniz ve veri kümesi kimliğiniz olmalıdır.

Veri kümesi kimliğini harita stiliyle ilişkilendirme

Veri kümenizi kullandığınız harita stiliyle ilişkilendirmek için aşağıdaki adımları uygulayın:

  1. Google Cloud Console'da Veri kümeleri sayfasına gidin.
  2. Veri kümesinin adını tıklayın. Veri kümesi ayrıntıları sayfası görüntülenir.
  3. Önizleme sekmesini tıklayın.
  4. MAP STYLE EKLE'ye gidip tıklayın.
    HARİTA STİLİNİ EKLE düğmesinin ekran görüntüsü.
  5. İlişkilendirilecek harita stillerinin onay kutularını ve ardından KAYDET'i tıklayın.

Basit stil kuralları kullanın

Özelliklere stil uygulamanın en basit yolu, renk, opaklık ve çizgi kalınlığı gibi stil özelliklerini tanımlamak için bir FeatureStyleOptions göndermektir. Özellik stili seçeneklerini doğrudan bir veri kümesi özellik katmanına uygulayın veya bir FeatureStyleFunction ile birlikte kullanın.

TypeScript

const styleOptions = {
    strokeColor: 'green',
    strokeWeight: 2,
    strokeOpacity: 1,
    fillColor: 'green',
    fillOpacity: 0.3,
};

JavaScript

const styleOptions = {
  strokeColor: "green",
  strokeWeight: 2,
  strokeOpacity: 1,
  fillColor: "green",
  fillOpacity: 0.3,
};

Beyan stil kurallarını kullanma

Stil kurallarını açık bir şekilde ayarlamak ve veri kümenizin tamamına uygulamak için FeatureStyleFunction öğesini kullanın. Veri kümesi özellik değerlerine göre bir özelliğe FeatureStyleOptions uygulayın. Örneğin, bir özellik alt kümesinin görünmez kalmasını istiyorsanız özellik stili işlevinizden null değerini de döndürebilirsiniz. Bu örnekte, bir nokta grubunu veri özelliklerine göre renklendiren bir stil işlevi gösterilmektedir:

TypeScript

function setStyle(/* FeatureStyleFunctionOptions */ params) {
    // Get the dataset feature, so we can work with all of its attributes.
    const datasetFeature = params.feature;
    // Get all of the needed dataset attributes.
    const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor'];

    // Apply styles. Fill is primary fur color, stroke is secondary fur color.
    switch (furColors) {
        case 'Black+':
            return /* FeatureStyleOptions */ { fillColor: 'black', pointRadius: 8 };
            break;
        case 'Cinnamon+':
            return /* FeatureStyleOptions */ { fillColor: '#8b0000', pointRadius: 8 };
            break;
        case 'Cinnamon+Gray':
            return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6 };
            break;
        case 'Cinnamon+White':
            return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6 };
            break;
        case 'Gray+':
            return /* FeatureStyleOptions */ { fillColor: 'gray', pointRadius: 8 };
            break;
        case 'Gray+Cinnamon':
            return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6 };
            break;
        case 'Gray+Cinnamon, White':
            return /* FeatureStyleOptions */ { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6 };
            break;
        case 'Gray+White':
            return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: 'white', pointRadius: 6 };
            break;
        default: // Color not defined.
            return /* FeatureStyleOptions */ { fillColor: 'yellow', pointRadius: 8 };
            break; 
    }
}

JavaScript

function setStyle(/* FeatureStyleFunctionOptions */ params) {
  // Get the dataset feature, so we can work with all of its attributes.
  const datasetFeature = params.feature;
  // Get all of the needed dataset attributes.
  const furColors =
    datasetFeature.datasetAttributes["CombinationofPrimaryandHighlightColor"];

  // Apply styles. Fill is primary fur color, stroke is secondary fur color.
  switch (furColors) {
    case "Black+":
      return /* FeatureStyleOptions */ { fillColor: "black", pointRadius: 8 };
      break;
    case "Cinnamon+":
      return /* FeatureStyleOptions */ { fillColor: "#8b0000", pointRadius: 8 };
      break;
    case "Cinnamon+Gray":
      return /* FeatureStyleOptions */ {
        fillColor: "#8b0000",
        strokeColor: "gray",
        pointRadius: 6,
      };
      break;
    case "Cinnamon+White":
      return /* FeatureStyleOptions */ {
        fillColor: "#8b0000",
        strokeColor: "white",
        pointRadius: 6,
      };
      break;
    case "Gray+":
      return /* FeatureStyleOptions */ { fillColor: "gray", pointRadius: 8 };
      break;
    case "Gray+Cinnamon":
      return /* FeatureStyleOptions */ {
        fillColor: "gray",
        strokeColor: "#8b0000",
        pointRadius: 6,
      };
      break;
    case "Gray+Cinnamon, White":
      return /* FeatureStyleOptions */ {
        fillColor: "silver",
        strokeColor: "#8b0000",
        pointRadius: 6,
      };
      break;
    case "Gray+White":
      return /* FeatureStyleOptions */ {
        fillColor: "gray",
        strokeColor: "white",
        pointRadius: 6,
      };
      break;
    default: // Color not defined.
      return /* FeatureStyleOptions */ { fillColor: "yellow", pointRadius: 8 };
      break;
  }
}

Veri kümesi özellik katmanına stil uygulama

Özellik stili işlevindeki stilleri uygulamak için:

  1. Veri kümesi kimliğini ileterek map.getDatasetFeatureLayer() çağrısını yaparak veri kümesi özellik katmanını alın.
  2. Veri kümesi katmanında özellik stili seçeneklerini (ör. styleOptions) veya işlevi (ör. setStyle) ayarlayarak stili uygulayın.

TypeScript

const datasetLayer = map.getDatasetFeatureLayer(datasetId);
datasetLayer.style = styleOptions;

JavaScript

const datasetLayer = map.getDatasetFeatureLayer(datasetId);

datasetLayer.style = styleOptions;

Katmandan stili kaldırma

Bir katmandan stili kaldırmak için stylenull olarak ayarlayın:

featureLayer.style = null;

Örneğin, bir özellik alt kümesinin görünmez kalmasını istiyorsanız özellik stili işlevinizden null döndürebilirsiniz.

İlişkilendirme metni ekleme

Yüklenen veri kümelerini Google Haritalar'da görüntülerken haritanızda gerekli tüm ilişkilendirmeler gösterilmelidir. İlişkilendirme metni, Google logosunu gizlememeli veya engellememelidir.

İlişkilendirme metni eklemenin bir yolu, haritadaki standart konumlara rastgele HTML yerleştirmek için özel kontrolleri kullanmaktır. Aşağıdaki kod örneğinde, programlı olarak bu tür bir özel denetim oluşturan bir işlev gösterilmektedir:

TypeScript

function createAttribution(map) {
    const attributionLabel = document.createElement('div');
    // Define CSS styles.
    attributionLabel.style.backgroundColor = '#fff';
    attributionLabel.style.opacity = '0.7';
    attributionLabel.style.fontFamily = 'Roboto,Arial,sans-serif';
    attributionLabel.style.fontSize = '10px';
    attributionLabel.style.padding = '2px';
    attributionLabel.style.margin = '2px';
    attributionLabel.textContent = 'Data source: NYC Open Data';
    return attributionLabel;
}

JavaScript

function createAttribution(map) {
  const attributionLabel = document.createElement("div");

  // Define CSS styles.
  attributionLabel.style.backgroundColor = "#fff";
  attributionLabel.style.opacity = "0.7";
  attributionLabel.style.fontFamily = "Roboto,Arial,sans-serif";
  attributionLabel.style.fontSize = "10px";
  attributionLabel.style.padding = "2px";
  attributionLabel.style.margin = "2px";
  attributionLabel.textContent = "Data source: NYC Open Data";
  return attributionLabel;
}

Kontrol tanımlandıktan sonra, burada gösterildiği gibi başlatma sırasında haritaya ekleyebilirsiniz:

TypeScript

// Create an attribution DIV and add the attribution to the map.
const attributionDiv = document.createElement('div');
const attributionControl = createAttribution(map);
attributionDiv.appendChild(attributionControl);
map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(attributionDiv);

JavaScript

// Create an attribution DIV and add the attribution to the map.
const attributionDiv = document.createElement("div");
const attributionControl = createAttribution(map);

attributionDiv.appendChild(attributionControl);
map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(attributionDiv);