2010-05-29 52 views
11

Tôi mới vào bản đồ google api. Tôi muốn các đề xuất về việc đạt được chức năng sau: bất cứ khi nào trang tải, bản đồ sẽ tải trọng tập trung ở Hoa Kỳ. Hãy tưởng tượng một hộp quanh Hoa Kỳ với các vĩ độ/thời gian nhất định chỉ định ranh giới tối thiểu và tối đa. Tôi cần bản đồ để tải ở mức thu phóng thích hợp (và thu phóng cần phải được tắt) sao cho hộp này soạn toàn bộ bản đồ. Về cơ bản, tôi tự hỏi nếu có một chức năng tải bản đồ dựa trên ranh giới lat/long (hoặc một số cách để đạt được điều này), thay vì sau đó tải bản đồ cho một mức độ phóng to.API Google Maps - tải US

Trả lời

14

Giả sử bạn đang sử dụng v3 API, bạn có thể muốn sử dụng phương pháp fitBounds như sau:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps fitBounds</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
      type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 500px; height: 350px;"></div> 

    <script type="text/javascript"> 
     var myOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP }; 
     var map = new google.maps.Map(document.getElementById("map"), myOptions); 
     var geocoder = new google.maps.Geocoder(); 

     geocoder.geocode({'address': 'US'}, function (results, status) { 
     var ne = results[0].geometry.viewport.getNorthEast(); 
     var sw = results[0].geometry.viewport.getSouthWest(); 

     map.fitBounds(results[0].geometry.viewport);    
     }); 
    </script> 
</body> 
</html> 

Ảnh chụp màn hình:

Google Maps fitBounds

Trong ví dụ trên, tôi nhận được khung nhìn của Hoa Kỳ theo mã hóa địa lý. Tuy nhiên, bạn cũng có thể tự tạo đối tượng LatLngBounds bằng cách đi qua các điểm Đông Bắc và Tây Nam và phương pháp fitBounds sẽ thu phóng và xoay bản đồ sao cho nó vừa với khung bản đồ.

+0

cảm ơn! fitBounds() là chính xác những gì tôi đang tìm kiếm – hjk

+0

@hjk: Tôi đã trả lời [một câu hỏi tương tự cách đây vài tháng] (http://stackoverflow.com/questions/2494756/fitbounds-in-google-maps-api-v3- không-phù hợp-giới hạn/2496558 # 2496558). Nó hiển thị với một hộp giới hạn màu đỏ như thế nào 'fitBounds' phản ứng. Hộp giới hạn màu đỏ biểu thị 'LatLngBounds' mà bạn sẽ chuyển tới' fitBounds'. –

+0

Cảm ơn Daniel, điều đó rất hữu ích. Vì vậy, không có cách nào với Google Maps để điều chỉnh độ chi tiết của thu phóng? I E. mức thu phóng của chúng được cố định? – hjk

1

Vâng, vì kích thước và hình dạng của Hoa Kỳ không thay đổi thường xuyên, bạn có thể tìm các cài đặt tối ưu và sử dụng chúng một cách thủ công.

+1

Có, nhưng tọa độ của hộp giới hạn của tôi có thể thay đổi ... – hjk