मैं मानचित्र पर मार्कर/इन्फॉइंडो को अद्यतन करने वाला एक Google मानचित्र और आवधिकता (हर 30 सेकंड) शुरू कर रहा हूं। मैं स्वचालित रूप से ज़ूम इन करने के लिए बाउंड्स का उपयोग कर रहा हूं लेकिन यह सुनिश्चित करता हूं कि सभी मार्कर/infowindows दिखाई दे रहे हैं।मानचित्र के प्रारंभ होने के बाद Google मानचित्र v3 ज़ूम स्तर समायोजित करें
मेरी समस्या यह है कि नक्शा के किनारे पर infowindows रखा जाता है और अक्सर काट दिया जाता है। तो, मानचित्र को अपडेट होने पर मुझे '1' द्वारा ज़ूम आउट करने की आवश्यकता है। मैं वर्तमान ज़ूम स्तर को निर्धारित करने के लिए 'map.zoom' का उपयोग कर सकता हूं और नया, वांछित मान पुन: गणना कर सकता हूं लेकिन मुझे नहीं पता कि यह नया मान कैसे सेट करें।
क्या ज़ूम पैरामीटर केवल मानचित्र को शुरू करने पर सेट किया जा सकता है?
निश्चित रूप से यह आसान है?
नीचे मेरा 'अपडेट' फ़ंक्शन है;
function updatePage() {
//clear current markers
clearOverlays();
var location1 = new google.maps.LatLng(team1data.lat, team1data.lon);
var location2 = new google.maps.LatLng(team2data.lat, team2data.lon);
var bounds = new google.maps.LatLngBounds();
bounds.extend(location1);
bounds.extend(location2);
map.fitBounds(bounds);
var curZoom = map.zoom;
console.log(curZoom);
var newZoom = (curZoom - 1);
console.log(newZoom);
var infowindow1 = new google.maps.InfoWindow({
content: '<div style=\"height:100px;width:230px;font-size:12px;\"><span style="font-weight:bold;">' + team1data.user + ' (' + team1data.location + '): </span>' + team1data.tweet + '</div>'
});
var infowindow2 = new google.maps.InfoWindow({
content: '<div style=\"height:100px;width:230px;font-size:12px;\"><span style="font-weight:bold;">' + team2data.user + ' (' + team2data.location + '): </span>' + team2data.tweet + '</div>'
});
//can add as many markers to the map as you like
var marker1 = new google.maps.Marker({
position: location1,
map: map,
title: "Team 1"
});
markersArray.push(marker1);
google.maps.event.addListener(marker1, 'click',
function() {
infowindow.open(map, marker);
});
var marker2 = new google.maps.Marker({
position: location2,
map: map,
title:"Team 2"
});
markersArray.push(marker2);
infowindow1.open(map, marker1);
infowindow2.open(map, marker2);
setTimeout("team1tweets()", 30000)
}
यही वह है। धन्यवाद! – Jono
कुछ मामलों में setZoom (..) कुछ ऑपरेशन के तुरंत बाद कॉल नहीं किया जाता है। एक अन्य उत्तर वर्णन करता है कि नक्शा स्वीकार करने के लिए तैयार होने पर ऑपरेशन करने के लिए "निष्क्रिय" ईवेंट का उपयोग कैसे करें: http://stackoverflow.com/questions/2437683/google-maps-api-v3-can-i-setzoom-after -फिटबाउंड –
लिंक टूटा हुआ है। – candlejack