نشانگرهای پیشرفته از دو کلاس برای تعریف نشانگرها استفاده می کنند: کلاس GMSAdvancedMarker
قابلیت های نشانگر پیش فرض را ارائه می دهد و GMSPinImageOptions
دارای گزینه هایی برای سفارشی سازی بیشتر است. این صفحه به شما نشان می دهد که چگونه نشانگرها را به روش های زیر سفارشی کنید:
- رنگ پس زمینه را تغییر دهید
- رنگ حاشیه را تغییر دهید
- رنگ گلیف را تغییر دهید
- متن گلیف را تغییر دهید
- با ویژگی iconView از نماها و انیمیشن های سفارشی پشتیبانی کنید
رنگ پس زمینه را تغییر دهید
از گزینه GMSPinImageOptions.backgroundColor
برای تغییر رنگ پس زمینه یک نشانگر استفاده کنید.
سویفت
//... let options = GMSPinImageOptions() options.backgroundColor = .blue let pinImage = GMSPinImage(options: options) advancedMarker.icon = pinImage advancedMarker.map = mapView
هدف-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.backgroundColor = [UIColor blueColor]; GMSPinImage *pin = [GMSPinImage pinImageWithOptions:options]; customTextMarker.icon = pin; customTextMarker.map = mapView;
رنگ حاشیه را تغییر دهید
از گزینه GMSPinImageOptions.borderColor
برای تغییر رنگ پس زمینه یک نشانگر استفاده کنید.
سویفت
//... let options = GMSPinImageOptions() options.borderColor = .blue let pinImage = GMSPinImage(options: options) advancedMarker.icon = pinImage advancedMarker.map = mapView
هدف-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.backgroundColor = [UIColor blueColor]; GMSPinImage *pin = [GMSPinImage pinImageWithOptions:options]; advancedMarker.icon = pin; advancedMarker.map = mapView;
رنگ گلیف را تغییر دهید
از GMSPinImageGlyph.glyphColor
برای تغییر رنگ پسزمینه نشانگر استفاده کنید.
سویفت
//... let options = GMSPinImageOptions() let glyph = GMSPinImageGlyph(glyphColor: .yellow) options.glyph = glyph let glyphColor = GMSPinImage(options: options) advancedMarker.icon = glyphColor advancedMarker.map = mapView
هدف-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.glyph = [[GMSPinImageGlyph alloc] initWithGlyphColor:[UIColor yellowColor]]; GMSPinImage *glyphColor = [GMSPinImage pinImageWithOptions:options]; advancedMarker.icon = glyphColor; advancedMarker.map = mapView;
متن گلیف را تغییر دهید
از GMSPinImageGlyph
برای تغییر متن علامت نشانگر استفاده کنید.
سویفت
//... let options = GMSPinImageOptions() let glyph = GMSPinImageGlyph(text: "ABC", textColor: .white) options.glyph = glyph let pinImage = GMSPinImage(options: options) advancedMarker.icon = pinImage advancedMarker.map = mapView
هدف-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.glyph = [[GMSPinImageGlyph alloc] initWithText:@"ABC" textColor:[UIColor whiteColor]]; GMSPinImage *pin = [GMSPinImage pinImageWithOptions:options]; customTextMarker.icon = pin; customTextMarker.map = mapView;
با ویژگی iconView
از نماها و انیمیشن های سفارشی پشتیبانی کنید
مشابه GMSMarker
، GMSAdvancedMarker
از نشانگرهایی با iconView
نیز پشتیبانی میکند. ویژگی iconView
از انیمیشن تمام ویژگیهای متحرک UIView
به جز فریم و مرکز پشتیبانی میکند. از نشانگرهایی با iconViews
و icons
نمایش داده شده در همان نقشه پشتیبانی نمی کند.
سویفت
//... let advancedMarker = GMSAdvancedMarker(position: coordinate) advancedMarker.iconView = customView() advancedMarker.map = mapView func customView() -> UIView { // return your custom UIView. }
هدف-C
//... GMSAdvancedMarker *advancedMarker = [GMSAdvancedMarker markerWithPosition:kCoordinate]; advancedMarker.iconView = [self customView]; advancedMarker.map = self.mapView; - (UIView *)customView { // return custom view }
محدودیت های چیدمان
GMSAdvancedMarker
مستقیماً از محدودیتهای طرحبندی برای iconView
خود پشتیبانی نمیکند. با این حال، میتوانید محدودیتهای طرحبندی را برای عناصر رابط کاربری در iconView
تنظیم کنید. پس از ایجاد نمای خود، frame
یا size
شی باید به نشانگر منتقل شود.
سویفت
//do not set advancedMarker.iconView.translatesAutoresizingMaskIntoConstraints = false let advancedMarker = GMSAdvancedMarker(position: coordinate) let customView = customView() //set frame customView.frame = CGRect(0, 0, width, height) advancedMarker.iconView = customView
هدف-C
//do not set advancedMarker.iconView.translatesAutoresizingMaskIntoConstraints = NO; GMSAdvancedMarker *advancedMarker = [GMSAdvancedMarker markerWithPosition:kCoordinate]; CustomView *customView = [self customView]; //set frame customView.frame = CGRectMake(0, 0, width, height); advancedMarker.iconView = customView;