این راهنما روشهایی را شرح میدهد که میتوانید با آنها نقشه نمایشدادهشده در برنامه iOS خود را هنگام دنبال کردن سفر سبکبندی کنید.
قبلاز شروع
قبلاز اینکه برای نقشه سبک تعیین کنید، باید برنامه مصرفکنندهای داشته باشید که موارد زیر در آن پیادهسازی شده باشد:
نمای نقشه. مقداردهی اولیه نمای نقشه را ببینید.
روشی برای مدیریت رویدادهای نمای نقشه. مدیریت رویدادهای نمای نقشه را ببینید
همچنین باید خدمات زیرینه موردنیاز «کیت توسعه نرمافزار مصرفکننده» را راهاندازی کرده باشید و «کیت توسعه نرمافزار مصرفکننده» را راهاندازی کنید. برای جزئیات بیشتر، راهاندازی کیت توسعه نرمافزار مصرفکننده و Fleet Engine چیست؟ را ببینید.
سفارشیسازیهای نقشه
سفارشیسازیهای دردسترس به شرح زیر است:
سبکپردازی نقشه: میتوانید رنگهای نقشه، چندخطیها، و دیگر ویژگیهای نقشه را بااستفاده از سبکپردازی نقشه مبتنی بر فضای ابری سبکپردازی کنید. سبکدار کردن نقشه را ببینید.
تنظیم زوم دوربین: میتوانید از ویژگی داخلی استفاده کنید یا گزینههای دوربین خودتان را برای تمرکز روی سفر تنظیم کنید. به تنظیم کردن زوم دوربین برای تمرکز روی سفر مراجعه کنید.
سفارشیسازی نشانگرها و چندخطیها: میتوانید نشانگرهای سفارشی و چندخطیهای مسیر به طراحی برنامهتان اضافه کنید. این عناصر طراحی به برنامه «مصرفکننده» شما امکان میدهد پیشنمایش پویایی از مسیر خودرو نمایش دهد. سفارشیسازی نشانگرها و سفارشیسازی چندخطیها را ببینید.
این کیت توسعه نرمافزار این گزینهها را ازطریق
consumerMapStyleCoordinatorدارایی ارائه میدهد. این دارایی ازطریق کلاسGMTCMapViewدردسترس است.
سبکپردازی نقشه بااستفاده از سبکپردازی نقشه ابری
بااستفاده از سبکپردازی نقشه بااستفاده از فضای ابری، ظاهر و احساس مؤلفه نقشهها را سفارشیسازی کنید. بدون نیاز به ایجاد تغییر در کد، سبکهای نقشه را در کنسول Google Cloud برای هریک از برنامههایتان که از Google Maps استفاده میکنند ایجاد و ویرایش میکنید. برای کسب اطلاعات بیشتر، پلاتفرم خود را در سبکپردازی نقشه بااستفاده از فضای ابری انتخاب کنید.
هر دو کلاس
ConsumerMapView
و
ConsumerMapFragment
از سبکپردازی نقشه بااستفاده از فضای ابری پشتیبانی میکنند.
برای استفاده از سبکپردازی نقشه بااستفاده از فضای ابری، مطمئن شوید که
پردازنده نقشه انتخابی LATEST باشد. بخشهای زیر نمونههایی از نحوه استفاده از
سبکدهی نقشه ابری با پروژه شما را نشان میدهد.
ConsumerMapView
برای استفاده از سبکپردازی نقشه بااستفاده از فضای ابری در ConsumerMapView، فیلد
mapId را در GoogleMapOptions تنظیم کنید و GoogleMapOptions را به
getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment,
GoogleMapOptions)
یا 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، مشخصه 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 ارسال کنید. به مثال زیر توجه کنید:
جاوا
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 بهطور پیشفرض دوربین را در مرکز قرار میدهد
«کیت توسعه نرمافزار مصرفکننده» ویژگی AutoCamera را ارائه میدهد که بهطور پیشفرض
در دکمه داخلی مکان من برای «کیت توسعه نرمافزار Maps» فعال است. دوربین زوم میکند تا
روی مسیر سفر و ایستگاه بعدی سفر تمرکز کند.
اگر میخواهید از AutoCamera استفاده کنید، مطمئن شوید که فعال باشد. برای جزئیات بیشتر، به
allowCameraAutoUpdate مراجعه کنید.

برای جزئیات مربوط به دکمه مکان من در «کیت توسعه نرمافزار Maps»، به دکمه «مکان من» در اسناد «کیت توسعه نرمافزار Maps» برای iOS مراجعه کنید.
سفارشیسازی رفتار دوربین
برای کنترل بیشتر رفتار دوربین، میتوانید AutoCamera را غیرفعال کنید و رفتار دوربین را سفارشیسازی کنید.
AutoCamera را با
AllowCameraAutoUpdate
دارایی غیرفعال یا فعال کنید.
برای سفارشیسازیهای بیشتر دوربین، حرکت دادن دوربین را در اسناد کیت توسعه نرمافزار Maps برای iOS ببینید.