दिलचस्प पोस्ट
इरादा कैमरा पैरामीटर सेट नहीं करता है एक MySQL SELECT क्वेरी में IF स्टेटमेंट का उपयोग करना लिनक्स प्रक्रिया निवासी सेट आकार की तुलना में जेवीएम रिपोर्ट अधिक प्रतिबद्ध स्मृति क्यों करता है? लिंक किए गए सूची को क्रमबद्ध करने के लिए सबसे तेज़ एल्गोरिथ्म क्या है? एक फ़ाइल को एक रिपॉजिटरी से प्राप्त करें PHP के HTML DOMDocument के साथ HTML को पार्स करें Outlook के बिना Outlook मीटिंग अनुरोध भेज रहा है? तितर बितर का समोच्च बनाओ जावा टाइमर इंटरफ़ेस विधियों में अंतिम तर्क – क्या बात है? पायथन सुपर विधि और कॉलिंग विकल्प एक फ़ाइल को सुरक्षित रूप से लिखने के लिए पायथन मल्टीप्रोसेसिंग मेरे कंपाइल गार्ड एक से अधिक परिभाषा शामिल करने में क्यों नहीं रोक रहे हैं? एंड्रॉइड 4.1 पर पहुंच-नियंत्रण-अनुमति-उत्पत्ति त्रुटि ImportError: DLL लोड विफल:% 1 वैध Win32 अनुप्रयोग नहीं है। लेकिन डीएलएल के पास है

Google मानचित्र API v3 – सेट सीमा और केंद्र

मैंने हाल ही में Google मानचित्र एपीआई V3 पर स्विच किया है मैं एक सरल उदाहरण का काम कर रहा हूँ, जो एक सरणी से मार्करों को भूखंड देता है, हालांकि मुझे नहीं पता कि मार्करों के संबंध में कैसे केंद्र और ज़ूम ज़ूम हो।

मैंने नेट उच्च और निम्न की खोज की है, जिसमें Google के अपने दस्तावेज़ हैं, लेकिन उन्हें स्पष्ट उत्तर नहीं मिला है। मुझे पता है कि मैं बस सह-ordinates के औसत ले सकता है, लेकिन मैं तदनुसार ज़ूम कैसे सेट करूँगा?

function initialize() { var myOptions = { zoom: 10, center: new google.maps.LatLng(-33.9, 151.2), mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions); setMarkers(map, beaches); } var beaches = [ ['Bondi Beach', -33.890542, 151.274856, 4], ['Coogee Beach', -33.423036, 151.259052, 5], ['Cronulla Beach', -34.028249, 121.157507, 3], ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], ['Maroubra Beach', -33.450198, 151.259302, 1] ]; function setMarkers(map, locations) { var image = new google.maps.MarkerImage('images/beachflag.png', new google.maps.Size(20, 32), new google.maps.Point(0,0), new google.maps.Point(0, 32)); var shadow = new google.maps.MarkerImage('images/beachflag_shadow.png', new google.maps.Size(37, 32), new google.maps.Point(0,0), new google.maps.Point(0, 32)); var lat = map.getCenter().lat(); var lng = map.getCenter().lng(); var shape = { coord: [1, 1, 1, 20, 18, 20, 18 , 1], type: 'poly' }; for (var i = 0; i < locations.length; i++) { var beach = locations[i]; var myLatLng = new google.maps.LatLng(beach[1], beach[2]); var marker = new google.maps.Marker({ position: myLatLng, map: map, shadow: shadow, icon: image, shape: shape, title: beach[0], zIndex: beach[3] }); } } 

Solutions Collecting From Web of "Google मानचित्र API v3 – सेट सीमा और केंद्र"

हाँ, बस अपनी नई सीमा वस्तु की घोषणा करें

  var bounds = new google.maps.LatLngBounds(); 

फिर प्रत्येक मार्कर के लिए, अपनी सीमा वस्तु बढ़ाएं:

 bounds.extend(myLatLng); map.fitBounds(bounds); 

एपीआई: google.maps.LatLngBounds

सब कुछ हल हुआ है – कोड के लिए पिछली कुछ पंक्तियां देखें – ( bounds.extend(myLatLng); map.fitBounds(bounds); )

 function initialize() { var myOptions = { zoom: 10, center: new google.maps.LatLng(0, 0), mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map( document.getElementById("map_canvas"), myOptions); setMarkers(map, beaches); } var beaches = [ ['Bondi Beach', -33.890542, 151.274856, 4], ['Coogee Beach', -33.923036, 161.259052, 5], ['Cronulla Beach', -36.028249, 153.157507, 3], ['Manly Beach', -31.80010128657071, 151.38747820854187, 2], ['Maroubra Beach', -33.950198, 151.159302, 1] ]; function setMarkers(map, locations) { var image = new google.maps.MarkerImage('images/beachflag.png', new google.maps.Size(20, 32), new google.maps.Point(0,0), new google.maps.Point(0, 32)); var shadow = new google.maps.MarkerImage('images/beachflag_shadow.png', new google.maps.Size(37, 32), new google.maps.Point(0,0), new google.maps.Point(0, 32)); var shape = { coord: [1, 1, 1, 20, 18, 20, 18 , 1], type: 'poly' }; var bounds = new google.maps.LatLngBounds(); for (var i = 0; i < locations.length; i++) { var beach = locations[i]; var myLatLng = new google.maps.LatLng(beach[1], beach[2]); var marker = new google.maps.Marker({ position: myLatLng, map: map, shadow: shadow, icon: image, shape: shape, title: beach[0], zIndex: beach[3] }); bounds.extend(myLatLng); } map.fitBounds(bounds); } 

गूगल मैप्स एपीआई वी 3 के लिए मेरा सुझाव होगा (ऐसा नहीं लगता है कि यह अधिक प्रभावी ढंग से किया जा सकता है):

 gmap : { fitBounds: function(bounds, mapId) { //incoming: bounds - bounds object/array; mapid - map id if it was initialized in global variable before "var maps = [];" if (bounds==null) return false; maps[mapId].fitBounds(bounds); } } 

परिणाम में आप अपने नक्शे विंडो में सीमाओं के सभी बिंदुओं को फिट करेंगे।

उदाहरण पूरी तरह से काम करता है और आप आसानी से इसे यहां देख सकते हैं http://www.zemelapis.lt

उत्तर मार्करों के लिए नक्शा सीमाओं को समायोजित करने के लिए सही हैं, लेकिन अगर आप पॉलीगॉन और मंडल जैसे आकृतियों के लिए Google मानचित्र सीमाओं को विस्तृत करना चाहते हैं, तो आप निम्नलिखित कोड का उपयोग कर सकते हैं:

मंडलियों के लिए

 bounds.union(circle.getBounds()); 

बहुभुजों के लिए

 polygon.getPaths().forEach(function(path, index) { var points = path.getArray(); for(var p in points) bounds.extend(points[p]); }); 

आयत के लिए

 bounds.union(overlay.getBounds()); 

पोलीलाइन के लिए

 var path = polyline.getPath(); var slat, blat = path.getAt(0).lat(); var slng, blng = path.getAt(0).lng(); for(var i = 1; i < path.getLength(); i++) { var e = path.getAt(i); slat = ((slat < e.lat()) ? slat : e.lat()); blat = ((blat > e.lat()) ? blat : e.lat()); slng = ((slng < e.lng()) ? slng : e.lng()); blng = ((blng > e.lng()) ? blng : e.lng()); } bounds.extend(new google.maps.LatLng(slat, slng)); bounds.extend(new google.maps.LatLng(blat, blng)); 

SetCenter () विधि अभी भी फ्लैश के लिए Maps API के नवीनतम संस्करण के लिए लागू है जहां फिटबाउंड () मौजूद नहीं हैं

नीचे एक का प्रयोग करें,

map.setCenter (bounds.getCenter (), map.getBoundsZoomLevel (सीमा));