मार्कर की पहचान करने के लिए, बेहतर मार्कर दो क्लास का इस्तेमाल करते हैं:
GMSAdvancedMarker
क्लास डिफ़ॉल्ट मार्कर देती है
सुविधाएं, और GMSPinImageOptions
में विकल्प शामिल हैं
और बदलावों को पसंद के मुताबिक बनाने के लिए किया जा सकता है. यह पेज आपको मार्कर को कस्टमाइज़ करने का तरीका बताता है
इन तरीकों से मदद पाएं:
- बैकग्राउंड का रंग बदलना
- बॉर्डर का रंग बदलें
- ग्लिफ़ का रंग बदलें
- ग्लिफ़ टेक्स्ट बदलें
- आइकन व्यू प्रॉपर्टी के साथ कस्टम व्यू और ऐनिमेशन के साथ काम करें
बैकग्राउंड का रंग बदलना
GMSPinImageOptions.backgroundColor
विकल्प का इस्तेमाल करके
मार्कर के बैकग्राउंड का रंग बदलना.
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;
बॉर्डर का रंग बदलें
बदलने के लिए, GMSPinImageOptions.borderColor
विकल्प का इस्तेमाल करें
किसी मार्कर के बैकग्राउंड का रंग.
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;
ग्लिफ़ का रंग बदलें
बैकग्राउंड बदलने के लिए, GMSPinImageGlyph.glyphColor
का इस्तेमाल करें
मार्कर का रंग.
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;
ग्लिफ़ टेक्स्ट बदलें
किसी मार्कर का ग्लिफ़ टेक्स्ट बदलने के लिए, GMSPinImageGlyph
का इस्तेमाल करें.
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
प्रॉपर्टी का इस्तेमाल करके, कस्टम व्यू और ऐनिमेशन के साथ काम करें
GMSMarker
, GMSAdvancedMarker
के समान
के साथ मार्कर भी काम करते हैं
iconView
.
iconView
प्रॉपर्टी, इसकी सभी ऐनिमेशन प्रॉपर्टी के ऐनिमेशन के साथ काम करती है
फ़्रेम और सेंटर को छोड़कर UIView
. इसमें iconViews
वाले मार्कर काम नहीं करते
और icons
एक ही मैप पर प्रदर्शित हैं.
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 }
लेआउट कंस्ट्रेंट
GMSAdvancedMarker
सीधे लेआउट के साथ काम नहीं करता
इसके iconView
के लिए कंस्ट्रेंट. हालांकि, आपके पास यूज़र इंटरफ़ेस (यूआई) के लिए लेआउट कंस्ट्रेंट सेट करने का विकल्प है
इंटरफ़ेस तत्व iconView
में मौजूद हैं. आपका व्यू बनाने पर, ऑब्जेक्ट
frame
या size
को मार्कर तक पास किया जाना चाहिए.
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;