2015-10-05 11 views
5

के बाद एंड्रॉयड गूगल मानचित्र InfoWindow लंगर बिंदु मार्कर के InfoWindows लंगर बिंदु रीसेट करने के लिए कैसे के बाद मार्कर शीर्ष बीच में हमेशा के लिए घुमाया गया है? समस्या यह है कि एंकर पॉइंट मार्कर के साथ घुमाया जाता है।मार्कर रोटेशन

static final LatLng PERTH = new LatLng(-31.90, 115.86); 
Marker marker = mMap.addMarker(new MarkerOptions() 
        .position(PERTH) 
        .anchor(0.5,0.5) 
        .rotation(90.0) 
        .infoWindowAnchor(0.5,0)); 

//Update marker with new data (position and direction angle) 
var angle = 130.0; 
marker.setPosition(new LatLng(-30.20, 113.27)); 
marker.setRotation(angle); 
marker.setInfoWindowAnchor(x,y); // how to calculate these values? 

enter image description here

उत्तर

10
var angle = 130.0; 
var x = Math.sin(-angle * Math.PI/180) * 0.5 + 0.5; 
var y = -(Math.cos(-angle * Math.PI/180) * 0.5 - 0.5); 
marker.setInfoWindowAnchor((float)x, (float)y); 

स्पष्टीकरण:

अगर हम मान लेते हैं कि मैप मार्कर गोल आकार (रोटेशन उद्देश्य के लिए सबसे उचित) है और हम जानते हैं कि InfoWindow लंगर बिंदु (बी) हो सकता है 0.0,0.0 (ऊपरी बाएं) से 1,1 (निचले दाएं) तक किसी भी सापेक्ष समन्वय बिंदु पर सेट करें, हम एसआईएन और सीओएस सूत्रों का उपयोग करके रोटेशन डिग्री द्वारा सर्कल लाइन पर कोई भी बिंदु पा सकते हैं। ए और बी = त्रिज्या * sin (डिग्री) के बीच

enter image description here

एक्स दूरी; वाई ए और बी = त्रिज्या * सीओएस (डिग्री) के बीच दूरी;

उन्हें एंड्रॉयड मार्कर के लिए अपनाने का समन्वय करता है हम पाते हैं:

var x = Math.sin(-angle * Math.PI/180) * 0.5 + 0.5;

  1. हम oposit रोटेशन कोण (ऋणात्मक मान) से ज्या खोजने के रेडियंस में (डिग्री * PI/180) परिवर्तित;
  2. एक्स अक्ष पर दूरी प्राप्त करने के लिए सर्कल त्रिज्या (0.5) से गुणा करें; त्रिज्या (0.5) से सही करने के लिए
  3. शिफ्ट आकार (एक्स अक्ष पर) के बीच में होने के लिए;

var y = -(Math.cos(-angle * Math.PI/180) * 0.5 - 0.5);

  1. से oposit रोटेशन कोण (ऋणात्मक मान) रेडियंस (डिग्री * PI/180) में बदल जाती कोज्या का पता लगाएं,
  2. वाई अक्ष पर दूरी प्राप्त करने के लिए सर्कल त्रिज्या (0.5) से गुणा करें;
  3. त्रिज्या (-0.5) से शिफ्ट उत्तर प्रदेश (Y अक्ष पर) आकार के शीर्ष पर होना करने के लिए;
  4. मेक मूल्य सकारात्मक (- चिह्न) मार्कर समन्वय के रूप में सिस्टम Y अक्ष नीचे की ओर पर सकारात्मक मूल्यों है;
+0

कुछ स्पष्टीकरण अच्छा होगा –

+0

परिवर्तनीय कोण का अर्थ क्या है? 130.0 की तरह इस पर किसी विशेष मूल्य पर कैसे पहुंचे? – Madhan