Câu hỏi Thay đổi chỉ mục z (thứ tự z) của điểm đánh dấu bản đồ cho Maps V2 trong Android


Tôi có một số điểm đánh dấu được hiển thị trên bản đồ của tôi hoặc là gần nhau hoặc thậm chí trên đầu trang của nhau. Tôi cần phải có một điểm đánh dấu cụ thể luôn ở trên cùng. Nó không quan trọng nếu tôi thêm điểm đánh dấu vào bản đồ đầu tiên hoặc cuối cùng, nó thường kết thúc được đặt phía sau một số điểm đánh dấu. Đối với một số lý do bí ẩn, Google Maps xác định điều này. Nó cần phải làm việc với Google Maps cho Android V2.


12
2017-07-16 08:55


gốc




Các câu trả lời:


Bản phát hành ngày 27 tháng 6 năm 2016, v9.2.0, của Android Maps API v2 hiện hỗ trợ chỉ mục z - xem thông báo tại https://developers.google.com/maps/documentation/android-api/releases#june_27_2016.

Vì vậy, hãy đảm bảo phiên bản bản đồ / dịch vụ phát của bạn được đặt thành v9.2.0 trở lên trong build.gradle:

compile 'com.google.android.gms:play-services-maps:9.2.0'

Tài liệu chỉ mục z bên dưới (từ https://developers.google.com/maps/documentation/android-api/marker#marker_z-index):

Chỉ mục z chỉ định thứ tự ngăn xếp của điểm đánh dấu này, so với các điểm đánh dấu khác trên bản đồ. Điểm đánh dấu có chỉ số z cao được vẽ trên đầu các điểm đánh dấu có chỉ số z thấp hơn. Giá trị z-index mặc định là 0.

Điểm đánh dấu luôn được vẽ trên các lớp gạch và các lớp phủ không đánh dấu khác (lớp phủ mặt đất, hình đa giác, đa giác và các hình dạng khác) bất kể chỉ mục z của các lớp phủ khác. Các dấu hiệu được xem là có hiệu quả trong một nhóm chỉ mục z riêng biệt so với các lớp phủ khác.

Bạn có thể đặt chỉ mục khi thêm điểm đánh dấu vào bản đồ:

map.addMarker(new MarkerOptions()
    .position(new LatLng(10, 10))
    .title("Marker z1")
    .zIndex(1.0f));

... hoặc sử dụng Marker.setZIndex() sau khi điểm đánh dấu được tạo.

Thêm tài liệu về ảnh hưởng của chỉ mục z trên các sự kiện nhấp chuột ở bên dưới (từ https://developers.google.com/maps/documentation/android-api/marker#marker_click_events):

  • Khi người dùng nhấp vào một nhóm điểm đánh dấu, sự kiện nhấp chuột được kích hoạt cho điểm đánh dấu có chỉ mục z cao nhất.
  • Tối đa một sự kiện được kích hoạt cho mỗi nhấp chuột. Nói cách khác, nhấp chuột không được chuyển xuống các điểm đánh dấu hoặc các lớp phủ khác có giá trị chỉ mục z thấp hơn.
  • Nhấp vào một nhóm các điểm đánh dấu sẽ khiến các lần nhấp tiếp theo quay vòng qua cụm, lần lượt chọn từng nhóm. Thứ tự của chu kỳ đầu tiên ưu tiên z-index, sau đó là gần với điểm nhấn.
  • Nếu người dùng nhấp vào bên ngoài vùng lân cận của cụm, API sẽ tính toán lại cụm và đặt lại trạng thái của chu kỳ nhấp chuột để nó bắt đầu từ đầu.
  • Sự kiện nhấp chuột rơi qua các cụm đánh dấu đến các hình dạng và lớp phủ khác trước khi khởi động lại chu kỳ.
  • Các điểm đánh dấu được xem là nằm trong nhóm chỉ mục z riêng biệt so với các lớp phủ hoặc hình dạng khác (polylines, đa giác, hình tròn và / hoặc lớp phủ mặt đất), bất kể chỉ mục z của các lớp phủ khác. Nếu nhiều điểm đánh dấu, lớp phủ hoặc hình dạng được xếp chồng lên nhau, sự kiện nhấp được quay vòng qua cụm điểm đánh dấu đầu tiên, sau đó được kích hoạt cho các lớp phủ hoặc hình dạng có thể nhấp khác, dựa trên giá trị chỉ mục z của chúng.

18
2018-06-30 21:05



Cảm ơn bạn đã cứu tôi - Rajiv yadav


Đã tìm thấy giải pháp:

Marker.showInfoWindow ();

Đây không phải là tối ưu vì nó làm cho cửa sổ thông tin xuất hiện phía trên điểm đánh dấu nhưng nó tốt hơn là không có gì.


5
2017-07-16 09:10



Bạn có thể làm cho InfoWindowAdapter trở về 0 bởi 0 pixel Xem trong trường hợp đó. - MaciejGórski
Vô dụng mà google đã không thực hiện điều này. Tôi cần nó cho ứng dụng của mình và tôi không thể thấy tại sao nhà phát triển không thể kiểm soát được điều này. Giải pháp này là tốt hơn so với không có gì, nhưng nó cảm thấy thực sự hacky và không đủ linh hoạt cho ứng dụng của tôi. - Tore Rudberg
có nó hoạt động, nhưng chỉ cho đến khi chúng tôi đã không bấm vào bản đồ. Tôi có số lượng điểm đánh dấu, tất cả đều có cửa sổ thông tin riêng, nhưng tôi đang sử dụng showinfowindow () cho điểm đánh dấu mà tôi muốn hiển thị ở trên cùng, khi tôi nhấp vào bản đồ, ẩn cửa sổ thông tin và điểm đánh dấu cũng bị ẩn. - Kimmi Dhingra
Công trình này, suy nghĩ không phải là giải pháp chính xác - Utsav Gupta


Không may, Markers trong Google Map API V2 dành cho Android không có chỉ mục z. Họ xử lý thứ tự vẽ của riêng họ


2
2017-07-16 09:02



2016 và điều này không còn đúng .. zindex - amalBit
nó không đúng bây giờ - Zaid Mirza


Tôi tin rằng bài đăng này là bản sao của Google Maps v2 Marker zOrdering - Đặt lên đầu. Câu trả lời của Bastien Beurier ở đó sử dụng giải pháp Marker.showInfoWindow () và cũng thể hiện cách tạo một infowindow 0x0 nếu bạn không thực sự muốn infowindow xuất hiện.

Cũng lưu ý bình luận của tôi dưới đây mà trả lời về việc thêm một TextView vào LinearLayout.


0
2018-04-28 17:31