2013-09-03 8 views
5

पर "अचयनित" मार्कर है, तो मैं यह पता लगाने का एक तरीका ढूंढ रहा हूं कि Google मानचित्र पर एक मार्कर का चयन रद्द नहीं किया गया है। मेरे पास एक स्लाइडिंग ड्रॉवर है, जहां उपयोगकर्ता मार्कर पर क्लिक होने तक हैंडल अदृश्य है, और मार्कर को "अचयनित" करने के बाद मैं इसे फिर से अदृश्य बनाना चाहता हूं। मैंने marker.isInfoWindowShown() के साथ प्रयास किया है लेकिन मैं इसे काम नहीं कर सका।पता लगाएं कि क्या उपयोगकर्ता Google मानचित्र

+0

'अचयनित' का अर्थ है? आप उसे कैसे करते हैं? – Praveen

+0

जब उपयोगकर्ता मानचित्र पर क्लिक करता है, और जब मार्कर क्लिक किया जाता है तो मैंने दिखाया है कि infowindow छुपाता है। –

उत्तर

10

जानकारी विंडो लापता होने के लिए किसी भी स्थिति नहीं है, लेकिन आप

map.setOnMapClickListener(new OnMapClickListener() { ... }); 

और अन्य "घटनाओं" कि जानकारी विंडो गायब करने के एक जोड़े का उपयोग कर के आसपास यह काम कर सकते हैं। यदि आप marker.remove() या marker.setVisible(false) का उपयोग करते हैं, तो वे मार्कर पर कॉल करते समय जानकारी विंडो गायब हो जाते हैं जो जानकारी विंडो दिखाता है।

आपको markerShowingInfoWindow संदर्भ (शायद OnMarkerClickListener या InfoWindowAdapter से) को सहेजना होगा।

+0

मुझे लगता है कि वह सिर्फ InfoWindow गायब होना चाहता है। पूरे मार्कर नहीं। – bofredo

+1

@ बोफ्रेडो मुझे लगता है कि वह जानना चाहता है कि जानकारी विंडो कब गायब हो जाती है। इसे गायब करना सरल है: 'marker.hideInfoWindow() '। –

+0

@ MaciejGórski धन्यवाद, यह वही है जो मैं चाहता था। मुझे नहीं पता कि मैंने खुद को क्यों नहीं सोचा, मुझे लगता है कि कभी-कभी आपका दिमाग टूट जाता है :) –

0

मुझे पता है कि आपने पहले ही जवाब चुना है लेकिन चयनित व्यक्ति ऐसा नहीं करता है जो आपको चाहिए।

मैं ऐसे एप्लिकेशन के साथ भी व्यस्त हूं जो मार्करों का उपयोग करता है और एक ऐसा दृश्य होता है जब कोई उपयोगकर्ता मार्कर चुनता है और अचयनित करता है।

यह सिर्फ एक साधारण काम है।

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() 
      { 
       @Override 
       public void onMapClick(LatLng latLng) 
       { 
        mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() 
        { 
         @Override 
         public boolean onMarkerClick(Marker marker) 
         { 
          //Code for on marker click goes here 
          return false; 
         } 
        }); 
        //Code for marker deselect goes here 
       } 
      }); 

यह क्लिक श्रोताओं पर दो का उपयोग कर रहा है, इस तरह आप उपयोगकर्ता क्लिक के आधार पर दृश्यता को स्विच करने में सक्षम होना चाहिए।

0

यह तब उपयोगी होता है जब मार्कर की जानकारी विंडो होती है। जब मार्कर पर जानकारी विंडो दिखाई देती है तो मार्कर के बाहर क्लिक करते समय बंद हो जाती है और बंद हो जाती है। आप मानचित्र में उस घटना का पता लगा सकते हैं।

// Detect when Marker's Info Window is closed 
    googleMap.setOnInfoWindowCloseListener(new GoogleMap.OnInfoWindowCloseListener() { 
     @Override 
     public void onInfoWindowClose(Marker marker) { 
      // Do whatever you want to do here... 
     } 
    }); 
संबंधित मुद्दे