Tôi đang sử dụng Google Maps và dịch vụ mã hóa địa lý của Google cho ứng dụng dịch vụ vị trí của mình. Tôi sử dụng dịch vụ Mã hóa địa lý của Google để dịch địa chỉ sang vị trí lat/lng. Vấn đề của tôi là cách tự động tìm mức thu phóng thích hợp cho một địa chỉ nhất định như maps.google.com.Tự động tìm Zoom thích hợp cho mã hóa địa lý Kết quả
Ví dụ: khi tôi tìm kiếm một đường phố trong maps.google.com (ví dụ: Cisitu Baru, Bandung
), nó sẽ hiển thị đường phố ở chế độ thu phóng nhỏ hơn. Khi tôi tìm kiếm một khu vực (ví dụ: Bandung
), nó sẽ hiển thị mức thu phóng lớn hơn. Và thu phóng lớn hơn cho tỉnh (ví dụ: Jawa Barat
/West Java
), v.v.
Tôi đã thử cả hai
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
}
});
và
//cut
map.panToBounds(results[0].geometry.viewports); //setting bound
//cut
(Thành thực mà nói, tôi vẫn không biết sự khác biệt giữa bounds
và viewport
và những gì đang sử dụng của họ là những gì từ code.google.com /apis/maps/documentation/javascript/geocoding.html)
nhưng cả hai vẫn không hiển thị bản đồ ở chế độ thu phóng thích hợp.
Ngay bây giờ, tôi sử dụng một hack nhỏ như thế này
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
Có giải pháp khác? (Hoặc bất kỳ thứ gì từ API Google Map mà tôi chưa biết?)
Cảm ơn!
Tôi không quen với API v2. Bạn có thể mô tả nó bằng API v3 không? Cảm ơn. –
trong v3 bạn có thể sử dụng lớp LatLngBounds http://code.google.com/apis/maps/documentation/javascript/reference.html#LatLngBounds –
Tốt, tôi vừa phát hiện ra phương thức 'fitBounds' từ URL mẫu của bạn. Tôi chỉ làm cho 'map.fitBounds (kết quả [0] .geometry.bounds);' và nó hoạt động như một sự quyến rũ. Cảm ơn! –