قبل از اینکه چند خطوط مسیر (یا نشانگرها) را سفارشی کنید، ابتدا باید گزینه های سفارشی سازی رابط کاربری را مقداردهی اولیه کنید.
گزینه های سفارشی سازی UI را راه اندازی کنید
تماس پیشنهادی مورد استفاده برای تنظیم اولیه گزینههای سفارشیسازی رابط کاربری در GMTCMapViewDelegate
اعلام میشود. زمانی که شیء GMTCMapView
برای ارائه نقشه آماده باشد، callback mapViewDidInitialize
فعال می شود. هماهنگ کننده سبک مقداردهی اولیه شده است، اما هیچ عنصر رابط کاربری وجود ندارد.
سویفت
/** ViewController.swift */
class ViewController: UIViewController, GMTCMapViewDelegate {
// MARK: - GMTCMapViewDelegate
func mapViewDidInitialize(_ mapview: GMTCMapView) {
// Set the UI customization options here.
}
}
هدف-C
/** ViewController.m */
@interface ViewController () <GMTCMapViewDelegate>
#pragma mark GMTCMapViewDelegate
- (void)mapViewDidInitialize:(GMTCMapView *)mapview {
// Set the UI customization options here.
}
سفارشی کردن چند خط
سفارشیسازی Polyline با استفاده از GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
تنظیم میشود.
مثال زیر نحوه تنظیم گزینه های سبک چند خطی را نشان می دهد:
انواع پلی لاین
می توانید انواع چند خط زیر را سفارشی کنید:
-
GMTCPolylineType.activeRoute
: مسیری که وسیله نقلیه تا نقطه بعدی سوارکار طی میکند، چه پیکاپ باشد و چه پیادهروی. -
GMTCPolylineType.remainingRoute
: بخشی از سفر که پس از تکمیل وسیله نقلیهGMTCPolylineType.activeRoute
باقی می ماند.
هر دوی این انواع در طول یک سفر مشترک نمایش داده می شوند.
خواص پلی لاین
ویژگی هایی که می توانید برای هر چند خط سفارشی کنید، زیرمجموعه ای از ویژگی های ارائه شده در Google Maps PolylineOptions
هستند. ویژگی های Consumer SDK GMTCPolylineStyleOptions
دارای ویژگی های زیر است:
- با استفاده از یک اولیه ساز ساخته شده است.
- اگر میخواهید مقادیر سفارشی برای هر ویژگی ارائه کنید، میتواند تغییرناپذیر یا قابل تغییر باشد.
- مقادیر پیش فرض داشته باشید.
می توانید ویژگی های زیر را سفارشی کنید:
-
color
-
width
-
isVisible
: برای غیرفعال کردن چند خط،isVisible
رویfalse
قرار دهید. -
isTrafficEnabled
: این ویژگی به طور پیش فرض رویfalse
تنظیم شده است.
مثال
سویفت
/** MapViewController.swift */
private func updatePolylineUIOptions() {
// Get the GMTCConsumerMapStyleCoordinator
let consumerMapStyleCoordinator = mapView.consumerMapStyleCoordinator
// The polyline type that you would like to set custom UI options for.
let customizablePolylineType = GMTCPolylineType.activeRoute
// Initializing polyline options with default values (immutable version).
let polylineStyleOptions = GMTCPolylineStyleOptions()
consumerMapStyleCoordinator.setPolylineStyleOptions(
polylineStyleOptions, polylineType: customizablePolylineType)
// Initializing polyline options with custom values (mutable version).
let mutablePolylineStyleOptions = GMTCMutablePolylineStyleOptions()
mutablePolylineStyleOptions.isVisible = true
mutablepolylineStyleOptions.strokeWidth = 8.0
mutablepolylineStyleOptions.strokeColor = .blue
mutablepolylineStyleOptions.zIndex = 1000
mutablepolylineStyleOptions.isGeodesic = true
mutablePolylineStyleOptions.isTrafficEnabled = true
mutablePolylineStyleOptions.setTrafficColorFor(.slow, color: .yellow)
mutablePolylineStyleOptions.setTrafficColorFor(.trafficJam, color: .purple)
consumerMapStyleCoordinator.setPolylineStyleOptions(
mutablePolylineStyleOptions, polylineType: customizablePolylineType)
// Reset polyline options to default values.
consumerMapStyleCoordinator.setPolylineStyleOptions(
nil, polylineType: customizablePolylineType)
}
هدف-C
/** MapViewController.m */
- (void)updatePolylineUIOptions {
// Get the GMTCConsumerMapStyleCoordinator
GMTCConsumerMapStyleCoordinator *consumerMapStyleCoordinator = [_mapView consumerMapStyleCoordinator];
// The polyline type that you would like to set custom UI options for.
GMTCPolylineType customizablePolylineType = GMTCPolylineTypeActiveRoute;
// Initializing polyline options with default values (immutable version).
GMTCPolylineStyleOptions *polylineStyleOptions = [[GMTCPolylineStyleOptions alloc] init];
[consumerMapStyleCoordinator setPolylineStyleOptions:polylineStyleOptions
polylineType:customizablePolylineType];
// Initializing polyline options with custom values (mutable version).
GMTCMutablePolylineStyleOptions *mutablePolylineStyleOptions = [[GMTCMutablePolylineStyleOptions alloc] init];
mutablePolylineStyleOptions.isVisible = YES;
mutablepolylineStyleOptions.strokeWidth = 8.0;
mutablepolylineStyleOptions.strokeColor = [UIColor blueColor];
mutablepolylineStyleOptions.zIndex = 1000;
mutablepolylineStyleOptions.isGeodesic = YES;
mutablePolylineStyleOptions.isTrafficEnabled = YES;
[mutablePolylineStyleOptions setTrafficColorForSpeed:GMTSSpeedTypeSlow color:[UIColor yellowColor]];
[mutablePolylineStyleOptions setTrafficColorForSpeed:GMTSSpeedTypeTrafficJam color:[UIColor purpleColor]];
[consumerMapStyleCoordinator setPolylineStyleOptions:mutablePolylineStyleOptions
polylineType:customizablePolylineType];
// Reset polyline options to default values.
[consumerMapStyleCoordinator setPolylineStyleOptions:nil
polylineType:customizablePolylineType];
}
چند خط آگاه از ترافیک
لایه ترافیک پلی لاین به طور پیش فرض غیرفعال است. وقتی آن را با استفاده از polylineStyleOptions.isTrafficEnabled = true
فعال میکنید، بخشهایی که بخشهایی از ترافیک غیرعادی را نشان میدهند به عنوان مسیر ترسیم میشوند.
شرایط ترافیک به عنوان یکی از چهار سرعت نشان داده می شود:
-
GMTSSpeedType.noData
-
GMTSSpeedType.normal
-
GMTSSpeedType.slow
-
GMTSSpeedType.trafficJam
با استفاده از setTrafficColorFor(_:color:)
می توانید رنگی را که هر یک از آن دسته بندی های سرعت را نشان می دهد سفارشی کنید.