지도 및 스타일 데이터 세트에 데이터 세트 추가

플랫폼 선택: Android iOS JavaScript

이 페이지에서는 지도에 데이터 세트를 추가하고 스타일을 적용하는 방법을 설명합니다.

스타일이 지정된 다각형 데이터를 보여주는 스크린샷

기본 요건

먼저, 지도 ID와 지도 스타일, 데이터 세트 ID가 있어야 합니다.

데이터 세트 ID와 지도 스타일 연결

데이터 세트의 지형지물의 스타일을 지정하려면 스타일 함수를 데이터 세트 지형지물 레이어를 만듭니다. 데이터 세트 지형지물 레이어는 데이터 세트를 지도 스타일과 연결

데이터 세트를 지도 스타일과 연결하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 데이터 세트 페이지로 이동합니다.
  2. 데이터 세트의 이름을 클릭합니다. 데이터 세트 세부정보 페이지가 나타납니다.
  3. 미리보기 탭을 클릭합니다.
  4. 연결된 지도 스타일 섹션에서 지도 스타일 추가를 클릭합니다.
    '지도 스타일 추가' 버튼의 스크린샷
  5. 연결할 지도 스타일의 체크박스를 클릭한 다음 저장을 클릭합니다.

데이터 세트에 스타일 적용

데이터 세트에 스타일을 적용하려면 다음 안내를 따르세요.

  1. 다음을 구현하는 스타일 팩토리 함수를 생성합니다. FeatureLayer.StyleFactory 드림 인터페이스에 추가되었습니다. 이 함수는 데이터 세트의 스타일 지정 로직을 정의합니다.

  2. 전화걸기 FeatureLayer.setFeatureStyle() 드림 데이터 세트의 각 지형지물에 스타일 팩토리 함수를 적용합니다.

스타일 팩토리 함수 만들기

데이터 세트의 모든 지형지물에 적용되는 스타일 팩토리 함수 레이어에 있어야 합니다. 이 함수는 FeatureStyle 반환 객체를 정의합니다.

스타일 팩토리가 null를 반환하면 지정된 지형지물은 렌더링되지 않습니다. 자세한 내용은 자세한 내용은 레이어에서 스타일 지정 삭제를 참고하세요.

Android용 Maps SDK는 Feature 드림 인스턴스를 스타일 팩토리 함수에 추가합니다. Feature 인스턴스는 스타일 팩토리의 메타데이터에 액세스할 수 있는 지형지물의 메타데이터 함수를 사용하세요.

스타일 팩토리 함수는 적용됩니다. 예를 들어 일련의 특성에 무작위로 색상을 지정하려면 임의의 부분은 지형지물 스타일 함수에서 발생하지 않아야 합니다. 의도하지 않은 결과가 발생할 수 있습니다.

이 함수는 레이어의 모든 지형지물에 대해 실행되므로 최적화가 중요합니다. 렌더링 시간에 영향을 주지 않으려면 다음을 호출합니다. FeatureLayer.setFeatureStyle(null) - 지형지물 레이어가 더 이상 사용되지 않는 경우

FeatureLayer.getDatasetId()를 호출하여 데이터 세트의 ID를 가져올 수도 있습니다.

획, 채우기, 점 반경 설정

스타일 팩토리 함수에서 지형지물의 스타일을 지정할 때 다음을 설정할 수 있습니다.

  • 경계선의 획 색상 및 불투명도Color 클래스에 대해 자세히 알아보세요. 기본값은 투명입니다 (Color.TRANSPARENT).

  • 테두리의 획 너비(화면 픽셀) 기본값은 2입니다.

  • 채우기 색상 및 불투명도Color 클래스에 대해 자세히 알아보세요. 기본값은 투명입니다 (Color.TRANSPARENT).

  • 0~128픽셀 사이의 점 지형지물의 점 반경입니다.

간단한 스타일 규칙 사용

지형지물의 스타일을 지정하는 가장 간단한 방법은 FeatureLayer.StyleFactory를 정의하는 것입니다. 이 객체는 대상과 상관없이 항상 동일한 FeatureStyle 객체를 빌드합니다. 기능을 사용할 수 있습니다. 데이터 세트 지형지물 레이어에 지형지물 스타일 옵션을 직접 적용하거나 이를 FeatureStyleFunction와 함께 사용하면 됩니다.

선언적 스타일 규칙 사용

지형지물 속성에 따라 선언적으로 스타일 규칙을 설정할 수 있습니다. 전체 데이터 세트에 적용할 수 있습니다 다음에서 null을(를) 반품할 수 있습니다. 지형지물 스타일 함수(예: 지형지물의 하위 집합을 유지하려는 경우) 보이지 않습니다.

예를 들어 DatasetFeature.getDatasetAttributes() 메서드를 사용하여 지형지물에 대한 데이터 세트 속성의 Map<String,String>입니다. 그런 다음 속성을 기준으로 지형지물의 스타일을 맞춤설정할 수 있습니다.

이 예에서는 'highlightColor'의 값을 결정합니다. 속성을 데이터 세트의 특성을 사용하여 스타일 지정을 제어할 수 있습니다.

Kotlin

// Get the dataset feature, so we can work with all of its attributes.
val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }

자바

// Get the dataset feature, so we can work with all of its attributes.
DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }

데이터 세트 지형지물 레이어에 스타일 적용

이 예에서는 데이터 세트의 다각형에 스타일 팩토리 함수를 적용합니다. 지형지물 레이어입니다. 스타일 팩토리 함수는 맞춤 채우기 및 획 스타일을 적용합니다. 폴리곤에 다음과 같이 추가합니다.

  1. 아직 시작하지 않았다면 다음 단계를 따르세요. 시작하기 새 지도 ID와 지도 스타일을 만듭니다. 데이터 세트를 사용 설정해야 합니다. 지형지물 레이어입니다.

  2. 지도가 초기화될 때 데이터 세트 지형지물 레이어에 대한 참조를 가져옵니다.

    Kotlin

    private var datasetLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
    // Apply style factory function to DATASET layer. styleDatasetsLayer() }

    자바

    private FeatureLayer datasetLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
    // Apply style factory function to DATASET layer. styleDatasetsLayer(); }

  3. 스타일 팩토리 함수를 만들어 데이터 세트에 적용 지형지물 레이어입니다.

    다음 예에서는 모든 지형지물에 동일한 채우기와 획을 적용합니다. 데이터 세트입니다.

    Kotlin

    private fun styleDatasetsLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
    return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
    // Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }

    자바

    private void styleDatasetsLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
    return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2F) .build(); } return null; };
    // Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

레이어에서 스타일 지정 삭제

레이어에서 스타일 지정을 삭제하려면 FeatureLayer.setFeatureStyle(null)를 호출합니다.

예를 들어 다음과 같이 스타일 팩토리에서 null를 반환할 수도 있습니다. 표시되지 않도록 할 수 있습니다.