2011-02-10 23 views
9

Tôi cần phải sắp xếp lại các điều khiển mặc định trong API của Google Map (v3, 3.4).Thay đổi thứ tự các điều khiển của Google Map ở cùng một vị trí (ví dụ: RIGHT_TOP)

Tất cả mọi thứ được đặt ra và các công trình, nhưng khi tôi thêm các mapTypeControl, zoomControl, các streetViewControlpanControl với cùng ControlPosition (tức google.maps.ControlPosition.RIGHT_TOP), Tôi không thể xác định thứ tự cách chúng được hiển thị.

mapTypeControl có một mặc định của TOP_RIGHT, nhưng thay đổi nó để RIGHT_TOP (mặc định của những người khác được đề cập ở trên) thêm của nó xuống phía dưới ở vị trí này:

google maps controls

Dưới đây là các mã cho các tùy chọn bản đồ (nevermind lớp OSM gia tăng):

var mapOptions = { 
zoom: 12, 
center: def_center, // is set before this snippet  
mapTypeControl: true, 
mapTypeId: user_maptype, // is set before this snippet 
mapTypeControlOptions: { 
    position: google.maps.ControlPosition.RIGHT_TOP, 
    mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.TERRAIN, "openstreetmap"] 
}, 
zoomControl: true, 
zoomControlOptions: { 
    style: google.maps.ZoomControlStyle.DEFAULT, 
    position: google.maps.ControlPosition.RIGHT_TOP 
}, 
streetViewControl: true, 
streetViewControlOptions: { 
     position: google.maps.ControlPosition.RIGHT_TOP 
}, 
panControl: false, 
panControlOptions: { 
     position: google.maps.ControlPosition.RIGHT_TOP 
}, 
scaleControl: false, 
scaleControlOptions: { 
     position: google.maps.ControlPosition.BOTTOM_RIGHT 
} 
}; 

tôi cần mapTypeControl là e đầu tiên lement để được trả lại (phía trên streetViewControl). Bất kỳ ý tưởng làm thế nào để làm điều này?

+2

bạn đã bao giờ tìm thấy giải pháp để sắp xếp lại điều này chưa? tôi thêm một điều khiển tùy chỉnh và có thể đặt nó ở trên hoặc dưới với chỉ số 1/0, nhưng tôi không thể cập nhật chỉ mục của các điều khiển mặc định (cụ thể panControl) – tester

Trả lời

4

Mã này hoạt động tốt trong trình soạn thảo mã google @http://code.google.com/apis/ajax/playground/#control_position_v3

cuối cùng giải pháp là sử dụng TOP_RIGHT thay vì RIGHT_TOP

Ngoài ra các index tài sản có thể được thay đổi thông qua setAttribute giống như đa số Các tài sản khác.

function initialize() { 
    var mapDiv = document.getElementById('map-canvas'); 
    var map = new google.maps.Map(mapDiv, { 
     center: new google.maps.LatLng(37.4419, -122.1419), 
     zoom: 13, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
     position: google.maps.ControlPosition.TOP_RIGHT 
     }, 
     zoomControl: true, 
     zoomControlOptions: { 
     style: google.maps.ZoomControlStyle.DEFAULT, 
     position: google.maps.ControlPosition.RIGHT_TOP 
     }, 
     streetViewControl: true, 
     streetViewControlOptions: { 
     position: google.maps.ControlPosition.RIGHT_TOP 
     }, 
     panControl: false, 
     panControlOptions: { 
     position: google.maps.ControlPosition.RIGHT_TOP 
     }, 
     scaleControl: false, 
     scaleControlOptions: { 
     position: google.maps.ControlPosition.BOTTOM_RIGHT 
     } 
    }); 
} 
+0

Đó là khá nhiều bố cục mặc định. Tôi vẫn không thể lấy mapTypeControl phía trên công cụ pan. Nếu bạn muốn đưa ra một ví dụ về điều đó, điều đó sẽ hoàn hảo. – andychase

+0

Nếu bạn đã đi đến sân chơi và dán bằng mã và nhấn chạy bạn nên đã thấy lựa chọn loại bản đồ ở phía trên bên phải và nó đã được trên tất cả các điều khiển khác ... những gì bạn muốn một ảnh chụp màn hình? – Jay

+0

Mặc dù hack được đề xuất bởi Jay bị hạn chế trong các ứng dụng có thể (vì bạn chỉ có thể đặt thứ tự bằng cách chia tất cả các điều khiển thành hai nhóm), nó chắc chắn không hoạt động và có thể hoàn thành công việc :). –

1

Tôi thật sự không có giải pháp nhưng không theo đúng trang này Google Map API V3 Controls điều khiển do người dùng xác định có thể được đặt trước các mặc định bằng cách thay đổi chỉ mục của chúng trong DOM. Có thể đây là vấn đề tương tự, rằng điều khiển thu phóng có chỉ số thấp hơn so với kiểm soát bản đồ/vệ tinh?
Không chắc bạn sẽ thay đổi chỉ mục như thế nào nhưng đó có thể là đại lộ để tìm giải pháp.

Oh và nếu bạn tìm hiểu cách giải quyết, vui lòng dán giải pháp của bạn tại đây. Có thể có ích.

Các vấn đề liên quan