जानकारी विंडो

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

एक मार्कर के ऊपर एक जानकारी विंडो दिख रही है.

जानकारी विंडो की सहायता से आप उपयोगकर्ता को उस समय जानकारी प्रदर्शित कर सकते है, जब वह किसी विज्ञापन पर टैप करता है मार्कर.

जानकारी विंडो को डिवाइस की स्क्रीन के हिसाब से बनाया गया है. इस विंडो को ऊपर की ओर फ़ोकस किया गया है उससे जुड़ा मार्कर. डिफ़ॉल्ट जानकारी विंडो में टाइटल बोल्ड में होता है, डालें.

जानकारी विंडो के कॉन्टेंट को 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 (स्विफ़्ट).

डाउनलोड करने और चलाने के बारे में जानकारी के लिए कोड के नमूने देखें ये सैंपल.