दिलचस्प पोस्ट
एंड्रॉइड की <layer-list> को समझना jQuery के यूआई दिनांकपिकर – विशिष्ट दिन अक्षम करें संकल्प एक दूसरे के बाद वादे (यानी अनुक्रम में)? Jquery में केवल प्रथम-स्तर के तत्वों का चयन करना कैसे एक पारदर्शी JFrame बनाने के लिए लेकिन सब कुछ एक ही रखने के लिए? LocalDateTime के साथ पार्स / फॉर्मेट की तारीखें कैसे करें? (जावा 8) पावरशेल्ड v3 आमंत्रण-वेबआरइज़ेस्ट HTTPS त्रुटि शामिल फ़ाइल से लौटें PHP अपलोड, निकालें और प्रगति पट्टी क्या माइक्रोसॉफ्ट एक्सेस अपडेट क्वेरी में प्रोग्रामेटिक रूप से मापदंडों को पारित करना संभव है? जावा में डिफ़ॉल्ट वर्णसेट / एन्कोडिंग कैसे खोजें? मैं जावा HTTPResponse से JSON को कैसे पार्स कर सकता हूं? C ++ में निजी विधि को कॉल करना पृष्ठभूमि रंग के आधार पर फ़ॉन्ट रंग निर्धारित करें स्क्रिप्ट से स्थापित पैकेज आयात करना "AttributeError: मॉड्यूल में कोई विशेषता नहीं है" या "ImportError: नाम आयात नहीं किया जा सकता"

Google मानचित्र में कई स्थानों का केंद्र ढूंढें

मैंने अभी इस प्रश्न पर कोड की प्रतिलिपि बनाई है और मेरे अक्षांश और रेगिट्यूड्स लागू किए हैं I हालांकि, अक्षांश और रेखांकित गतिशील हो जाएगा, और स्थानों के अक्षांश और रेखांति के आधार पर मानचित्र का center बदल जाएगा।

निम्नलिखित प्रश्न का दूसरा प्रश्न है

 <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Google Maps Multiple Markers</title> <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> </head> <body> <div id="map" style="width: 500px; height: 400px;"></div> <script type="text/javascript"> var locations = [ ['Bondi Beach', -33.890542, 151.274856, 4], ['Coogee Beach', -33.923036, 151.259052, 5], ['Cronulla Beach', -34.028249, 151.157507, 3], ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], ['Maroubra Beach', -33.950198, 151.259302, 1] ]; var map = new google.maps.Map(document.getElementById('map'), { zoom: 10, center: new google.maps.LatLng(-33.92, 151.25), mapTypeId: google.maps.MapTypeId.ROADMAP }); var infowindow = new google.maps.InfoWindow(); var marker, i; for (i = 0; i < locations.length; i++) { marker = new google.maps.Marker({ position: new google.maps.LatLng(locations[i][1], locations[i][2]), map: map }); google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() { infowindow.setContent(locations[i][0]); infowindow.open(map, marker); } })(marker, i)); } </script> </body> </html> 

तो मेरा प्रश्न यह है कि, गतिशील स्थानों के दौरान मैं मानचित्र के केंद्र को कैसे जान सकता हूं। मैंने center रिक्त छोड़ने की कोशिश की लेकिन नक्शा लोड नहीं हुआ।

वेब के समाधान से एकत्रित समाधान "Google मानचित्र में कई स्थानों का केंद्र ढूंढें"

सबसे पहले आप सभी गतिशील रूप से जेनरेट किए गए स्थानों को शामिल करके एक LatLngBounds ऑब्जेक्ट बना सकते हैं। अंकों को शामिल करने के लिए विस्तारित विधि का उपयोग करें फिर आप getCenter विधि का उपयोग कर बाउंड का केंद्र प्राप्त कर सकते हैं।

अद्यतन करें:

कोड:

 var bound = new google.maps.LatLngBounds(); for (i = 0; i < locations.length; i++) { bound.extend( new google.maps.LatLng(locations[i][2], locations[i][3]) ); // OTHER CODE } console.log( bound.getCenter() ); 

उदाहरण:

यहां छवि विवरण दर्ज करें

मैं यह अक्षांशों को औसत करने और दीर्घकालिक औसत और मेरे केंद्र के रूप में उन औसत का उपयोग करके यह कर रहा हूं।

उदाहरण:

 self.adjustPosition = function () { var lat = 0, lng = 0; if (self.nearbyPlaces().length == 0) { return false; } for (var i = 0; i < self.nearbyPlaces().length; i++) { lat += self.nearbyPlaces()[i].latitude; lng += self.nearbyPlaces()[i].longitude; } lat = lat / self.nearbyPlaces().length; lng = lng / self.nearbyPlaces().length; self.map.setCenter(new window.google.maps.LatLng(lat, lng)); }; 

यह दृष्टिकोण काम नहीं करता है क्योंकि यह संख्या औसत होगा और संख्याओं के "बीच" (अक्षांश / लंबे) नहीं मिलेगी। इसके बारे में सोचें, यूएस में आपके पास 6 अंक हैं, सीए में से एक और पूर्व तट पर 5 उत्तर और दक्षिण में फैले हुए हैं। 5 पूर्वी तट के वजन पर मानचित्र के दाईं ओर औसत (पूर्व) और आपके केंद्र बिंदु जॉर्जिया के आसपास (पूर्व से पश्चिम) होगा यदि आप getCenter का उपयोग करने से बचने के लिए चाहते थे तो आप उच्चतम और निम्नतम दिशा (अक्षांश +/- और लंबी +/-) खोजना चाहते हैं और एक बार जब आप चरम सीमाएं होती हैं, तो प्रत्येक दिशा के बीच का पता लगाएं।

 private LatLng computeCentroid(List<LatLng> points) { double latitude = 0; double longitude = 0; int n = points.size(); for (LatLng point : points) { latitude += point.latitude; longitude += point.longitude; } return new LatLng(latitude/n, longitude/n); 

}