Trang này cho bạn biết cách kiểm soát các khía cạnh sau của điểm đánh dấu nâng cao:
- Đặt hành vi va chạm cho điểm đánh dấu
- Đặt độ cao của điểm đánh dấu
- Kiểm soát chế độ hiển thị điểm đánh dấu theo mức thu phóng bản đồ
Đặt hành vi va chạm cho điểm đánh dấu
Hành vi va chạm kiểm soát cách một điểm đánh dấu sẽ hiển thị nếu điểm đó va chạm (chồng lên) với một điểm đánh dấu khác. Hành vi va chạm chỉ được hỗ trợ trên bản đồ vectơ.
Để đặt hành vi va chạm, hãy đặt AdvancedMarkerElement.collisionBehavior
thành một trong những giá trị sau:
REQUIRED
: (mặc định) Luôn hiển thị điểm đánh dấu bất kể có xảy ra va chạm hay không.OPTIONAL_AND_HIDES_LOWER_PRIORITY
Chỉ hiển thị điểm đánh dấu nếu điểm đó không trùng lặp với các điểm đánh dấu khác. Nếu hai điểm đánh dấu thuộc loại này trùng nhau, thì điểm đánh dấu cózIndex
cao hơn sẽ xuất hiện. Nếu có cùngzIndex
, thì ảnh chụp màn hình có vị trí màn hình dọc thấp hơn sẽ xuất hiện.REQUIRED_AND_HIDES_OPTIONAL
Luôn hiển thị điểm đánh dấu bất kể có va chạm hay không và ẩn mọi điểm đánh dấuOPTIONAL_AND_HIDES_LOWER_PRIORITY
hoặc nhãn trùng lặp với điểm đánh dấu.
Ví dụ sau đây minh hoạ cách đặt hành vi va chạm cho một điểm đánh dấu:
TypeScript
const advancedMarker = new AdvancedMarkerElement({ position: new google.maps.LatLng({ lat, lng }), map, collisionBehavior: collisionBehavior, });
JavaScript
const advancedMarker = new AdvancedMarkerElement({ position: new google.maps.LatLng({ lat, lng }), map, collisionBehavior: collisionBehavior, });
Đặt độ cao của điểm đánh dấu
Trên bản đồ vectơ, bạn có thể đặt độ cao mà điểm đánh dấu xuất hiện. Điều này hữu ích để các điểm đánh dấu xuất hiện chính xác so với nội dung bản đồ 3D. Để đặt độ cao cho một điểm đánh dấu, hãy chỉ định LatLngAltitude
làm giá trị cho lựa chọn MarkerView.position
:
TypeScript
const pin = new PinElement({ background: '#4b2e83', borderColor: '#b7a57a', glyphColor: '#b7a57a', scale: 2.0, }); const markerView = new AdvancedMarkerElement({ map, content: pin.element, // Set altitude to 20 meters above the ground. position: { lat: 47.65170843460547, lng: -122.30754, altitude: 20 } as google.maps.LatLngAltitudeLiteral, });
JavaScript
const pin = new PinElement({ background: '#4b2e83', borderColor: '#b7a57a', glyphColor: '#b7a57a', scale: 2.0, }); const markerView = new AdvancedMarkerElement({ map, content: pin.element, // Set altitude to 20 meters above the ground. position: { lat: 47.65170843460547, lng: -122.30754, altitude: 20 }, });
Kiểm soát chế độ hiển thị điểm đánh dấu theo mức thu phóng bản đồ
Xem thay đổi về chế độ hiển thị của các điểm đánh dấu (bắt đầu bằng cách thu nhỏ):
Để kiểm soát khả năng hiển thị của một Điểm đánh dấu nâng cao, hãy tạo một trình nghe zoom_changed
và thêm một hàm có điều kiện để đặt AdvancedMarkerElement.map
thành null
nếu mức thu phóng vượt quá mức được chỉ định, như trong ví dụ sau:
TypeScript
map.addListener('zoom_changed', () => { const zoom = map.getZoom(); if (zoom) { // Only show each marker above a certain zoom level. marker01.map = zoom > 14 ? map : null; marker02.map = zoom > 15 ? map : null; marker03.map = zoom > 16 ? map : null; marker04.map = zoom > 17 ? map : null; } });
JavaScript
map.addListener("zoom_changed", () => { const zoom = map.getZoom(); if (zoom) { // Only show each marker above a certain zoom level. marker01.map = zoom > 14 ? map : null; marker02.map = zoom > 15 ? map : null; marker03.map = zoom > 16 ? map : null; marker04.map = zoom > 17 ? map : null; } });
Các bước tiếp theo
Tạo điểm đánh dấu có thể nhấp và dễ tiếp cận