В этом руководстве рассказывается, как задать стиль карты, которая показывается в приложении для iOS во время поездки.
Подготовка
Прежде чем настраивать стиль карты, убедитесь, что в вашем приложении для пользователей реализованы следующие функции:
Карта. Подробнее о том, как инициализировать вид карты…
Способ обработки событий представления карты. Подробнее о том, как обрабатывать события просмотра карты…
Вам также необходимо настроить бэкенд-службы, которые нужны Consumer SDK, и саму Consumer SDK. Подробнее о том, как настроить Consumer SDK и что такое Fleet Engine…
Настройки карт
Доступны следующие настройки:
Настройка стиля карты. Вы можете настраивать цвета, ломаные линии и другие объекты карты с помощью облачных стилей карт. Подробнее о том, как задать стиль карты…
Настройте масштаб камеры. Вы можете использовать встроенную функцию или задать собственные параметры камеры, чтобы сосредоточиться на поездке. Подробнее о том, как настроить масштаб камеры, чтобы сосредоточиться на поездке…
Настраивайте маркеры и ломаные линии. Вы можете добавить в дизайн приложения собственные маркеры и ломаные линии маршрутов. Эти элементы дизайна позволяют приложению для потребителей показывать динамический предварительный просмотр маршрута автомобиля. Подробнее о том, как настроить маркеры и как настроить ломаные линии…
SDK предоставляет эти варианты через свойство
consumerMapStyleCoordinator. Это свойство доступно через классGMTCMapView.
Как настроить стиль карты с помощью облачных стилей карт
Настройте внешний вид компонента карты с помощью облачных стилей карт. Создавать и изменять стили карт для приложений, использующих Google Карты, можно в Google Cloud Console. При этом не нужно вносить изменения в код. Чтобы узнать больше, выберите платформу в разделе Облачные стили карт.
Классы ConsumerMapView и ConsumerMapFragment поддерживают облачные стили карт.
Чтобы использовать облачные стили карт, убедитесь, что выбран модуль визуализации карт LATEST. В следующих разделах приведены примеры использования облачных стилей карт в проекте.
ConsumerMapView
Чтобы использовать облачные стили карт в ConsumerMapView, задайте поле mapId в GoogleMapOptions и передайте GoogleMapOptions в getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) или getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions).
Пример
Java
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
В ConsumerMapFragment можно использовать облачные стили карт двумя способами:
- Статически с помощью XML.
- Динамически с помощью
newInstance.
Статически с помощью XML-кода
Чтобы использовать облачные стили карт с XML в ConsumerMapFragment, добавьте атрибут XML map:mapId с указанным 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, задайте поле mapId в GoogleMapOptions и передайте GoogleMapOptions в newInstance. Вот пример:
Java
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 центрирует камеру по умолчанию
В Consumer SDK есть функция AutoCamera, которая по умолчанию включена для встроенной кнопки Мое местоположение в Maps SDK. Камера приближается, чтобы сфокусироваться на маршруте и следующей путевой точке.
Если вы хотите использовать AutoCamera, убедитесь, что он включен. Подробную информацию можно найти в статье allowCameraAutoUpdate.

Подробную информацию о кнопке Мое местоположение в Maps SDK можно найти в разделе Кнопка "Мое местоположение" документации по Maps SDK для iOS.
Настройка поведения камеры
Чтобы настроить поведение камеры, отключите AutoCamera.
Отключить или включить функцию "AutoCamera" можно с помощью свойства AllowCameraAutoUpdate.
Дополнительные сведения о настройке камеры можно найти в разделе Перемещение камеры документации по Maps SDK для iOS.
Дальнейшие действия
Как отслеживать поездку на устройстве iOS