Daha çox

Vərəqədəki markerlərin üzərindəki etiketi necə göstərmək olar?

Vərəqədəki markerlərin üzərindəki etiketi necə göstərmək olar?


Oxunaqlı olması üçün vərəqədəki işarələrin üzərində etiket göstərməliyəm. Bunu necə həyata keçirə bilərəm? Aşağıdakı şəklə baxın, etiket markerlə örtülmüşdür


EDIT:

Daha sadə bir həll marker seçimindən istifadə etmək olardıqalxOnHover (markerlərdə bu davranışı qəbul etsəniz).

Leaflet, marker z-indeksini götürdüyünüz zaman (digərlərinin üstündə görünməsi üçün) düzəldir və etiket də avtomatik olaraq düzəldiləcək, buna görə də digər markerlərin üstündə görünəcək!

İşarələyicilərinizi işə salarkən, bu seçimi təyin etdiyinizə əmin olundoğru:

L.marker (latlng, {boostOnHover: true});

Demo: http://jsfiddle.net/ve2huzxw/64/


İlkin cavab:

Təəssüf ki, L.Label etiketin z-indeksini avtomatik olaraq mənbə / ana işarəsi ilə eyni dəyərə uyğunlaşdırır. Leaflet, markerləri avtomatik olaraq z-indeksinə uyğun olaraq aşağı (cənub-er) işarələri yuxarıda göründüyü üçün yuxarı (şimal-er) markerlərinin etiketlərinin üstündə də görünəcək.

"Sadə" bir həll yolu, L.Label'i etiketləri əlavə etməyə məcbur etməkdir popupPaneyerinəmarkerPaneartıq vektorlarda olduğu kimi. Ancaq bu, kitabxana kodunun dəyişdirilməsi deməkdir.

Bu yola getməyə hazırsınızsa, layları və etiketlərini hazırlamağa başlamazdan əvvəl skriptinizə aşağıdakı kodu əlavə edin:

// L.Label.onAdd prototip metodunu dəyişdirin. L.Label.include ({onAdd: function (map) {this._map = map; //this._pane = this._source instanceof of L.Marker? Map._panes.markerPane: map._panes.popupPane; this._pane = map._panes.popupPane; // bütün hallarda popupPane -ə əlavə edin. if (! this._container) {this._initLayout ();} this._pane.appendChild (this._container); this._initInteraction (); this._update (); this.setOpacity (this.options.opacity); map .on ('moveend', this._onMoveEnd, this) .on ('viewreset', this._onViewReset, this); if (this._animated) {map .on ('zoomanim', this._zoomAnimation, this);} if (L.Browser.touch &&! this.options.noHide) {L.DomEvent.on (this._container, 'click', this.close, this) );}}});

Demo: http://jsfiddle.net/ve2huzxw/63/

Başqa bir həll yolu, L.Labelin markerlə müqayisədə z-indeks etiketini düzəldərkən z-indeksi ofsetindən istifadə etməsi ola bilər. Ancaq bunun üçün kitabxana kodunun dəyişdirilməsi də tələb olunacaq.

L.Label plugin kitabxanası üçün maraqlı bir xüsusiyyət istəyi ola bilər. Ancaq artıq saxlanılmamış kimi görünür?