जानकारी विंडो की सहायता से आप उपयोगकर्ता को उस समय जानकारी प्रदर्शित कर सकते है, जब वह किसी विज्ञापन पर टैप करता है मार्कर.
जानकारी विंडो को डिवाइस की स्क्रीन के हिसाब से बनाया गया है. इस विंडो को ऊपर की ओर फ़ोकस किया गया है उससे जुड़ा मार्कर. डिफ़ॉल्ट जानकारी विंडो में टाइटल बोल्ड में होता है, डालें.
जानकारी विंडो के कॉन्टेंट को title
और
मार्कर की snippet
प्रॉपर्टी. मार्कर क्लिक करने पर
जानकारी विंडो, अगर title
और snippet
प्रॉपर्टी खाली या nil
हो.
एक बार में केवल एक जानकारी विंडो दिखाई जाती है. अगर कोई उपयोगकर्ता किसी दूसरे मार्कर पर टैप करता है, तो मौजूदा विंडो छिप जाती है और जानकारी वाली नई विंडो खुल जाती है. अगर उपयोगकर्ता किसी ऐसे मार्कर पर क्लिक करता है जो फ़िलहाल जानकारी विंडो दिखा रहा है, तो जानकारी विंडो बंद होती है और फिर से खुलती है.
अतिरिक्त टेक्स्ट या इमेज जोड़ने के लिए, पसंद के मुताबिक जानकारी विंडो बनाएं. कस्टम जानकारी विंडो आपको पॉप-अप के दिखने का पूरा कंट्रोल देती है.
जानकारी वाली विंडो जोड़ें
यह स्निपेट एक साधारण मार्कर बनाता है, जिसमें टेक्स्ट के लिए सिर्फ़ एक शीर्षक होता है विंडो में खुलता है.
Swift
let position = CLLocationCoordinate2D(latitude: 51.5, longitude: -0.127) let london = GMSMarker(position: position) london.title = "London" london.map = mapView
Objective-C
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127); GMSMarker *london = [GMSMarker markerWithPosition:position]; london.title = @"London"; london.map = mapView;
snippet
प्रॉपर्टी का इस्तेमाल करके, रिपोर्ट में दिखने वाला कोई और टेक्स्ट जोड़ा जा सकता है
टाइटल के नीचे छोटे फ़ॉन्ट में टाइप करें. ऐसी स्ट्रिंग जो की चौड़ाई से ज़्यादा हैं
जानकारी विंडो अपने-आप कई लाइनों में रैप हो जाती है. बहुत लंबा
हो सकता है कि संदेश छोटे किए गए हों.
Swift
london.title = "London" london.snippet = "Population: 8,174,100" london.map = mapView
Objective-C
london.title = @"London"; london.snippet = @"Population: 8,174,100"; london.map = mapView;
जानकारी विंडो दिखाएं/छिपाएं
जानकारी विंडो, मार्कर पर उपयोगकर्ता के टच इवेंट का जवाब देने के लिए डिज़ाइन की गई हैं.
selectedMarker
को सेट करके, जानकारी विंडो को प्रोग्राम के हिसाब से दिखाया या छिपाया जा सकता है
GMSMapView
की प्रॉपर्टी:
- मार्कर दिखाने के लिए,
selectedMarker
को उसके नाम पर सेट करें. - इसे छिपाने के लिए,
selectedMarker
कोnil
पर सेट करें.
Swift
london.title = "London" london.snippet = "Population: 8,174,100" london.map = mapView // Show marker mapView.selectedMarker = london // Hide marker mapView.selectedMarker = nil
Objective-C
london.title = @"London"; london.snippet = @"Population: 8,174,100"; london.map = mapView; // Show marker mapView.selectedMarker = london; // Hide marker mapView.selectedMarker = nil;
जानकारी विंडो को अपने-आप रीफ़्रेश होने के लिए सेट करना
tracksInfoWindowChanges
को इस पर सेट करें:
अगर आपको नई प्रॉपर्टी या जानकारी का कॉन्टेंट चाहिए, तो YES
या true
पर मार्कर का इस्तेमाल करें
इस सुविधा का इस्तेमाल करने पर, बदलाव करने पर आपको इंतज़ार नहीं करना पड़ेगा
जानकारी विंडो को छिपाना और फिर फिर से दिखाना होगा. डिफ़ॉल्ट वैल्यू, NO
या false
है.
Swift
london.tracksInfoWindowChanges = true
Objective-C
london.tracksInfoWindowChanges = YES;
यह तय करने के लिए कि स्निपेट कब सेट करना है
tracksInfoWindowChanges
प्रॉपर्टी, आपको
के फ़ायदों के बजाय प्रदर्शन संबंधी पहलुओं पर विचार किया जाना चाहिए
जानकारी विंडो अपने-आप फिर से बनाई जाती है. उदाहरण के लिए:
- अगर आपको कई बदलाव करने हैं, तो प्रॉपर्टी को
YES
में बदला जा सकता है इसके बाद,NO
पर वापस जाएं. - जब कोई ऐनिमेशन चल रहा हो या कॉन्टेंट एसिंक्रोनस रूप से लोड हो रहा हो,
जब तक कार्रवाइयां पूरी नहीं हो जातीं, तब तक आपको प्रॉपर्टी को
YES
पर सेट रखना चाहिए.
ध्यान देने के लिए नोट भी देखें. ऐसा तब करें, जब
मार्कर की iconView
प्रॉपर्टी का इस्तेमाल करके.
जानकारी विंडो की स्थिति बदलना
जानकारी विंडो को डिवाइस की स्क्रीन के बीच में बनाया गया है
मार्कर ऊपर रखा जाता है. जानकारी विंडो की जगह बदली जा सकती है
infoWindowAnchor
प्रॉपर्टी सेट करके मार्कर के हिसाब से. यह
प्रॉपर्टी, CGPoint
को स्वीकार करती है, जहां x और y दोनों ऑफ़सेट (x,y) ऑफ़सेट होते हैं
रेंज 0.0 और 1.0 के बीच होनी चाहिए. डिफ़ॉल्ट ऑफ़सेट (0.5, 0.0) है, यानी बीच में
ऊपर. infoWindowAnchor
ऑफ़सेट को सेट करने से, जानकारी को अलाइन करने में मदद मिलती है
विंडो को कस्टम आइकॉन पर सेट करें.
Swift
london.infoWindowAnchor = CGPoint(x: 0.5, y: 0.5) london.icon = UIImage(named: "house") london.map = mapView
Objective-C
london.infoWindowAnchor = CGPointMake(0.5, 0.5); london.icon = [UIImage imageNamed:@"house"]; london.map = mapView;
जानकारी विंडो पर इवेंट मैनेज करना
इन जानकारी विंडो इवेंट को सुना जा सकता है:
mapView:markerInfoWindow:
— इसे तब कॉल किया जाता है, जब कोई मार्कर चुना जाने वाला होता है. विकल्प के तौर पर, कस्टम जानकारी विंडो कोUIView
के तौर पर दिखा सकता है, ताकि इसका इस्तेमाल किया जा सके चिह्नक. ज़्यादा जानकारी के लिए, नीचे कस्टम जानकारी विंडो देखें.mapView:markerInfoContents:
—mapView:markerInfoWindow
के शून्य वापस लौटाने पर कॉल किया जाता है.mapView:didCloseInfoWindowOfMarker:
— मार्कर की जानकारी विंडो बंद होने पर कॉल किया जाता है.mapView:didLongPressInfoWindowOfMarker:
— मार्कर की जानकारी विंडो को लंबे समय तक दबाए रखने के बाद कॉल किया जाता है.
इवेंट सुनने के लिए, आपको
GMSMapViewDelegate
प्रोटोकॉल. ज़्यादा जानकारी के लिए,
इवेंट के लिए गाइड और इवेंट के तरीकों की सूची
GMSMapViewDelegate
.
GitHub पर, जानकारी विंडो इवेंट को मैनेज करने का तरीका बताने वाले सैंपल शामिल हैं:
कस्टम जानकारी विंडो
की एक सब-क्लास बनाकर जानकारी विंडो की सामग्री को कस्टमाइज़ करें
UIView
जो कस्टम जानकारी विंडो के लेआउट के बारे में बताती है. उस सब-क्लास में,
व्यू को अपने हिसाब से परिभाषित करें. उदाहरण के लिए, आप
UILabel
उदाहरण के लिए, टाइटल और स्निपेट टेक्स्ट, और अन्य व्यू, जैसे कि
UIImageView
इंस्टेंस, जानकारी विंडो में प्रदर्शित चित्र जोड़ने के लिए.
पक्का करें कि आपका ViewController
,
GMSIndoorDisplayDelegate
प्रोटोकॉल तय करता है और
mapView:markerInfoWindow:
इवेंट. यह इवेंट लिसनर तब कॉल किया जाता है, जब कोई मार्कर बनने वाला होता है
चुना गया है और इसकी मदद से, अपनी पसंद के मुताबिक बनाई गई UIView
क्लास का इंस्टेंस,
चिह्नक द्वारा उपयोग की जाने वाली कस्टम जानकारी विंडो को परिभाषित करें.
नीचे दी गई इमेज डिफ़ॉल्ट जानकारी विंडो दिखाती हैं. साथ ही, इसमें पसंद के मुताबिक बनाई गई एक जानकारी विंडो भी शामिल है कस्टमाइज़ किया गया फ़्रेम और बैकग्राउंड के साथ एक जानकारी विंडो.
इन कोड सैंपल GitHub iOS के लिए मैप SDK के साथ प्रदान किया गया कस्टम जानकारी विंडो के नमूने शामिल करें. उदाहरण के लिए, MarkerInfoWindowViewController.m (Objective-C) या MarkerInfoWindowViewController.swift (स्विफ़्ट).
डाउनलोड करने और चलाने के बारे में जानकारी के लिए कोड के नमूने देखें ये सैंपल.