Gelişmiş işaretçiler, işaretçileri tanımlamak için iki sınıf kullanır:
GMSAdvancedMarker
sınıfı varsayılan işaretçi sağlıyor
özellikleri, GMSPinImageOptions
altında da seçenekler
göz atın. Bu sayfada,
şu yöntemleri kullanabilirsiniz:
- Arka plan rengini değiştirme
- Kenarlık rengini değiştirme
- Glif rengini değiştirin
- Karakter metnini değiştirme
- iconView özelliğiyle özel görünümleri ve animasyonu destekleyin
![Gelişmiş bir işaretçinin bölümleri](https://developers.google.cn/static/maps/documentation/ios-sdk/images/marker_parts.png?authuser=5&hl=tr)
Arka plan rengini değiştirme
GMSPinImageOptions.backgroundColor
seçeneğini kullanarak
bir işaretçinin arka plan rengini değiştirebilirsiniz.
Swift
//... let options = GMSPinImageOptions() options.backgroundColor = .blue let pinImage = GMSPinImage(options: options) advancedMarker.icon = pinImage advancedMarker.map = mapView
Objective-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.backgroundColor = [UIColor blueColor]; GMSPinImage *pin = [GMSPinImage pinImageWithOptions:options]; customTextMarker.icon = pin; customTextMarker.map = mapView;
Kenarlık rengini değiştirme
Değiştirmek için GMSPinImageOptions.borderColor
seçeneğini kullanın
bir işaretçinin arka plan rengini değiştirebilirsiniz.
Swift
//... let options = GMSPinImageOptions() options.borderColor = .blue let pinImage = GMSPinImage(options: options) advancedMarker.icon = pinImage advancedMarker.map = mapView
Objective-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.backgroundColor = [UIColor blueColor]; GMSPinImage *pin = [GMSPinImage pinImageWithOptions:options]; advancedMarker.icon = pin; advancedMarker.map = mapView;
Glif rengini değiştirin
Arka planı değiştirmek için GMSPinImageGlyph.glyphColor
simgesini kullanın
rengi hakkında bilgi edindiniz.
Swift
//... let options = GMSPinImageOptions() let glyph = GMSPinImageGlyph(glyphColor: .yellow) options.glyph = glyph let glyphColor = GMSPinImage(options: options) advancedMarker.icon = glyphColor advancedMarker.map = mapView
Objective-C
//... GMSPinImageOptions *options = [[GMSPinImageOptions alloc] init]; options.glyph = [[GMSPinImageGlyph alloc] initWithGlyphColor:[UIColor yellowColor]]; GMSPinImage *glyphColor = [GMSPinImage pinImageWithOptions:options]; advancedMarker.icon = glyphColor; advancedMarker.map = mapView;
Karakter metnini değiştirme
İşaretçinin glif metnini değiştirmek için GMSPinImageGlyph
simgesini kullanın.
Swift
//... let options = GMSPinImageOptions() let glyph = GMSPinImageGlyph(text: "ABC", textColor: .white) options.glyph = glyph let pinImage = GMSPinImage(options: options) advancedMarker.icon = pinImage advancedMarker.map = mapView
Objective-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
özelliğiyle özel görünümleri ve animasyonu destekleyin
GMSMarker
ile benzer, GMSAdvancedMarker
aynı zamanda bir
iconView
.
iconView
özelliği, şu öğenin animasyon uygulanabilir tüm özelliklerinin animasyonunu destekler:
Çerçeve ve orta hariç UIView
. iconViews
içeren işaretçileri desteklemez
ve icons
aynı haritada gösteriliyor.
Swift
//... let advancedMarker = GMSAdvancedMarker(position: coordinate) advancedMarker.iconView = customView() advancedMarker.map = mapView func customView() -> UIView { // return your custom UIView. }
Objective-C
//... GMSAdvancedMarker *advancedMarker = [GMSAdvancedMarker markerWithPosition:kCoordinate]; advancedMarker.iconView = [self customView]; advancedMarker.map = self.mapView; - (UIView *)customView { // return custom view }
Düzen kısıtlamaları
GMSAdvancedMarker
, düzeni doğrudan desteklemiyor
iconView
için kısıtlama uyguluyor. Ancak kullanıcı için düzen kısıtlamaları ayarlayabilirsiniz.
iconView
içindeki arayüz öğeleri. Görünümünüzü oluşturduktan sonra nesne
frame
veya size
, işaretçiye iletilmelidir.
Swift
//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
Objective-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;