지도 스타일 지정

플랫폼 선택: Android iOS JavaScript

이 가이드에서는 지도에 표시되는 지도를 맞춤설정할 수 있는 방법을 설명합니다. 여행 중에 Android 앱을 사용할 때. 이미지, 이미지, 오디오, 동영상을 지도를 다음과 같이 변경합니다.

클라우드 기반 지도 스타일 지정으로 지도 스타일 지정

클라우드 기반 지도를 사용하여 지도 구성요소의 디자인 맞춤설정 제공합니다. Google Cloud 콘솔에서 원하는 지도 스타일을 만들고 수정할 수 있습니다. 할 수 있습니다. 자세한 내용은 클라우드 기반 지도 스타일 지정

그리고 ConsumerMapView 드림 및 ConsumerMapFragment 클래스는 클라우드 기반 지도 스타일 지정을 지원합니다. 클라우드 기반 지도 스타일 지정을 사용하려면 선택한 지도가 렌더기는 LATEST입니다. 다음 섹션에서는 클라우드 기반 지도 스타일 지정 기능을 프로젝트에 사용할 수 있습니다.

ConsumerMapView

ConsumerMapView에서 클라우드 기반 지도 스타일 지정을 사용하려면 GoogleMapOptionsmapId 필드로 대체되고 GoogleMapOptionsgetConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) or getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions)

자바

public class SampleAppActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ConsumerMapView mapView = findViewById(R.id.consumer_map_view);

    if (mapView != null) {
      GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
      mapView.getConsumerGoogleMapAsync(
          new ConsumerMapReadyCallback() {
            @Override
            public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
              // ...
            }
          },
          /* fragmentActivity= */ this,
          /* googleMapOptions= */ optionsWithMapId);
    }
  }
}

Kotlin

class SampleAppActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val mapView = findViewById(R.id.consumer_map_view) as ConsumerMapView

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    mapView.getConsumerGoogleMapAsync(
      object : ConsumerGoogleMap.ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      },
      /* fragmentActivity= */ this,
      /* googleMapOptions= */ optionsWithMapId)
  }
}

ConsumerMapFragment

다음 두 가지 방법으로 클라우드 기반 지도 스타일 지정을 사용할 수 있습니다. ConsumerMapFragments:

  • 정적으로 XML을 사용합니다.
  • newInstance를 사용하여 동적으로

XML을 사용하여 정적으로

ConsumerMapFragment, map:mapId XML 속성을 mapId입니다. 아래 예를 참고하세요.

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
    android:id="@+id/consumer_map_fragment"
    map:mapId="map-id"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

newInstance를 사용하여 동적으로

다음에서 newInstance로 클라우드 기반 지도 스타일 지정을 사용하려면 다음 단계를 따르세요. ConsumerMapFragment: GoogleMapOptionsmapId 필드를 설정하고 GoogleMapOptions에서 newInstance(으)로 아래 예를 참고하세요.

자바

public class SampleFragmentJ extends Fragment {

  @Override
  public View onCreateView(
      @NonNull LayoutInflater inflater,
      @Nullable ViewGroup container,
      @Nullable Bundle savedInstanceState) {

    final View view = inflater.inflate(R.layout.consumer_map_fragment, container, false);

    GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
    ConsumerMapFragment consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId);

    getParentFragmentManager()
        .beginTransaction()
        .add(R.id.consumer_map_fragment, consumerMapFragment)
        .commit();

    consumerMapFragment.getConsumerGoogleMapAsync(
        new ConsumerMapReadyCallback() {
          @Override
          public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
            // ...
          }
        });

    return view;
  }
}

Kotlin

class SampleFragment : Fragment() {
  override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?): View? {

    val view = inflater.inflate(R.layout.consumer_map_fragment, container, false)

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    val consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId)

    parentFragmentManager
      .beginTransaction()
      .add(R.id.consumer_map_fragment, consumerMapFragment)
      .commit()

    consumerMapFragment.getConsumerGoogleMapAsync(
      object : ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      })

    return view
  }
}

여행에 초점을 맞추도록 카메라 확대/축소를 조정하세요.

여행 공유 세션이 진행되는 동안 카메라 확대/축소와 다음 두 가지 방법 중 하나로 집중합니다.

  • AutoCamera: AutoCamera를 사용하려는 경우에는 무엇이든 할 수 있습니다. 카메라가 경로를 따라갑니다. 자세한 내용은 AutoCamera를 참고하세요.

  • 카메라 동작 맞춤설정: 카메라 동작을 맞춤설정하려면 AutoCamera를 사용 중지한 다음 이를 맞춤설정해야 합니다. 자세한 내용은 카메라 동작 맞춤설정을 참고하세요.

AutoCamera에서 카메라의 중심을 맞추세요.

소비자 SDK는 기본적으로 사용 설정되는 AutoCamera 기능을 제공합니다. Maps SDK에 내장된 내 위치 버튼에서 찾을 수 있습니다. 카메라가 다음으로 확대/축소합니다. 경로 공유 경로와 다음 이동 경유지에 초점을 맞춥니다.

AutoCamera을(를) 사용하려면 사용 설정해야 합니다. 자세한 내용은 isAutoCameraEnabled를 참조하세요.

`AutoCamera`

내 위치 버튼에 대한 자세한 내용은 다음을 참고하세요. 내 위치 버튼 Maps JavaScript API 문서에서 확인할 수 있습니다.

카메라 동작 맞춤설정

카메라 동작을 더욱 세밀하게 제어하려면 다음 단계에 따라 사용 중지하세요. AutoCamera하고 카메라 동작을 수동으로 맞춤설정합니다.

  1. ConsumerController.setAutoCameraEnabled()를 사용하여 AutoCamera를 사용 중지합니다.

  2. ConsumerController.getCameraUpdate()를 사용하여 권장 카메라 경계를 가져옵니다.

  3. CameraUpdate를 다음 Android 함수 중 하나에 인수로 제공합니다.

다음 단계

Android에서 여행 팔로우하기