के लिए स्वचालित रूप से उचित ज़ूम ढूँढना मैं अपने स्थान सेवा एप्लिकेशन के लिए Google मानचित्र और Google जियोकोडिंग सेवा का उपयोग कर रहा हूं। मैं पते को लैट/एलएनजी स्थिति में अनुवाद के लिए Google जियोकोडिंग सेवा का उपयोग करता हूं। मेरी समस्या यह है कि maps.google.com जैसे किसी निश्चित पते के लिए स्वचालित ज़ूम स्वचालित रूप से कैसे ढूंढें।जियोकोडिंग परिणाम
उदाहरण के लिए, जब मैं maps.google.com (उदा। Cisitu Baru, Bandung
) में एक सड़क खोजता हूं, तो यह सड़क को छोटे ज़ूम में दिखाएगा। जब मैं एक क्षेत्र खोजता हूं (उदा। Bandung
), तो यह बड़ा ज़ूम दिखाएगा। और प्रांत के लिए एक बड़ा ज़ूम (उदा। Jawa Barat
/West Java
), और इसी तरह।
मैं कोशिश की है दोनों
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': someAddress
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.dir(results);
//cut
map.panToBounds(results[0].geometry.bounds); //setting bound
//cut
}
});
और
//cut
map.panToBounds(results[0].geometry.viewports); //setting bound
//cut
(ईमानदारी से, मैं अभी भी क्या code.google.com से bounds
और viewport
और क्या उनके उपयोग कर रहे हैं के बीच का अंतर नहीं जानता /apis/maps/documentation/javascript/geocoding.html)
लेकिन दोनों अभी भी उचित ज़ूम में मानचित्र प्रदर्शित नहीं करते हैं।
अभी, मैं का उपयोग इस
var tabZoom = {
street_address: 15,
route: 15,
sublocality: 14,
locality: 13,
country: 10
};
//cut
map.setCenter(results[0].geometry.location);
if (tabZoom[results[0].types[0]] != undefined){
map.setZoom(tabZoom[results[0].types[0]]);
} else {
map.zetZoom(10);
}
//cut
जैसे एक छोटे हैक वहाँ अन्य समाधान है? (या Google Map API से कुछ भी जो मुझे अभी तक नहीं पता है?)
धन्यवाद!
मैं v2 एपीआई से परिचित नहीं हूं। क्या आप एपीआई v3 का उपयोग कर इसका वर्णन कर सकते हैं? धन्यवाद। V3 में –
आप लैट्लिंगबाउंड क्लास का उपयोग कर सकते हैं http://code.google.com/apis/maps/documentation/javascript/reference.html#LatLngBounds –
अच्छा, मुझे आपके उदाहरण यूआरएल से 'फिटबाउंड' विधि मिली है। मैं बस 'map.fitBounds (परिणाम [0] .geometry.bounds) बनाते हैं; और यह एक आकर्षण की तरह काम करता है। धन्यवाद! –