Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix cluster layer #789

Merged
merged 10 commits into from
Aug 15, 2023
Merged

Fix cluster layer #789

merged 10 commits into from
Aug 15, 2023

Conversation

viatkinviatkin
Copy link
Contributor

  • fixed labels visibility on features load
  • fixed _leafletObject getter for L.MarkerClusterGroup
  • fixed L.MarkerClusterGroup layer crud
  • fixed side-by-side for L.MarkerClusterGroup
  • refactored

return;
}

if (this.get('clusterize')) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужны комментарии
Что есть _leafletObject и что есть _originalVectorLayer
и что в каком случае испольуется

Возможно стоит переназвать метод

и Почему тут мы решили проверять не через instanceof L.MarkerClusterGroup ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • По мне логиченее сменить название _originalVectorLayer -> _leafletObject, чтобы понимать, что это за ссылка такая: вложенный _leafletObject в _leafletObject, верхний уровень L.MarkerClusterGroup, внутренний L.Marker
  • Исправил проверку кластеризованного слоя в returnLeafletObject() на instanceOf
  • Добавил комментарии

@@ -200,6 +215,9 @@ export default BaseLayer.extend({

if (this.get('labelSettings.signMapObjects')) {
this._addLabelsToLeafletContainer(layers, leafletObject);
if (this.get('_leafletObject') instanceof L.MarkerClusterGroup) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тут тоже нужны комментарии. я не понимаю зачем это

Copy link
Contributor Author

@viatkinviatkin viatkinviatkin Aug 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Иногда featuresProcessCallBack добавляет на карту надписи объектов слоя, который находится внутри кластера, необходимо почистить надписи обработчиком кластерного слоя

image

  • на картинке видно, что на событие зума карты триггернулся featuresProcessCallBack (подгрузилось 0 объектов) внутреннего _originalVectorLayer,
  • отработал метод _addLabelsToLeafletContainer, который добавил на карту все надписи внутреннего _originalVectorLayer
  • а обработчик надписей для L.MarkerClusterGroup не триггернулся, поскольку он работает только на событие layeradd внутреннего слоя

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавил комментарии

addon/components/base-vector-layer.js Show resolved Hide resolved
@sonarcloud
Copy link

sonarcloud bot commented Aug 2, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

No Coverage information No Coverage information
0.0% 0.0% Duplication

@DaryaNeko DaryaNeko merged commit 8aaa5cc into rgis-develop Aug 15, 2023
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants