USC.js में मानचित्र केंद्र को कैसे बदलें


111

निम्नलिखित कोड एक लीफलेट मैप को इनिशियलाइज़ करता है। आरंभिक फ़ंक्शन उपयोगकर्ता स्थान के आधार पर मानचित्र को केंद्र में रखता है। आरंभिक फ़ंक्शन को कॉल करने के बाद मैं नक्शे के केंद्र को एक नई स्थिति में कैसे बदलूं?

function initialize() {
map = L.map('map');
L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png', {
    maxZoom: 18,
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>'
}).addTo(map);

map.locate({setView: true, maxZoom: 8});    
} 

जवाबों:


169

उदाहरण के लिए:

map.panTo(new L.LatLng(40.737, -73.923));

23
map.flyTo([40.737, -73.923], 8) यदि आप ज़ूम और चेतन करना चाहते हैं
मार्टिन बेल्चर - AtWrk

4
मेरे मामले में, तथापि, panTo(), flyTo(), setView()- इन सबने मुझे करने के लिए ले ऊपरी बाएँ नक्शा है, और न केंद्र।
मृगांक पावगी

आप ... आप लोग हमारे दिन
बचाएं

128

आप भी उपयोग कर सकते हैं:

map.setView(new L.LatLng(40.737, -73.923), 8);

यह सिर्फ इस बात पर निर्भर करता है कि आप क्या व्यवहार चाहते हैं। map.panTo()ज़ूम / पैन एनीमेशन के साथ स्थान पर पैन करेगा, जबकि map.setView()तुरंत नया दृश्य वांछित स्थान / ज़ूम स्तर पर सेट करेगा।


4
मुझे यह पसंद है क्योंकि आपको ज़ूम स्तर भी मिलता है, जो बहुत उपयोगी है।
श्री कॉन्सोलैटो

2
इसके अलावा, आप एक सरणी के रूप में निर्देशांक पारित कर सकते हैं: map.setView([40.737, -73.923], 8)या एक वस्तुmap.setView({lat:40.737, lng:-73.923}, 8)
leobelizquierdo

5
पैनटो एनीमेशन नहीं दिखा रहा था, मैं उपयोग करता हूंmap.setView(latlng, map.getZoom(), { animation: true });
इवान फेरर विला

7

map.panTo();यदि वर्तमान दृश्य में बिंदु है तो उपयोग कुछ भी नहीं करता है। map.setView()इसके बजाय उपयोग करें ।

मेरे पास एक पॉलीलाइन था और मुझे हर सेकंड में पॉलीलाइन में एक नए बिंदु पर मानचित्र केंद्रित करना था। कोड की जाँच करें: अच्छा: https://jsfiddle.net/nstudor/xcmdwfjk/

mymap.setView(point, 11, { animation: true });        

BAD: https://jsfiddle.net/nstudor/Lgahv905/

mymap.panTo(point);
mymap.setZoom(11);

4

आप यह भी उपयोग कर सकते हैं:

var latLon = L.latLng(40.737, -73.923);
var bounds = latLon.toBounds(500); // 500 = metres
map.panTo(latLon).fitBounds(bounds);

यह मानचित्र पत्रक में सीमाओं को फिट करने के लिए दृश्य स्तर सेट करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.