काम नहीं कर रहा गूगल मैप्स एपीआई V3 में, मैं एक नक्शा वस्तु बना लिया है बाद में मूल दृश्य पर, मैं ज़ूम स्तर और मानचित्र के केंद्र को सहेजना चाहता हूं। मैं निम्नलिखित कोशिश करता हूं:मानचित्र API v3:</p> <pre><code>map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); </code></pre> <p>मैं ज़ूम होगा और पैन है कि नक्शे पर और जाने के लिए: getCenter() और getZoom()
oldCenter = map.getCenter();
oldZoom = map.getZoom();
लेकिन चर 'अपरिभाषित' रहते हैं। जब मैं कंसोल में एक ही काम करता हूं, तो मुझे सही प्रतिक्रिया मिलती है।
मैं क्या गलत कर रहा हूं? अगर उत्तर खोजने के लिए और यदि यह एक स्पष्ट समस्या है तो कृपया मुझे बताएं।
धन्यवाद!
पूर्ण कोड:
function initialize() {
// CUSTOM PLACES
var latlng = new google.maps.LatLng(51, 10);
var germany = new google.maps.LatLng(51, 10);
var myLatlng = new google.maps.LatLng(49,12);
// DEFINE STYLE
var styles = [
{
"stylers": [
{ "invert_lightness": true }
]
}
];
// MARKER STYLES
var coin_image = 'coin.png';
var merch_image = 'merch.png';
// DEFINE OPTIONS FOR MAP
var myOptions = {
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position: google.maps.ControlPosition.LEFT_TOP
},
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// CREATE MAP OBJECT
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
map.setOptions({styles: styles});
// select zoom, etc by defining 2 points
var southWest = new google.maps.LatLng(45,-10);
var northEast = new google.maps.LatLng(55,15);
var bounds = new google.maps.LatLngBounds(southWest,northEast);
map.fitBounds(bounds);
placeMarker(southWest);
placeMarker(northEast);
// Place Random Markers
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 50; i++) {
var location = new google.maps.LatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
var marker = new google.maps.Marker({
position: location,
map: map,
icon: merch_image
});
var j = i + 1;
marker.setTitle(j.toString());
}
// TRANSACTION MARKERS
// ONE FULL CYCLE
// set marker
var trans_marker = new google.maps.LatLng(52.31799,13.241904);
var marker = new google.maps.Marker({
position: trans_marker,
map: map,
animation: google.maps.Animation.DROP,
title:"Hello World!",
icon: coin_image
});
// HERE'S THE PROBLEM
// var oldCenter = map.getCenter();
// var oldZoom = map.getZoom();
console.log(map);
oldMap = map;
console.log(oldMap);
// console.log(oldZoom);
// console.log(oldCenter.toString());
// pan to marker
setTimeout(function() {map.panTo(trans_marker)}, startDelayed(3000));
// zoom in on marker
setTimeout(function() {zoomIn(ENDZOOM)}, startDelayed(1000));
// show info window
var contentString = "<h3>Döner @ Coco Banh</h3>";
contentString += ("<p>SumUp was used to pay for a Döner at Coco Banh in Berlin, Germany</p>");
var infowindow = new google.maps.InfoWindow({
content: contentString
});
setTimeout(function() {infowindow.open(map,marker)}, startDelayed(8000));
setTimeout(function() {infowindow.close()}, startDelayed(5000));
// zoom out again
setTimeout(function() {zoomOut(oldZoom)}, startDelayed(2000));
// center again
setTimeout(function() {map.panTo(oldCenter)}, startDelayed(8000));
}
infowindow = new google.maps.InfoWindow({
content: contentString
});
}
पर्याप्त संदर्भ। नक्शा वैरिएबल वैश्विक है? आप इसे कैसे शुरू कर रहे हैं? GetCenter और getZoom कॉल कहां उपयोग किए जा रहे हैं? – geocodezip
धन्यवाद, बस प्रश्नों में अधिक कोड जोड़ा – tomburger
यह वहाँ तल पर एक अतिरिक्त घुंघराले ब्रेस है प्रकट होता है। क्या यहां और संदर्भ है? iirc, infowindow असाइन करना प्रारंभिक विधि के बाहर हो रहा है। fwiw, सामान्य विचार हालांकि काम करना चाहिए। मैंने पहले कुछ ऐसा किया है। –