Bu kılavuzda, bir geziyi takip ederken Android uygulamanızda gösterilen haritayı özelleştirme yöntemleri açıklanmaktadır. Haritanın görünümünü ve tarzını aşağıdaki şekillerde özelleştirebilirsiniz:
- Bulut tabanlı harita stilleriyle haritayı stillendirme
- Kamerayı geziye odaklanacak şekilde ayarlama
- İşaretçileri özelleştirme
- Çoklu çizgileri özelleştirme
Haritayı bulut tabanlı harita stilleriyle biçimlendirme
Bulut tabanlı harita stillerini kullanarak harita bileşeninin görünümünü ve tarzını özelleştirin. Google Haritalar'ı kullanan uygulamalarınız için Google Cloud Console'da harita stilleri oluşturup düzenleyebilirsiniz. Bu işlem için kodunuzda herhangi bir değişiklik yapmanız gerekmez. Daha fazla bilgi için Bulut tabanlı harita stilleri sayfasında platformunuzu seçin.
Hem ConsumerMapView hem de ConsumerMapFragment sınıfları bulut tabanlı harita stillerini destekler.
Bulut tabanlı harita stillerini kullanmak için seçilen harita oluşturucunun LATEST olduğundan emin olun. Aşağıdaki bölümlerde, projenizde bulut tabanlı harita stillerinin nasıl kullanılacağına dair örnekler gösterilmektedir.
ConsumerMapView
ConsumerMapView içinde bulut tabanlı harita stillerini kullanmak için GoogleMapOptions üzerinde mapId alanını ayarlayın ve GoogleMapOptions değerini getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) veya getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions) yöntemine iletin.
Örnek
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
ConsumerMapFragments'ta bulut tabanlı harita stillerini kullanmanın iki yolu vardır:
- XML ile statik olarak.
newInstanceile dinamik olarak.
XML ile statik olarak
ConsumerMapFragment içinde XML ile bulut tabanlı harita stillerini kullanmak için belirtilen mapId ile map:mapId XML özelliğini ekleyin. Aşağıdaki örneğe bakın:
<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 ile dinamik olarak
ConsumerMapFragment içinde newInstance ile bulut tabanlı harita stillerini kullanmak için GoogleMapOptions üzerinde mapId alanını ayarlayın ve GoogleMapOptions değerini newInstance değerine iletin. Aşağıdaki örneğe bakın:
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
}
}
Kamera yakınlaştırmasını bir geziye odaklanacak şekilde ayarlama
Etkin bir gezi paylaşımı oturumu sırasında, kamera yakınlaştırma ve odaklama işlemlerini iki şekilde yapabilirsiniz:
AutoCamera:AutoCamerakullanmak istiyorsanız herhangi bir işlem yapmanız gerekmez. Kamera, geziyi takip eder. Ayrıntılı bilgi içinAutoCamerabaşlıklı makaleyi inceleyin.Kamera davranışını özelleştirme: Kamera davranışını özelleştirmek için
AutoCameraözelliğini devre dışı bırakmanız ve ardından özelleştirmelerinizi yapmanız gerekir. Ayrıntılı bilgi için Kamera davranışını özelleştirme başlıklı makaleyi inceleyin.
AutoCamera kamerayı ortalar
Tüketici SDK'sı, Haritalar SDK'sının yerleşik Konumum düğmesinde varsayılan olarak etkinleştirilen bir AutoCamera özelliği sunar. Kamera, gezi rotasına ve bir sonraki gezi ara noktasına odaklanmak için yakınlaştırır.
AutoCamera özelliğini kullanmak istiyorsanız etkinleştirdiğinizden emin olun. Daha fazla bilgi için isAutoCameraEnabled başlıklı makaleyi inceleyin.

Konumum düğmesiyle ilgili ayrıntılar için Maps JavaScript API belgelerindeki Konumum düğmesi bölümüne bakın.
Kamera davranışını özelleştirme
Kamera davranışını daha fazla kontrol etmek için aşağıdaki adımları uygulayarak AutoCamera özelliğini devre dışı bırakın ve kamera davranışını manuel olarak özelleştirin.
ConsumerController.setAutoCameraEnabled() kullanarak
AutoCameraözelliğini devre dışı bırakın.ConsumerController.getCameraUpdate() yöntemini kullanarak önerilen kamera sınırlarını alın.
CameraUpdatedeğerini şu Android işlevlerinden birine bağımsız değişken olarak sağlayın: